chromium/src/media.git
16 hours agoAdd MSE implementation on android master
qinmin@chromium.org [Mon, 20 May 2013 05:40:11 +0000 (05:40 +0000)]
Add MSE implementation on android

Here are the changes included in this CL:
1. Adds a MediaSourcePlayer for android to play media source extensions. Only embedded mode are working currently.
2. Rewrite the MediaCodecBridge code in java. The current MediaCodecBridge code is not very suitable for exception handling. Also, this refactoring adds support for audio playback.

BUG=233420

Review URL: https://chromiumcodereview.appspot.com/15113002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@201031 0039d316-1c4b-4281-b951-d872f2087c98

4 days agoMove SincResampler SSE initialization into MediaInitializer.
dalecurtis@chromium.org [Thu, 16 May 2013 20:39:55 +0000 (20:39 +0000)]
Move SincResampler SSE initialization into MediaInitializer.

BUG=none
TEST=media_unittests

Review URL: https://chromiumcodereview.appspot.com/14672024

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@200623 0039d316-1c4b-4281-b951-d872f2087c98

4 days agoDestroy the openSLES objects in the correct order on Android.
rtoy@google.com [Thu, 16 May 2013 18:21:59 +0000 (18:21 +0000)]
Destroy the openSLES objects in the correct order on Android.

BUG=

Glenn Kasten says the player should be destroyed before the OutputMix.

R=tommi@chromium.org

Review URL: https://codereview.chromium.org/15204003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@200581 0039d316-1c4b-4281-b951-d872f2087c98

4 days agoParse WebM track name and language
matthewjheaney@chromium.org [Thu, 16 May 2013 17:35:03 +0000 (17:35 +0000)]
Parse WebM track name and language

The Track header of a WebM file contains (among other items)
a track name and track language. We do not currently use
this information. However, it is needed to construct WebVTT
inband text tracks. The WebM tracks parser has been modified
to provide this information to its clients.

(An earlier version of this commit failed to compile on some
systems. The problem was that some integer constants needed
to be qualified with a suffix to specify an extra precision
integer type.)

BUG=230708

Review URL: https://chromiumcodereview.appspot.com/15205002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@200562 0039d316-1c4b-4281-b951-d872f2087c98

4 days agoUse webrtc::DesktopCapturer for screen capturer implementation.
sergeyu@chromium.org [Thu, 16 May 2013 10:45:24 +0000 (10:45 +0000)]
Use webrtc::DesktopCapturer for screen capturer implementation.

Screen capturers are being moved from media/video/capture/screen to
third_party/webrtc. This CL is an intermediate step in that process.

Depends on https://webrtc-codereview.appspot.com/1322007/

TBR=brettw@chromium.org (third_party/webrtc dependency)

Review URL: https://chromiumcodereview.appspot.com/13983010

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@200504 0039d316-1c4b-4281-b951-d872f2087c98

4 days agoRoll FFmpeg for M29
wolenetz@chromium.org [Thu, 16 May 2013 06:25:05 +0000 (06:25 +0000)]
Roll FFmpeg for M29

