New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 693745 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner: ----
Closed: Jul 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Support libopus's ambisonics with non-diegetic sources (and test it)

Project Member Reported by flim@chromium.org, Feb 17 2017

Issue description

Cherry pick is in Chromium's downstream ffmpeg repo as of https://chromium-review.googlesource.com/#/c/444081/ landing. For inclusion into Chromium itself, DEPS will need to be rolled.

Note, further discussion/testing/changes may well be needed to enable opus ambisonic with non-diegetic sources across Chromium's media pipeline (for src= FFmpegDemuxer, and MSE ChunkDemuxer) and decoders (Android MediaCodec and //src/third_party/opus via FFmpeg). Tests for all of these are also needed.
Components: Internals>Media Internals>Media>FFmpeg
Labels: Needs-Feedback
Status: Available (was: Untriaged)
The DEPS roll is in CQ currently at https://codereview.chromium.org/2705543004/. It should land sometime today.

Regarding the note in #1, I'm keeping this bug open to help track the possibility that more work is needed in Chromium's media pipeline to enable the ambisonic scenario (and test it!!)
Cc: flim@chromium.org dalecur...@chromium.org
Summary: Support libopus's ambisonics with non-diegetic sources (and test it) (was: Cherry pick FFmpeg patch to decode libopus's ambisonics with non-diegetic sources)
Project Member

Comment 5 by bugdroid1@chromium.org, Feb 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/19142f86f469c28331a5a272595bbfb2392f0abd

commit 19142f86f469c28331a5a272595bbfb2392f0abd
Author: wolenetz <wolenetz@chromium.org>
Date: Sat Feb 18 21:48:50 2017

Roll src/third_party/ffmpeg/ 38d84d205..3f3ad2ea9 (1 commit).

https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/38d84d205cd8..3f3ad2ea90df

$ git log 38d84d205..3f3ad2ea9 --date=short --no-merges --format='%ad %ae %s'
2017-02-17 wolenetz libopus: decode ambisonics with non-diegetic sources

Created with:
  roll-dep src/third_party/ffmpeg

BUG= 693745 
TBR=dalecurtis@chromium.org