Chrome-side changes:
1. Use AVCodecID instead of CodecID.
2. Accomodate FFmpeg's new internal refcounted buffers:
* Use av_free_packet() instead of av_destruct_packet() in FFmpegH264ToAnnexBBitstreamConverterTests (http://crbug.com/238543)
* Add TSAN suppressions (http://crbug.com/239350)
* Copy from data[] in FFmpegCdmVideoDecoder. (http://crbug.com/240573)
3. Update ffmpeg_regression_tests:
* Rebaseline expectations (http://crbug.com/237363)
* Mark some flaky (http://crbug.com/237371)
* Change disabled to flaky (http://crbug.com/236979)
* Add new tests.  (http://crbug.com/234630)

R=dalecurtis
BUG=238543,239350,237363,237371,236979,234630,123426,223295,236611,234630,240573,241212

Review URL: https://chromiumcodereview.appspot.com/15078005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@200467 0039d316-1c4b-4281-b951-d872f2087c98

4 days agoSet default sampling rate to 44100 and query the native output sampling rate.
leozwang@chromium.org [Thu, 16 May 2013 05:34:18 +0000 (05:34 +0000)]
Set default sampling rate to 44100 and query the native output sampling rate.

BUG=231094

Review URL: https://chromiumcodereview.appspot.com/14049003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@200461 0039d316-1c4b-4281-b951-d872f2087c98

4 days agoCleanup: Remove unneeded base/file_util.h includes in chrome_frame, courgette, ipc...
thestig@chromium.org [Thu, 16 May 2013 02:37:50 +0000 (02:37 +0000)]
Cleanup: Remove unneeded base/file_util.h includes in chrome_frame, courgette, ipc, media, and net.

Review URL: https://chromiumcodereview.appspot.com/14820034

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@200419 0039d316-1c4b-4281-b951-d872f2087c98

4 days agoReport timing statistics for audio controller methods via UMA.
dalecurtis@chromium.org [Thu, 16 May 2013 02:05:03 +0000 (02:05 +0000)]
Report timing statistics for audio controller methods via UMA.

Logs the time taken to execute the main methods of AudioInputController
and AudioOutputController.  This timing information will be used to
determine if we can combine the audio thread and the UI thread on OSX
to (hopefully) fix http://crbug.com/158170.

BUG=158170
TEST=chrome://histograms/Media.Audio contains information.

Review URL: https://chromiumcodereview.appspot.com/14827002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@200414 0039d316-1c4b-4281-b951-d872f2087c98

4 days agoReplaced 8 callbacks provided to MediaPlayerBridge with an interface (reusing MediaPl...
avayvod@chromium.org [Wed, 15 May 2013 22:03:52 +0000 (22:03 +0000)]
Replaced 8 callbacks provided to MediaPlayerBridge with an interface (reusing MediaPlayerManager).

BUG=None
TEST=No new tests, no functional changes.

Review URL: https://chromiumcodereview.appspot.com/14581015

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@200365 0039d316-1c4b-4281-b951-d872f2087c98

5 days agoRevert 200308 "Parse WebM track name and language"
rouslan@chromium.org [Wed, 15 May 2013 18:36:58 +0000 (18:36 +0000)]
Revert 200308 "Parse WebM track name and language"

> Parse WebM track name and language
>
> The Track header of a WebM file contains (among other items)
> a track name and track language. We do not currently use
> this information. However, it is needed to contruct WebVTT
> inband text tracks.  The WebM tracks parser has been
> modified to provide this information to its clients.
>
> BUG=230708
>
> Review URL: https://chromiumcodereview.appspot.com/14977006

TBR=matthewjheaney@chromium.org

Review URL: https://codereview.chromium.org/14959015

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@200323 0039d316-1c4b-4281-b951-d872f2087c98

5 days agoParse WebM track name and language
matthewjheaney@chromium.org [Wed, 15 May 2013 17:29:06 +0000 (17:29 +0000)]
Parse WebM track name and language

The Track header of a WebM file contains (among other items)
a track name and track language. We do not currently use
this information. However, it is needed to contruct WebVTT
inband text tracks.  The WebM tracks parser has been
modified to provide this information to its clients.

BUG=230708

Review URL: https://chromiumcodereview.appspot.com/14977006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@200308 0039d316-1c4b-4281-b951-d872f2087c98

5 days agoAdd VideoDecoder::NeedsBitStreamConversion().
xhwang@chromium.org [Wed, 15 May 2013 10:11:21 +0000 (10:11 +0000)]
Add VideoDecoder::NeedsBitStreamConversion().

In the future world where VideoDecoder doesn't talk to DemuxerStream directly
(see issue 141788), the owner of the VideoDecoder (e.g. VideoFrameStream) needs
to get the info about whether the decoder needs bitstream conversion so that it
can call DemuxerStream::EnableBitstreamConverter() accordingly.

BUG=141788,240342
TEST=Current media_unittests pass.

Review URL: https://chromiumcodereview.appspot.com/15140002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@200232 0039d316-1c4b-4281-b951-d872f2087c98

7 days agoDecrease the max wait time for audio on chromeos
davemoore@chromium.org [Mon, 13 May 2013 20:49:43 +0000 (20:49 +0000)]
Decrease the max wait time for audio on chromeos

BUG=231975
TEST=Play audio in background tab and do something that uses
     a lot of cpu in foreground. Skipping should be decreased
     although it won't be eliminated.

R=dalecurtis@chromium.org, dgreid@chromium.org

Review URL: https://codereview.chromium.org/15054009

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@199820 0039d316-1c4b-4281-b951-d872f2087c98

7 days agoFix conflicting #define for WebaudioMediaCodecBridge
qinmin@chromium.org [Mon, 13 May 2013 17:32:10 +0000 (17:32 +0000)]
Fix conflicting #define for WebaudioMediaCodecBridge

This conflicts with the #define in MediaCodecBridge

R=dalecurtis@chromium.org

Review URL: https://codereview.chromium.org/14796017

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@199756 0039d316-1c4b-4281-b951-d872f2087c98

7 days agoFix a typo in GpuVideoDecoder.
xhwang@chromium.org [Mon, 13 May 2013 17:32:05 +0000 (17:32 +0000)]
Fix a typo in GpuVideoDecoder.

TBR=scherkus@chromium.org

Review URL: https://codereview.chromium.org/15102005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@199755 0039d316-1c4b-4281-b951-d872f2087c98

7 days agoWebM file for testing inband text tracks
tomfinegan@chromium.org [Mon, 13 May 2013 17:00:10 +0000 (17:00 +0000)]
WebM file for testing inband text tracks

This patch comprises just a single WebM test file.  In
addition to the video track, the file also contains an
inband subtitle track.

BUG=230708
R=scherkus@chromium.org, tomfinegan@chromium.org

Review URL: https://codereview.chromium.org/14678008

Patch from Matthew Heaney <matthewjheaney@chromium.org>.

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@199748 0039d316-1c4b-4281-b951-d872f2087c98

9 days agoFix the build for Google TV
qinmin@chromium.org [Sat, 11 May 2013 19:29:22 +0000 (19:29 +0000)]
Fix the build for Google TV

R=qinmin@chromium.org
BUG=

Review URL: https://codereview.chromium.org/15096003

Patch from Yuncheol Heo <ycheo@chromium.org>.

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@199628 0039d316-1c4b-4281-b951-d872f2087c98

9 days agoReenable media::Pipeline's ThreadChecker now that reference counting has been removed.
scherkus@chromium.org [Sat, 11 May 2013 18:51:58 +0000 (18:51 +0000)]
Reenable media::Pipeline's ThreadChecker now that reference counting has been removed.

BUG=148405

Review URL: https://chromiumcodereview.appspot.com/14720010

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@199617 0039d316-1c4b-4281-b951-d872f2087c98

10 days agoCleanup and reduce memory usage for MultiChannelResampler.
dalecurtis@chromium.org [Fri, 10 May 2013 19:32:23 +0000 (19:32 +0000)]
Cleanup and reduce memory usage for MultiChannelResampler.

Removes a vector allocation and an allocation for an unused channel
in favor of AudioBus::CreateWrapper().  These allocations are also
moved to the constructor now that SincResampler will always ask for
the same amount of data.

BUG=none
TEST=media_unittests

Review URL: https://chromiumcodereview.appspot.com/14969017

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@199521 0039d316-1c4b-4281-b951-d872f2087c98

10 days agoAdds support for different sample rates in unified audio on Windows.
henrika@chromium.org [Fri, 10 May 2013 14:57:27 +0000 (14:57 +0000)]
Adds support for different sample rates in unified audio on Windows.

First working version where audio works in full duplex using different combinations of sample rates in both directions.

Also needs https://codereview.chromium.org/14189035/

BUG=none
TEST=media_unittests.exe --gtest_filter=WASAPIUni* --gtest_also_run_disabled_tests

Also done local WebAudio tests using several different audio devices. Off-line tuning of parameters are done using Matlab scripts and file output from unit tests.

Review URL: https://chromiumcodereview.appspot.com/14352016

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@199481 0039d316-1c4b-4281-b951-d872f2087c98

10 days agoCut content/browser dependency on webkit_media
jamesr@chromium.org [Fri, 10 May 2013 05:22:06 +0000 (05:22 +0000)]
Cut content/browser dependency on webkit_media

BUG=237267

Review URL: https://chromiumcodereview.appspot.com/15063003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@199384 0039d316-1c4b-4281-b951-d872f2087c98

10 days agoRemove function level static initializers from VectorMath.
dalecurtis@google.com [Fri, 10 May 2013 00:30:15 +0000 (00:30 +0000)]
Remove function level static initializers from VectorMath.

Since VectorMath routines (and other features) are used both
in the renderer process and the browser process, relying on
InitializeMediaLibrary() alone is insufficient.

Enter: InitializeCPUSpecificMediaFeatures(), a method which
can be called from the browser process without initializing
any of the loadable media modules.

BUG=224662
TEST=media_unittests
R=scherkus@chromium.org, sky@chromium.org

Review URL: https://codereview.chromium.org/15044005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@199315 0039d316-1c4b-4281-b951-d872f2087c98

11 days agoEnable partial playback
jrummell@chromium.org [Thu, 9 May 2013 18:05:06 +0000 (18:05 +0000)]
Enable partial playback

Currently Chrome supports partial playback of unsupported content.
However it only works for codecs Chrome doesn't know about. This CL
fixes the case where Chrome knows about the codec but does not support
it on a particular platform.

BUG = 127881

Review URL: https://chromiumcodereview.appspot.com/14997005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@199244 0039d316-1c4b-4281-b951-d872f2087c98

11 days agomedia: Ensure VP8 alpha tests really use the VP8 alpha decoder.
tomfinegan@chromium.org [Thu, 9 May 2013 13:00:11 +0000 (13:00 +0000)]
media: Ensure VP8 alpha tests really use the VP8 alpha decoder.

BUG=none
TEST=none

Review URL: https://chromiumcodereview.appspot.com/15019011

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@199204 0039d316-1c4b-4281-b951-d872f2087c98

11 days agoReland: Remove reference counting from media::Pipeline.
scherkus@chromium.org [Thu, 9 May 2013 05:40:30 +0000 (05:40 +0000)]
Reland: Remove reference counting from media::Pipeline.

Now with a test that covers the refresh/teardown case.

BUG=173313

Review URL: https://chromiumcodereview.appspot.com/14779009

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@199130 0039d316-1c4b-4281-b951-d872f2087c98

11 days agoFix some includes in media code.
xhwang@chromium.org [Thu, 9 May 2013 05:40:15 +0000 (05:40 +0000)]
Fix some includes in media code.

Review URL: https://chromiumcodereview.appspot.com/14773010

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@199129 0039d316-1c4b-4281-b951-d872f2087c98

11 days agoReland "Add FakeDemuxerStream."
xhwang@chromium.org [Wed, 8 May 2013 22:58:24 +0000 (22:58 +0000)]
Reland "Add FakeDemuxerStream."

FakeVideoDecoder will be added later. Hopefully these will make tests in
VideoFrameStream cleaner.

TBR=scherkus@chromium.org
BUG=141788

Review URL: https://codereview.chromium.org/14837007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@199037 0039d316-1c4b-4281-b951-d872f2087c98

11 days agoReduce jitter from uneven SincResampler buffer size requests.
dalecurtis@google.com [Wed, 8 May 2013 22:53:28 +0000 (22:53 +0000)]
Reduce jitter from uneven SincResampler buffer size requests.

Ensures all buffer requests are for the same size.  Reduces jitter
by allowing clients with specific buffer size requirements to avoid
overreading.

BUG=none
TEST=media_unittests.
R=crogers@google.com, henrika@chromium.org, sergeyu@chromium.org

Review URL: https://codereview.chromium.org/14189035

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@199032 0039d316-1c4b-4281-b951-d872f2087c98

12 days agoFix support for channel layouts other than the hardware layout.
dalecurtis@google.com [Wed, 8 May 2013 21:43:42 +0000 (21:43 +0000)]
Fix support for channel layouts other than the hardware layout.

When a channel layout reported as supported was passed into the
WASAPI driver, it would still check it against the preferred
parameters and fail out.  Doing so caused an Open() failure
which leads to WaveOut fallback in AudioOutputResampler!

I've modified the check to ignore channel counts when checking
the parameter validity against preferred params.  If the channel
counts aren't supported failure will still happen in Open() due
to the IsFormatSupported() check failing out.

BUG=227043
TEST=latency numbers return to normal
R=henrika@chromium.org

Review URL: https://codereview.chromium.org/14828007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@199020 0039d316-1c4b-4281-b951-d872f2087c98

12 days agoAdd MediaPlayerAndroid as a super class for all media player implementations on android.
qinmin@chromium.org [Wed, 8 May 2013 19:04:02 +0000 (19:04 +0000)]
Add MediaPlayerAndroid as a super class for all media player implementations on android.

There are several different implementations of media players on Android.
Currently they all inherit from MediaPlayerBridge.
This only works if their java player is a subclass of Android MediaPlayer class, which is not necessary in some cases.
Additionally, we are not going to use any subclass of android MediaPlayer for MSE implementation
As a result, this change introduces a super class for all the media player implementations.

BUG=233420
R=scherkus@chromium.org, ycheo@chromium.org, yfriedman@chromium.org

Review URL: https://codereview.chromium.org/14762006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198957 0039d316-1c4b-4281-b951-d872f2087c98

12 days agoRevert 198921 "Add FakeDemuxerStream."
xhwang@chromium.org [Wed, 8 May 2013 16:41:25 +0000 (16:41 +0000)]
Revert 198921 "Add FakeDemuxerStream."

> Add FakeDemuxerStream.
>
> FakeVideoDecoder will be added later. Hopefully these will make tests in
> VideoFrameStream cleaner.
>
> BUG=141788
> R=scherkus@chromium.org
>
> Review URL: https://codereview.chromium.org/13947052

TBR=xhwang@chromium.org

Review URL: https://codereview.chromium.org/14756015

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198925 0039d316-1c4b-4281-b951-d872f2087c98

12 days agoRevert 198760 "Remove reference counting from media::Pipeline."
scherkus@chromium.org [Wed, 8 May 2013 16:23:05 +0000 (16:23 +0000)]
Revert 198760 "Remove reference counting from media::Pipeline."

> Remove reference counting from media::Pipeline.
>
> BUG=173313
> R=acolwell@chromium.org
>
> Review URL: https://codereview.chromium.org/14371023

BUG=238908
TBR=scherkus@chromium.org

Review URL: https://codereview.chromium.org/14972012

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198922 0039d316-1c4b-4281-b951-d872f2087c98

12 days agoAdd FakeDemuxerStream.
xhwang@chromium.org [Wed, 8 May 2013 16:22:56 +0000 (16:22 +0000)]
Add FakeDemuxerStream.

FakeVideoDecoder will be added later. Hopefully these will make tests in
VideoFrameStream cleaner.

BUG=141788
R=scherkus@chromium.org

Review URL: https://codereview.chromium.org/13947052

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198921 0039d316-1c4b-4281-b951-d872f2087c98

12 days agoRevert 198820 "Move FileEnumerator to its own file, do some refa..."
dbeam@chromium.org [Wed, 8 May 2013 05:46:20 +0000 (05:46 +0000)]
Revert 198820 "Move FileEnumerator to its own file, do some refa..."

Broke both windows clobber and official builders' compile with this error:

771>Link:
771>     Creating library ..\..\..\build\Release\lib\gcp_portmon64.lib and
object ..\..\..\build\Release\lib\gcp_portmon64.exp
771>base.lib(path_service.obj) : fatalerror LNK1112: module machine type 'X86'
conflicts with target machine type 'x64'
771>
771>Build FAILED.

> Move FileEnumerator to its own file, do some refactoring.
>
> It creates a class FileInfo to contain the details rather than using a platform-specific typedef. This allows the accessors GetName, GetSize, etc. to be moved directly to this class (previously they were static helpers on the FileEnumerator class) which makes a bunch of code much cleaner. It also gives reasonable getting and initialization which the previous version lacked.
>
> BUG=175002
> R=rvargas@chromium.org
>
> Review URL: https://codereview.chromium.org/13165005

TBR=brettw@chromium.org

Review URL: https://codereview.chromium.org/14824006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198850 0039d316-1c4b-4281-b951-d872f2087c98

12 days agoRevert 198844 "Move sequenced_task_runner to base/task"
dbeam@chromium.org [Wed, 8 May 2013 05:35:24 +0000 (05:35 +0000)]
Revert 198844 "Move sequenced_task_runner to base/task"

Reverting revisions that rely on r198820 so to unbreak the build.

> Move sequenced_task_runner to base/task
>
> BUG=
> R=akalin@chromium.org
>
> Review URL: https://codereview.chromium.org/14927008

TBR=brettw@chromium.org

Review URL: https://codereview.chromium.org/14985007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198848 0039d316-1c4b-4281-b951-d872f2087c98

12 days agoMove sequenced_task_runner to base/task
brettw@chromium.org [Wed, 8 May 2013 04:14:58 +0000 (04:14 +0000)]
Move sequenced_task_runner to base/task

BUG=
R=akalin@chromium.org

Review URL: https://codereview.chromium.org/14927008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198844 0039d316-1c4b-4281-b951-d872f2087c98

12 days agoMove FileEnumerator to its own file, do some refactoring.
brettw@chromium.org [Tue, 7 May 2013 22:51:31 +0000 (22:51 +0000)]
Move FileEnumerator to its own file, do some refactoring.

It creates a class FileInfo to contain the details rather than using a platform-specific typedef. This allows the accessors GetName, GetSize, etc. to be moved directly to this class (previously they were static helpers on the FileEnumerator class) which makes a bunch of code much cleaner. It also gives reasonable getting and initialization which the previous version lacked.

BUG=175002
R=rvargas@chromium.org

Review URL: https://codereview.chromium.org/13165005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198820 0039d316-1c4b-4281-b951-d872f2087c98

13 days agoRemove reference counting from media::Pipeline.
scherkus@chromium.org [Tue, 7 May 2013 17:43:28 +0000 (17:43 +0000)]
Remove reference counting from media::Pipeline.

BUG=173313
R=acolwell@chromium.org

Review URL: https://codereview.chromium.org/14371023

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198760 0039d316-1c4b-4281-b951-d872f2087c98

13 days agoRemove use_system_ffmpeg-related logic from media and other mainline gyp files.
phajdan.jr@chromium.org [Tue, 7 May 2013 16:59:00 +0000 (16:59 +0000)]
Remove use_system_ffmpeg-related logic from media and other mainline gyp files.

BUG=226860
R=fischman@chromium.org

Review URL: https://codereview.chromium.org/14659007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198746 0039d316-1c4b-4281-b951-d872f2087c98

13 days agoAllow extra codec data to be passed to AudioCodecBridge
qinmin@chromium.org [Tue, 7 May 2013 06:24:48 +0000 (06:24 +0000)]
Allow extra codec data to be passed to AudioCodecBridge

Android MediaCodec needs vorbis codec data to work properly.
Passing the extra codec data from ChunkDemuxer should fix the problem.

BUG=233420

Review URL: https://chromiumcodereview.appspot.com/14957003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198650 0039d316-1c4b-4281-b951-d872f2087c98

13 days agoRemove function level static initializers media library initialization.
dalecurtis@chromium.org [Mon, 6 May 2013 22:55:21 +0000 (22:55 +0000)]
Remove function level static initializers media library initialization.

Moves media library initialization into a lazy initializer and dedups a
bunch of code.  This will also be the eventual home for global media
initialization routines (YUV and VectorMath).

BUG=224662
TEST=compiles, media library works.

Review URL: https://chromiumcodereview.appspot.com/14891002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198559 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoAvoid crash when changing sample-rates using live audio input
crogers@google.com [Mon, 6 May 2013 21:12:34 +0000 (21:12 +0000)]
Avoid crash when changing sample-rates using live audio input

BUG=155940
R=dalecurtis@chromium.org

Review URL: https://codereview.chromium.org/14682018

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198535 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoMake sure not to use aggregate devices if sample-rates of input and output devices...
crogers@google.com [Mon, 6 May 2013 21:07:53 +0000 (21:07 +0000)]
Make sure not to use aggregate devices if sample-rates of input and output devices don't match

We currently check the "clock domains" to decide whether to create and use an aggregate device.
It turns out that devices with the same "clock domain" can still be set at different sample-rates,
and special care (extra properties must be set) must be taken to setup the aggregate device properly in that case.
For the time being avoid using an aggregate device and fallback to the synchronized path here.

BUG=none
TEST=manual testing with various combinations of sample-rate with several devices
R=dalecurtis@chromium.org

Review URL: https://codereview.chromium.org/14573005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198532 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoFail gracefully when converting corrupted H.264 packets.
scherkus@chromium.org [Mon, 6 May 2013 12:14:09 +0000 (12:14 +0000)]
Fail gracefully when converting corrupted H.264 packets.

Regardless of where the corruption is coming from we shouldn't crash when parsing a funky bitstream.

BUG=234449

Review URL: https://chromiumcodereview.appspot.com/14956002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198419 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoLimit the rate to send media log events over IPC.
changbin.shao@intel.com [Sat, 4 May 2013 14:06:59 +0000 (14:06 +0000)]
Limit the rate to send media log events over IPC.

Some media events e.g. BufferedExtentsChanged update quite often, this causes heavy IPC traffic for CPU. In the meantime, chrome://media-internals doesn't need to update data in such a high frequency. Use array to send these events every 1 second.

BUG=235096

Review URL: https://chromiumcodereview.appspot.com/14146018

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198314 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agomedia: Enable VP9 tests.
tomfinegan@chromium.org [Sat, 4 May 2013 14:06:36 +0000 (14:06 +0000)]
media: Enable VP9 tests.

BUG=173333,180280
TEST=Running media_unittests with filter=*VP9* succeeds.

Review URL: https://chromiumcodereview.appspot.com/14137023

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198313 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoFix SourceBufferStream to allow audio buffers with the same timestamp.
acolwell@chromium.org [Sat, 4 May 2013 05:04:03 +0000 (05:04 +0000)]
Fix SourceBufferStream to allow audio buffers with the same timestamp.

BUG=227417
TEST=SourceBufferStreamTest.SameTimestamp_Audio, SourceBufferStreamTest.SameTimestamp_Audio_Invalid_1

Review URL: https://chromiumcodereview.appspot.com/14910006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198293 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoUse int64 for media buffer change events and send as double type.
changbin.shao@intel.com [Sat, 4 May 2013 00:34:45 +0000 (00:34 +0000)]
Use int64 for media buffer change events and send as double type.

Data overflow happens when chrome://media-internals displays some big integers, such as buffer_start, buffer_end. To solve this issue, use int64 type to store and send these media parameters as double type.

Review URL: https://chromiumcodereview.appspot.com/14113056

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198263 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoAdd --enable-bitstream-converter to media/tools/demuxer_bench.
scherkus@chromium.org [Fri, 3 May 2013 23:17:22 +0000 (23:17 +0000)]
Add --enable-bitstream-converter to media/tools/demuxer_bench.

Not only am I interested in measuring the overhead of bitstream conversion, it also makes for a very easy way to reproduce the CHECK() for bug 234449.

Finally, converted a few scoped_ptr<T> to T now that less of our code relies on RefCountedThreadSafe.

BUG=234449
R=dalecurtis@chromium.org

Review URL: https://codereview.chromium.org/14736006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198231 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoUpdate VP9 test files to the latest codec bitstream.
tomfinegan@chromium.org [Fri, 3 May 2013 23:04:43 +0000 (23:04 +0000)]
Update VP9 test files to the latest codec bitstream.

TBR=scherkus
BUG=none
TEST=none

Review URL: https://codereview.chromium.org/14952002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198223 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoRemove a bunch of old media switches.
dalecurtis@google.com [Fri, 3 May 2013 19:54:02 +0000 (19:54 +0000)]
Remove a bunch of old media switches.

Audio fallback and audio output resampler have been enabled since
M23, there's no need for these switches anymore.  Anyone who still
needs WaveOut on Vista, 7+ can use --force-wave-out.

Audio renderer mixing has been enabled since M26 without issue, so
it can also be removed.

Audio mixer no longer exists and thus should be removed.

BUG=173435
TEST=compiles
R=jamesr@chromium.org, scherkus@chromium.org, sky@chromium.org, yzshen@chromium.org

Review URL: https://codereview.chromium.org/14858013

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198173 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoHandle decoding of vorbis files better on Android
rtoy@google.com [Fri, 3 May 2013 01:58:12 +0000 (01:58 +0000)]
Handle decoding of vorbis files better on Android

BUG=227144

Send the data size to MediaCodec so we can get the duration length for ogg/vorbis files correctly instead of returning a huge number.  With this information, we no longer need the is_vorbis flag since the duration is now correct, so we remove that code as well.

Review URL: https://chromiumcodereview.appspot.com/14522002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@198029 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoFix missing virtual keyword in BoxReaderTest.
dalecurtis@google.com [Thu, 2 May 2013 22:03:05 +0000 (22:03 +0000)]
Fix missing virtual keyword in BoxReaderTest.

BUG=none
TEST=compiles
R=ddorwin@chromium.org

Review URL: https://codereview.chromium.org/14608003

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@197982 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoLimit the source buffer size in TV.
ycheo@chromium.org [Thu, 2 May 2013 07:25:48 +0000 (07:25 +0000)]
Limit the source buffer size in TV.

BUG=

Review URL: https://chromiumcodereview.appspot.com/14731005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@197850 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoSubclass MediaCodecBridge into AudioCodecBridge and VideoCodecBridge
qinmin@chromium.org [Thu, 2 May 2013 03:18:40 +0000 (03:18 +0000)]
Subclass MediaCodecBridge into AudioCodecBridge and VideoCodecBridge

Having a mixed MediaCodecBridge is not very clear.
For example, how can I call StartVideo() if the codec is created as an AudioCodecBridge.
Also, this change removes the extra enums defined in MediaCodecBridge.
We should use the enums in audio_decoder_config.h and video_decoder_config.h

Review URL: https://chromiumcodereview.appspot.com/14604002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@197797 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoCollect UMA stats for ppapi hardware video decode.
ihf@chromium.org [Thu, 2 May 2013 02:15:05 +0000 (02:15 +0000)]
Collect UMA stats for ppapi hardware video decode.

The values are in particular
  Media.PepperVideoDecoderPictureCount   Number of requested PictureBuffers.
  Media.PepperVideoDecoderPictureHeight  Height of picture.
  Media.PepperVideoDecoderError          Decoder NotifyError code.

BUG=chromium:217356

Review URL: https://chromiumcodereview.appspot.com/14184005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@197785 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoTrack ARI sink state separate from ARI state.
dalecurtis@google.com [Wed, 1 May 2013 20:17:02 +0000 (20:17 +0000)]
Track ARI sink state separate from ARI state.

Due to how SetPlaybackRate() was implemented it was possible for
the sink state to be "paused" while the ARI state is "playing."

This leads to duplicate Play() and Pause() calls when playback
rate changes occur.  Compounding this is the fact that Pipeline
doesn't have a concept of "Pause" it merely sets playback rate to
zero.

I also fixed these additional issues:
- Duplicate Pause() calls when in Preroll().
- Removed the return of muted data on non-playing states during
Render().  Now handled implicitly by FromInterleaved and later
by AudioRendererMixer.

Found by new DCHECKs in https://codereview.chromium.org/14256009/

BUG=none
TEST=media_unittests, layout tests.
R=acolwell@chromium.org

Review URL: https://codereview.chromium.org/14696004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@197701 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoRename MediaPlayerBridgeManager to MediaPlayerManager
qinmin@chromium.org [Wed, 1 May 2013 16:09:01 +0000 (16:09 +0000)]
Rename MediaPlayerBridgeManager to MediaPlayerManager

To support MediaSource, i am planning to introduce MediaSourceBridge on android.
Both MediaSourceBridge and MediaPlayerBridge will inherit from a common class: MediaPlayerAndroid.
As a result of this plan, MediaPlayerBridgeManager is no longer a good name for this common class.
This CL includes the following changes:
1. rename MediaPlayerBridgeManager to MediaPlayerManager, and MediaPlayerManagerAndroid to MediaPlayerManagerImpl.
2. remove MediaPlayerBridgeManagerImpl as it is no longer being used.
3. MediaResouceGetter is now owned by MediaPlayerManagerImpl.
   so we no longer need to create a separate MediaResourceGetter for each player.

BUG=233420
R=jam@chromium.org, scherkus@chromium.org, yfriedman@chromium.org

Review URL: https://codereview.chromium.org/14314020

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@197626 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoSupport EAC3 (Dolby Digital Plus) codec
ycheo@chromium.org [Wed, 1 May 2013 12:42:21 +0000 (12:42 +0000)]
Support EAC3 (Dolby Digital Plus) codec

BUG=215773

Review URL: https://chromiumcodereview.appspot.com/14641006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@197602 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoRefactor AudioRendererMixer to be more generic.
dalecurtis@google.com [Wed, 1 May 2013 00:11:41 +0000 (00:11 +0000)]
Refactor AudioRendererMixer to be more generic.

AudioRendererMixer will now work with arbitrary
AudioConverter::InputCallbacks.  Its main value is as a go between
for AudioRendererSink::RenderCallbacks to a single AudioRendererSink.

This refactoring allows WebRTC to reuse the AudioRendererMixer
infrastructure without forking out the ARMM and ARM modules.

BUG=234580
TEST=media_unittests
R=xians@chromium.org

Review URL: https://codereview.chromium.org/14358049

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@197522 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoRemove upcasting from AudioBus interleave methods where possible.
dalecurtis@google.com [Tue, 30 Apr 2013 17:29:42 +0000 (17:29 +0000)]
Remove upcasting from AudioBus interleave methods where possible.

Upcasting isn't necessary without a bias since the overflow
check is performed on the float value.

No change on x86, but avoids using int64 types on arm which makes
the new methods 3x faster for int32 ToInterleave.  Also fixes a
sign bug which never manifested as a problem due to overflow.

For reference, in aggregate, Daisy is only 3x slower than my Z620,
which isn't too shabby.

BUG=none
TEST=media_unittests --gtest_filter=AudioBus* --gtest_also_run_disabled_tests

Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=196946

R=acolwell@chromium.org

Review URL: https://codereview.chromium.org/13868019

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@197397 0039d316-1c4b-4281-b951-d872f2087c98

2 weeks agoC++ readability review for dalecurtis.
dalecurtis@google.com [Tue, 30 Apr 2013 01:00:23 +0000 (01:00 +0000)]
C++ readability review for dalecurtis.

AudioConverter is a tool for mixing and converting audio data from
one format to another; differences may include sample rates, channel
layout, and buffer size.

AudioConverter is the work horse behind several Chrome features:
- Allows mixing and conversion of HTML5 audio streams for thread savings:
https://code.google.com/p/chromium/codesearch#chromium/src/media/base/audio_renderer_mixer.cc

- Allows Pepper clients (like Flash) to be oblivious of hardware requirements:
https://code.google.com/p/chromium/codesearch#chromium/src/media/audio/audio_output_resampler.cc

- Tab Audio Mirroring:
https://code.google.com/p/chromium/codesearch#chromium/src/media/audio/virtual_audio_input_stream.cc

Original CL for context: https://codereview.chromium.org/11410012/

R=fischman@chromium.org, lmendes@google.com

Review URL: https://codereview.chromium.org/12670011

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@197197 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoEnable MSE for TV
qinmin@chromium.org [Sat, 27 Apr 2013 20:45:42 +0000 (20:45 +0000)]
Enable MSE for TV

BUG=215275
R=acolwell@chromium.org, jamesr@chromium.org, palmer@chromium.org, qinmin@chromium.org, yfriedman@chromium.org

Review URL: https://codereview.chromium.org/14341010

Patch from Yuncheol Heo <ycheo@chromium.org>.

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@196968 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks ago(view as text)
pfeldman@chromium.org [Sat, 27 Apr 2013 06:13:08 +0000 (06:13 +0000)]
(view as text)
AudioBusTest.ToInterleaved:
c:\b\build\slave\cr-win-rel-x64\build\src\media\base\audio_bus_unittest.cc(357): error: Value of: 0
Expected: memcmp( test_array, kTestVectorInt32, sizeof(kTestVectorInt32))
Which is: -1
Google Test trace:
c:\b\build\slave\cr-win-rel-x64\build\src\media\base\audio_bus_unittest.cc(353): int32

TBR=dalecurtis

Review URL: https://codereview.chromium.org/14314027

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@196950 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoRemove upcasting from AudioBus interleave methods where possible.
dalecurtis@chromium.org [Sat, 27 Apr 2013 05:05:51 +0000 (05:05 +0000)]
Remove upcasting from AudioBus interleave methods where possible.

Upcasting isn't necessary without a bias since the overflow
check is performed on the float value.

No change on x86, but avoids using int64 types on arm which makes
the new methods 3x faster for int32 ToInterleave.  Also fixes a
sign bug which never manifested as a problem due to overflow.

For reference, in aggregate, Daisy is only 3x slower than my Z620,
which isn't too shabby.

BUG=none
TEST=media_unittests --gtest_filter=AudioBus* --gtest_also_run_disabled_tests

Review URL: https://chromiumcodereview.appspot.com/13868019

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@196946 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoMake more VideoDecoders reinitializable.
xhwang@chromium.org [Sat, 27 Apr 2013 00:03:54 +0000 (00:03 +0000)]
Make more VideoDecoders reinitializable.

This follows r196424. All video decoders except for GpuVideoDecoder are
reinitializable.

BUG=233608, 141788
TEST=Updated media_unittests.

Review URL: https://chromiumcodereview.appspot.com/14256013

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@196890 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoReplace myself with Min for media/android/OWNERS
yfriedman@chromium.org [Fri, 26 Apr 2013 22:59:08 +0000 (22:59 +0000)]
Replace myself with Min for media/android/OWNERS

He's better-suited to review this code.

NOTRY=true

Review URL: https://chromiumcodereview.appspot.com/14314018

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@196868 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoRemove reference counting from media::DataSource and friends.
scherkus@chromium.org [Fri, 26 Apr 2013 18:39:59 +0000 (18:39 +0000)]
Remove reference counting from media::DataSource and friends.

BUG=173313

Review URL: https://codereview.chromium.org/14503002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@196789 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoDelete media::PipelineStatusNotification as it isn't used in production code.
scherkus@chromium.org [Fri, 26 Apr 2013 18:12:10 +0000 (18:12 +0000)]
Delete media::PipelineStatusNotification as it isn't used in production code.

The existing use in player_x11 is replaced by a base::WaitableEvent.

Review URL: https://codereview.chromium.org/14371024

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@196778 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoIntroduce TestVideoConfig class.
xhwang@chromium.org [Thu, 25 Apr 2013 23:51:41 +0000 (23:51 +0000)]
Introduce TestVideoConfig class.

We have a lot of cases where we need some pre-canned VideoDecoderConfig for
testing purposes. In these tests, we only care about general categories of the
video configs (e.g. validity, config change and encryption) rather than details
like visible rect and extra data. The new TestVideoConfig class serves
this purpose.

TEST=Unittests still pass.

Review URL: https://chromiumcodereview.appspot.com/14238019

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@196543 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoRevert 195111 "Expose MEDIA_STATISTICS stats to chrome://media-i..."
scherkus@chromium.org [Thu, 25 Apr 2013 20:24:39 +0000 (20:24 +0000)]
Revert 195111 "Expose MEDIA_STATISTICS stats to chrome://media-i..."

> Expose MEDIA_STATISTICS stats to chrome://media-internals.
>
> Introduce MEDIA_STATISTICS parameters, such as decodedVideoFrameCount and friends, to chrome://media-internals properties.
>
> BUG=178563
>
> Review URL: https://chromiumcodereview.appspot.com/13870004

The high frequency nature of the events caused a CPU% increase: http://crbug.com/234377

Reverting until rate limiting is implemented: http://crbug.com/235096

BUG=234377
TBR=changbin.shao@intel.com

Review URL: https://codereview.chromium.org/13896027

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@196478 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoAdd Media.AudioRendererEvents histogram to measure how often OnRenderError() is called.
scherkus@chromium.org [Thu, 25 Apr 2013 18:29:28 +0000 (18:29 +0000)]
Add Media.AudioRendererEvents histogram to measure how often OnRenderError() is called.

BUG=234708

Review URL: https://codereview.chromium.org/14054019

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@196442 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoMake FFmpegVideoDecoder reinitializable.
xhwang@chromium.org [Thu, 25 Apr 2013 17:13:11 +0000 (17:13 +0000)]
Make FFmpegVideoDecoder reinitializable.

This is required to handle config change in VideoFrameStream. VideoFrameStream
will flush the decoder and reinitializes the VideoDecoder with the new config
upon config change.

BUG=233608,141788
TEST=Updated unittests to test reinitialization.

Review URL: https://chromiumcodereview.appspot.com/14189027

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@196424 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoDisable timer check for no data in AudioInputController for mirroring.
miu@chromium.org [Thu, 25 Apr 2013 10:16:14 +0000 (10:16 +0000)]
Disable timer check for no data in AudioInputController for mirroring.

In very rare cases (i.e., hard to repro), the "no data" timer in AudioInputController discovers that over one second has elapsed between calls to OnData().  It interprets this as a failure of the platform to report an error or a device close event (see bug 79936).  However, for the audio mirroring use case, it's plausible that in poor-performing circumstances audio output can be delayed, which will then cause delays as it is looped-back into the mirrored input stream.

Example sequence of events leading to failure:

1. Mirroring input stream asks AudioConverter for more data.
2. AudioConverter blocks (up to 683 ms) waiting to pull in audio output data.
3. Audio output data is provided after 600 ms.
4. AudioConverter consumes the data, but it is not enough to fill the buffer.  So, it asks AudioConverter for more data.
5. Repeat steps 2 and 3.
6. By now, more than 1 second has elapsed since step 1, and the "no data" timer in AudioInputController error's-out the stream.
7. Sadness.

BUG=230972

Review URL: https://chromiumcodereview.appspot.com/14494002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@196379 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoRemove reference counting from media::DemuxerStream and friends.
scherkus@chromium.org [Thu, 25 Apr 2013 08:51:47 +0000 (08:51 +0000)]
Remove reference counting from media::DemuxerStream and friends.

BUG=173313

Review URL: https://chromiumcodereview.appspot.com/14217008

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@196365 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoAdd kError to various VideoDecoder implementations.
xhwang@chromium.org [Thu, 25 Apr 2013 06:04:10 +0000 (06:04 +0000)]
Add kError to various VideoDecoder implementations.

Currently in FFmpegVideoDecoder, DecryptingVideoDecoder and VpxVideoDecoder,
kDecodeFinished has two meanings:
1) Received EOS from demuxer stream and decoder finished flushing.
2) Unexpected error occurred.

This CL introduces a new state: kError, to avoid the ambiguity. The
decoder is set to kError state whenever an error occurred. Any read
when the decoder is in kError state will result in kDecodeError.

Also replace GpuVideoDecoder::error_occurred_ with kError for consistency.

BUG=141788
TEST=All current unittests pass. Updated unittests.

Review URL: https://codereview.chromium.org/12668025

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@196335 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoMockDemuxerStream keeps audio/video decoder configs.
xhwang@chromium.org [Thu, 25 Apr 2013 01:15:52 +0000 (01:15 +0000)]
MockDemuxerStream keeps audio/video decoder configs.

TEST=media_unittests pass.

Review URL: https://chromiumcodereview.appspot.com/13936006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@196281 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoCHECK for adding duplicate converter inputs.
dalecurtis@chromium.org [Thu, 25 Apr 2013 00:24:50 +0000 (00:24 +0000)]
CHECK for adding duplicate converter inputs.

CHECK to see if we're getting into weird states due to inputs
being added twice.

BUG=233026
TEST=none

Review URL: https://chromiumcodereview.appspot.com/14083011

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@196271 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agomedia: Remove use of ALLOW_THIS_IN_INITIALIZER_LIST.
scherkus@chromium.org [Wed, 24 Apr 2013 20:45:16 +0000 (20:45 +0000)]
media: Remove use of ALLOW_THIS_IN_INITIALIZER_LIST.

It's no longer providing value as the MSVC warning is disabled during compilation. Refer to bug for details.

BUG=234765

Review URL: https://chromiumcodereview.appspot.com/13843027

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@196227 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agomedia: use AVCodecID instead of deprecated CodecID
phajdan.jr@chromium.org [Tue, 23 Apr 2013 22:28:01 +0000 (22:28 +0000)]
media: use AVCodecID instead of deprecated CodecID

BUG=none

Review URL: https://codereview.chromium.org/13858004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195923 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoSimplify ScreenCapturer interface.
sergeyu@chromium.org [Tue, 23 Apr 2013 19:57:36 +0000 (19:57 +0000)]
Simplify ScreenCapturer interface.

Removed Stop() and InvalidateRegion() from ScreenCapturer interface.

Review URL: https://codereview.chromium.org/14305004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195887 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoCleanup: Remove unnecessary ".get()" from scoped_ptrs<>.
erg@chromium.org [Tue, 23 Apr 2013 19:27:50 +0000 (19:27 +0000)]
Cleanup: Remove unnecessary ".get()" from scoped_ptrs<>.

In r174057, enne@ added support for implicit testing to scoped_ptr<>. Removes
these in media/.

BUG=232084

Review URL: https://chromiumcodereview.appspot.com/13870018

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195875 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoAdd NEON optimizations for FMAC and FMUL.
dalecurtis@google.com [Tue, 23 Apr 2013 18:39:48 +0000 (18:39 +0000)]
Add NEON optimizations for FMAC and FMUL.

Benchmarks show a 2.60x and 2.77x speedup for FMAC and FMUL
respectively.

BUG=none
TEST=media_unittests

Review URL: https://codereview.chromium.org/14188032

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195855 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoFix test_expectations_history.py to avoid writing intermediates to local directory
steveblock@chromium.org [Tue, 23 Apr 2013 05:08:11 +0000 (05:08 +0000)]
Fix test_expectations_history.py to avoid writing intermediates to local directory

Instead use mkdtemp().

TEST=python media/tools/layout_tests/test_expectations_history_unittest.py

Review URL: https://codereview.chromium.org/14323007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195713 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoAdd CHECK() to prevent underflow in media::H264ToAnnexBBitstreamConverter::CalculateN...
scherkus@chromium.org [Tue, 23 Apr 2013 01:07:08 +0000 (01:07 +0000)]
Add CHECK() to prevent underflow in media::H264ToAnnexBBitstreamConverter::CalculateNeededOutputBufferSize().

Will handle gracefully after we get some more information on when these types of scenarios happen.

BUG=234449

Review URL: https://codereview.chromium.org/14340009

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195678 0039d316-1c4b-4281-b951-d872f2087c98

3 weeks agoUse base::MessageLoop in media code.
xhwang@chromium.org [Mon, 22 Apr 2013 22:40:03 +0000 (22:40 +0000)]
Use base::MessageLoop in media code.

MessageLoop is moved to base namespace in r191566. This CL is the followup
cleanup in media code.

The following folders are replaced:
chrome/browser/media
content/browser/renderer_host/media
content/common/gpu/media
content/common/media
content/renderer/media
media
webkit/media

The following command is used to make sure all instances in these folders are updated:

grep -rin '[^a-zA-Z]MessageLoop[^a-zA-Z]' media chrome/browser/media content/browser/renderer_host/media content/common/gpu/media content/common/media content/renderer/media webkit/media | grep -v 'base::MessageLoop' | grep -v 'class MessageLoop'

Review URL: https://chromiumcodereview.appspot.com/14385002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195626 0039d316-1c4b-4281-b951-d872f2087c98

4 weeks agoRemove obsolete comment in DecryptingVideoDecoder.
xhwang@chromium.org [Mon, 22 Apr 2013 17:39:24 +0000 (17:39 +0000)]
Remove obsolete comment in DecryptingVideoDecoder.

TBR=ddorwin@chromium.org

Review URL: https://codereview.chromium.org/14402017

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195544 0039d316-1c4b-4281-b951-d872f2087c98

4 weeks agoFix ScreenCapturerMacTest to pass on high-DPI hosts
wez@chromium.org [Mon, 22 Apr 2013 15:46:14 +0000 (15:46 +0000)]
Fix ScreenCapturerMacTest to pass on high-DPI hosts

BUG=233395

Review URL: https://chromiumcodereview.appspot.com/14192011

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195510 0039d316-1c4b-4281-b951-d872f2087c98

4 weeks agoRemove reference counting from media::Demuxer and friends.
scherkus@chromium.org [Mon, 22 Apr 2013 04:03:38 +0000 (04:03 +0000)]
Remove reference counting from media::Demuxer and friends.

In addition:
* Pipeline no longer owns the demuxer; clients are required to own it and keep it alive until Pipeline::Stop() completes.

BUG=173313

Review URL: https://codereview.chromium.org/13813016

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195437 0039d316-1c4b-4281-b951-d872f2087c98

4 weeks agomedia: Add support for playback of VP8 Alpha video streams
vigneshv@chromium.org [Fri, 19 Apr 2013 23:43:32 +0000 (23:43 +0000)]
media: Add support for playback of VP8 Alpha video streams

BUG=147355
TEST=VP8 Alpha video streams play
TBR=sky

Review URL: https://chromiumcodereview.appspot.com/13886011

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195339 0039d316-1c4b-4281-b951-d872f2087c98

4 weeks ago[MIPS] Disable RGB32ToYUV_SSE2_MatchReference test for MIPS arch
petarj@mips.com [Fri, 19 Apr 2013 22:05:42 +0000 (22:05 +0000)]
[MIPS] Disable RGB32ToYUV_SSE2_MatchReference test for MIPS arch

The test is not applicable for MIPS architecture.

BUG= https://code.google.com/p/chromium/issues/detail?id=130022
TEST= Unit test

Review URL: https://chromiumcodereview.appspot.com/14017018

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195305 0039d316-1c4b-4281-b951-d872f2087c98

4 weeks agoAdd UMA tracing for unsupported codecs
jrummell@chromium.org [Fri, 19 Apr 2013 18:45:45 +0000 (18:45 +0000)]
Add UMA tracing for unsupported codecs

BUG=

Review URL: https://chromiumcodereview.appspot.com/13493018

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195247 0039d316-1c4b-4281-b951-d872f2087c98

4 weeks agoReland: Remove reference counting from media::VideoDecoder and friends.
scherkus@chromium.org [Fri, 19 Apr 2013 15:28:33 +0000 (15:28 +0000)]
Reland: Remove reference counting from media::VideoDecoder and friends.

In addition:
  * VideoRenderer is now passed a list of decoders via constructor instead of Initialize()
  * WebMediaPlayerImpl's FilterCollection is now built in one shot instead of incrementally

BUG=173313

Review URL: https://chromiumcodereview.appspot.com/14348007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195212 0039d316-1c4b-4281-b951-d872f2087c98

4 weeks agoLinux video capture, invoking mmap() with both READ and WRITE.
braveyao@chromium.org [Fri, 19 Apr 2013 13:06:56 +0000 (13:06 +0000)]
Linux video capture, invoking mmap() with both READ and WRITE.

BUG=178582
TEST=media_unittests

Review URL: https://chromiumcodereview.appspot.com/14265002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195150 0039d316-1c4b-4281-b951-d872f2087c98

4 weeks agoExpose MEDIA_STATISTICS stats to chrome://media-internals.
changbin.shao@intel.com [Fri, 19 Apr 2013 08:50:01 +0000 (08:50 +0000)]
Expose MEDIA_STATISTICS stats to chrome://media-internals.

Introduce MEDIA_STATISTICS parameters, such as decodedVideoFrameCount and friends, to chrome://media-internals properties.

BUG=178563

Review URL: https://chromiumcodereview.appspot.com/13870004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195111 0039d316-1c4b-4281-b951-d872f2087c98

4 weeks agoFix Clang errors in the Windows screen capture code
rnk@chromium.org [Fri, 19 Apr 2013 03:07:07 +0000 (03:07 +0000)]
Fix Clang errors in the Windows screen capture code

"and" and "xor" are alternate spellings of the "&&" and "^" operators,
and clang doesn't like it if you use them as identifiers.

Clang also doesn't like static_cast<> from void * to a function pointer,
but reinterpret_cast<> works.

R=alexeypa@chromium.org
BUG=82385

Review URL: https://chromiumcodereview.appspot.com/13852007

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195057 0039d316-1c4b-4281-b951-d872f2087c98

4 weeks agoRevert 194993 "Remove reference counting from media::VideoDecode..."
scherkus@chromium.org [Thu, 18 Apr 2013 22:03:48 +0000 (22:03 +0000)]
Revert 194993 "Remove reference counting from media::VideoDecode..."

> Remove reference counting from media::VideoDecoder and friends.
>
> In addition:
>   * VideoRenderer is now passed a list of decoders via constructor instead of Initialize()
>   * WebMediaPlayerImpl's FilterCollection is now built in one shot instead of incrementally
>
> BUG=173313
>
> Review URL: https://codereview.chromium.org/12989009

TBR=scherkus@chromium.org

Review URL: https://codereview.chromium.org/14320005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195013 0039d316-1c4b-4281-b951-d872f2087c98

4 weeks agoLinux: make it possible to compile against libav when use_system_ffmpeg==1
phajdan.jr@chromium.org [Thu, 18 Apr 2013 21:05:03 +0000 (21:05 +0000)]
Linux: make it possible to compile against libav when use_system_ffmpeg==1

libav's AVFrame doesn't have channels field.

BUG=none

Review URL: https://codereview.chromium.org/13991013

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@195001 0039d316-1c4b-4281-b951-d872f2087c98

4 weeks agoClear obsolete comment in GpuVideoDecoder.
xhwang@chromium.org [Thu, 18 Apr 2013 20:48:42 +0000 (20:48 +0000)]
Clear obsolete comment in GpuVideoDecoder.

Review URL: https://codereview.chromium.org/14002006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src/media@194998 0039d316-1c4b-4281-b951-d872f2087c98