Review-Url: https://codereview.chromium.org/2705543004
Cr-Commit-Position: refs/heads/master@{#451494}

[modify] https://crrev.com/19142f86f469c28331a5a272595bbfb2392f0abd/DEPS

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/third_party/ffmpeg/+/bb7fe72a56eb574429887af24a3772b810024e9f

commit bb7fe72a56eb574429887af24a3772b810024e9f
Author: flim <flim@chromium.org>
Date: Thu Apr 20 18:31:42 2017

libopus: +channel mapping 2 support in libopusdec

Enables demuxing of Ambisonics content coded with channel mapping 2

Bug:693745

Change-Id: Ibb4c758fcac9cef2a6e9715158b1036df01db638
Reviewed-on: https://chromium-review.googlesource.com/477130
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>

[modify] https://crrev.com/bb7fe72a56eb574429887af24a3772b810024e9f/libavcodec/opus.c
[modify] https://crrev.com/bb7fe72a56eb574429887af24a3772b810024e9f/libavcodec/libopusdec.c
[modify] https://crrev.com/bb7fe72a56eb574429887af24a3772b810024e9f/chromium/patches/README

Project Member

Comment 7 by bugdroid1@chromium.org, May 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/083e943d8ea4952a225355d1a40d945aa1e1c3f6

commit 083e943d8ea4952a225355d1a40d945aa1e1c3f6
Author: flim <flim@chromium.org>
Date: Mon May 22 16:55:08 2017

Indicates whether it's preferable to use a source's hardware params. In most cases, the default value is true.

If WebAudio is attached, this is set to false such that the renderer instead uses the native sample rate, channel count, and layout without rebuffering.

BUG= 693745 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel

Review-Url: https://codereview.chromium.org/2836293002
Cr-Commit-Position: refs/heads/master@{#473600}

[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/chromecast/media/service/cast_mojo_media_client.cc
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/audio/audio_output_device.cc
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/audio/audio_output_device.h
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/audio/audio_output_stream_sink.cc
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/audio/audio_output_stream_sink.h
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/audio/clockless_audio_sink.cc
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/audio/clockless_audio_sink.h
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/audio/null_audio_sink.cc
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/audio/null_audio_sink.h
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/base/audio_renderer_mixer_input.cc
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/base/audio_renderer_mixer_input.h
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/base/audio_renderer_sink.h
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/base/fake_audio_renderer_sink.cc
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/base/fake_audio_renderer_sink.h
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/base/mock_audio_renderer_sink.cc
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/base/mock_audio_renderer_sink.h
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/blink/webaudiosourceprovider_impl.cc
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/blink/webaudiosourceprovider_impl.h
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/renderers/audio_renderer_impl.cc
[modify] https://crrev.com/083e943d8ea4952a225355d1a40d945aa1e1c3f6/media/renderers/audio_renderer_impl.h

Project Member

Comment 8 by bugdroid1@chromium.org, May 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/162236743c74fa040e822ea4d846215e4543791e

commit 162236743c74fa040e822ea4d846215e4543791e
Author: flim <flim@chromium.org>
Date: Fri May 26 16:55:32 2017

Support Opus Ambisonics playback

Opus Ambisonics does not have a prescribed layout, so CHANNEL_LAYOUT_DISCRETE is used. In this case, the audio decoders and renderer also need to know the number of channels.

BUG= 693745 

Review-Url: https://codereview.chromium.org/2752323002
Cr-Commit-Position: refs/heads/master@{#475035}

[modify] https://crrev.com/162236743c74fa040e822ea4d846215e4543791e/media/base/audio_decoder_config.cc
[modify] https://crrev.com/162236743c74fa040e822ea4d846215e4543791e/media/base/audio_decoder_config.h
[modify] https://crrev.com/162236743c74fa040e822ea4d846215e4543791e/media/base/fake_audio_renderer_sink.cc
[modify] https://crrev.com/162236743c74fa040e822ea4d846215e4543791e/media/base/fake_audio_renderer_sink.h
[modify] https://crrev.com/162236743c74fa040e822ea4d846215e4543791e/media/ffmpeg/ffmpeg_common.cc
[modify] https://crrev.com/162236743c74fa040e822ea4d846215e4543791e/media/ffmpeg/ffmpeg_common_unittest.cc
[modify] https://crrev.com/162236743c74fa040e822ea4d846215e4543791e/media/filters/ffmpeg_audio_decoder.cc
[modify] https://crrev.com/162236743c74fa040e822ea4d846215e4543791e/media/formats/webm/webm_audio_client.cc
[modify] https://crrev.com/162236743c74fa040e822ea4d846215e4543791e/media/renderers/audio_renderer_impl.cc
[modify] https://crrev.com/162236743c74fa040e822ea4d846215e4543791e/media/renderers/audio_renderer_impl.h
[modify] https://crrev.com/162236743c74fa040e822ea4d846215e4543791e/media/renderers/audio_renderer_impl_unittest.cc
[add] https://crrev.com/162236743c74fa040e822ea4d846215e4543791e/media/test/data/bear-opus-11ch-channelmapping2.ogg
[add] https://crrev.com/162236743c74fa040e822ea4d846215e4543791e/media/test/data/bear-opus-4ch-channelmapping2.ogg
[add] https://crrev.com/162236743c74fa040e822ea4d846215e4543791e/media/test/data/bear-opus-end-trimming-11ch-channelmapping2.webm
[add] https://crrev.com/162236743c74fa040e822ea4d846215e4543791e/media/test/data/bear-opus-end-trimming-4ch-channelmapping2.webm
[modify] https://crrev.com/162236743c74fa040e822ea4d846215e4543791e/media/test/pipeline_integration_test.cc

Comment 9 by flim@chromium.org, Jul 24 2017

Status: Fixed (was: Available)

Sign in to add a comment