summaryrefslogtreecommitdiffstats
path: root/media/base
Commit message (Collapse)AuthorAgeFilesLines
* Make AddFilter void and remove bullshit fallback code.fischman@chromium.org2012-03-275-38/+19
| | | | | | Review URL: http://codereview.chromium.org/9863025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129259 0039d316-1c4b-4281-b951-d872f2087c98
* Don't report errors twice to pipeline clients.fischman@chromium.org2012-03-273-41/+29
| | | | | | | | Also convert Pipeline::Stop() to take a Closure instead of a PipelineStatusCB since the status is always OK for a Stop. Review URL: http://codereview.chromium.org/9863028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129256 0039d316-1c4b-4281-b951-d872f2087c98
* Replace size_t with int in a few media classes.scherkus@chromium.org2012-03-2711-129/+126
| | | | | | | | This addressed TODOs in DataSource::Read() and AudioRendererAlgorithmBase, which led to converting Buffer and SeekableBuffer as well. Review URL: https://chromiumcodereview.appspot.com/9854031 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129140 0039d316-1c4b-4281-b951-d872f2087c98
* Add the output interface for the ChromeOS Audio Server(CRAS).dgreid@chromium.org2012-03-272-2/+11
| | | | | | | | | | | | | | | | | | Add cras_output.cc/h for talking to the server and cras_wrapper to allow unit testing. Code structure borrowed from alsa_output and mac/audio_low_latency_output. Introduce a gyp setting that can be used to enable cras_output. BUG=chromium-os:25409 TEST=New unit test for cras_output. Build and run on desktop linux and on mario. Signed-off-by: Dylan Reid <dgreid@chromium.org> Review URL: http://codereview.chromium.org/9374011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129055 0039d316-1c4b-4281-b951-d872f2087c98
* Forgot media/base/buffers_unittest.cc in r129038.scherkus@chromium.org2012-03-261-0/+89
| | | | | | Review URL: https://chromiumcodereview.appspot.com/9861009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129043 0039d316-1c4b-4281-b951-d872f2087c98
* Removed StreamSample as a shared base class between Buffer and VideoFrame.scherkus@chromium.org2012-03-267-99/+66
| | | | | | | | The only code we've had that depended on StreamSample was PtsHeap, which was removed in r118610. Review URL: https://chromiumcodereview.appspot.com/9809032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@129038 0039d316-1c4b-4281-b951-d872f2087c98
* Make Callback::Reset() return a copy to support use-cases where Run() ends ↵fischman@chromium.org2012-03-244-24/+6
| | | | | | | | | | | | | | up modifying |*this|. Callers can use cb.Reset().Run(args...); to avoid reentrancy-like bugs. Replace the special-purpose versions of ResetAndRunCB in the media/ codebase with this more-general facility. Review URL: http://codereview.chromium.org/9717021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128772 0039d316-1c4b-4281-b951-d872f2087c98
* Fix incorrect VideoFrame::row_bytes() for RGB. Add tests.dalecurtis@chromium.org2012-03-232-1/+70
| | | | | | | | | | | | | Also converts the Copy*Plane methods in video_util.cc to use size_t instead of int. BUG=119156 TEST=Built chrome. Ran unittests. Review URL: http://codereview.chromium.org/9766007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128379 0039d316-1c4b-4281-b951-d872f2087c98
* Fix frame hashing to include all valid planes.dalecurtis@chromium.org2012-03-223-1/+31
| | | | | | | | | | | | | | | | | Moves the frame hashing code from PipelineIntegrationTestBase to VideoFrame per suggestions in: https://chromiumcodereview.appspot.com/9716008/ Also disables frame hashing for BasicPlayback since it's failing on the TSAN bots. The code is still enabled for ffmpeg_regression_tests. BUG=118688 TEST=media_unittests, ffmpeg_regression_tests. Review URL: http://codereview.chromium.org/9732016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128307 0039d316-1c4b-4281-b951-d872f2087c98
* Move VideoDecoder out of media pipeline.xhwang@chromium.org2012-03-228-58/+65
| | | | | | | | | | | | | | This is the first step to move VideoDecoder out of Filter hierarchy. In this CL, VideoDecoder is removed from the pipeline and is owned by the VideoRenderBase now. All calls to Seek()/Pause()/Play() are removed. The video decoder is flushed or stopped from the VideoRenderBase instead of from the composite filter. In a follow-up CL, VideoDecoder will not be a Filter any more and Seek()/Pause()/Play() methods will be removed from its definition and all implementations. BUG=108340 TEST=media_unittest, content_unittest and some basic playing of html5 video. Review URL: http://codereview.chromium.org/9700006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128289 0039d316-1c4b-4281-b951-d872f2087c98
* Make AudioParameters a class instead of a structvrk@google.com2012-03-212-13/+10
| | | | | | | | | | | | | Also collapses some long parameter lists into AudioParameters and moves some of the hardcoded values (e.g. 16 bit audio in AudioDevice) to more appropriate locations. BUG=115902 TEST=manually testing everything works out Review URL: https://chromiumcodereview.appspot.com/9655018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@128054 0039d316-1c4b-4281-b951-d872f2087c98
* Merge FilterStatusCB into PipelineStatusCB.xhwang@chromium.org2012-03-189-52/+41
| | | | | | | | | | BUG=none TEST=media_unittest,content_unittest Review URL: http://codereview.chromium.org/9718013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@127397 0039d316-1c4b-4281-b951-d872f2087c98
* Callback renaming in media code.xhwang@chromium.org2012-03-1512-149/+149
| | | | | | | | | | | | | | | | | | This is a follow up CL of 125959. - Rename AudioTimeCB and VideoTimeCB to TimeCB, as the context (VideoRenderer/AudioRenderer already provides clear context). - Rename PipelineStatusCB callback variable names to status_cb if no names with specific meaning (e.g. seek_cb) are given. - Rename foo_callback to foo_cb (except for media/audio/). Note that media/audio also contains a lot of FooCallback types and foo_callback names. This will probably be addressed in another CL. BUG=none TEST=none Review URL: http://codereview.chromium.org/9704046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@127028 0039d316-1c4b-4281-b951-d872f2087c98
* Add base::StaticAtomicSequenceNumber.pliard@chromium.org2012-03-131-3/+2
| | | | | | | | | | | | This patch also replaces the global AtomicSequenceNumber variables with StaticAtomicSequenceNumber in order to remove static initializers. BUG=94925 Review URL: http://codereview.chromium.org/9415039 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126376 0039d316-1c4b-4281-b951-d872f2087c98
* Rename StatisticsCallback to StatisticsCB and DataSource::ReadCallback to ↵xhwang@chromium.org2012-03-107-25/+25
| | | | | | | | | | | | | | | ReadCB. To comply with naming convention in media code. Renaming only, no other changes. In rtc_video_decoder.cc, explicitly use media::VideoFrame so not to confuse with cricket::VideoFrame. BUG=none TEST=none Review URL: http://codereview.chromium.org/9634012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125959 0039d316-1c4b-4281-b951-d872f2087c98
* Add AES decryptor and tests.xhwang@chromium.org2012-03-088-3/+120
| | | | | | | | | | | For now we support decryption in video only. The first encryption key ID in ContentEncodings element will be used as the decryption key ID. Also we assume decryption key is the same as key ID. BUG=117060 TEST=test page with encrypted content plays; added media_unittest Review URL: http://codereview.chromium.org/9298021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125560 0039d316-1c4b-4281-b951-d872f2087c98
* Fold media::MessageLoopFactoryImpl into media::MessageLoopFactory.scherkus@chromium.org2012-03-064-130/+72
| | | | | | | | We haven't had a second implementation of the interface since MessageLoopFactory was added in r71548. Review URL: https://chromiumcodereview.appspot.com/9597016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125064 0039d316-1c4b-4281-b951-d872f2087c98
* Fix muted audio when playback rate != 1.0 or 0.0vrk@chromium.org2012-03-062-24/+38
| | | | | | | | | | | | | | Rewrites the logic in AudioRendererAlgorithmBase to be able to output audio at any point of a sped-up/slowed down window, instead of only outputting audio in full multiples of windows. BUG=108239 TEST=media_unittests, manual testing on video test matrix Review URL: http://codereview.chromium.org/9395057 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@125052 0039d316-1c4b-4281-b951-d872f2087c98
* Change Clock::SetMaxTime() to be safe even in the presence of slow pipelines.fischman@chromium.org2012-03-023-5/+4
| | | | | | | | | | | | | | | | | Before this CL the contract of SetMaxTime was unsatisfiable; a clock client could check that the max_time it was about to set wasn't greater than Elapsed() before calling SetMaxTime(), but between the time that check was done and the DCHECK inside SetMaxTime, time could move forward! After this CL, SetMaxTime() is allowed to move the media_time_ backward and set the underflow_ bit if the pipeline is slow enough. BUG=113037,chromium-os:26939 TEST=A Debug binary on an underpowered ARM crosbook with no audio device plays back correctly. Review URL: http://codereview.chromium.org/9582017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124739 0039d316-1c4b-4281-b951-d872f2087c98
* Second attempt to land ffmpeg roll.dalecurtis@google.com2012-03-013-5/+8
| | | | | | | | | | | | | | | | | Attempt 2 at landing http://codereview.chromium.org/9317096/ Same as before except for fixes in checkperms/ However, fixes have landed elsewhere for: - mp3 decode issue. - FrameRateNoVsyncCanvasInternalTest.fishbowl/0 BUG=110776 TEST=unittests, layouttests, trybots, perf tests... Review URL: https://chromiumcodereview.appspot.com/9447029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124501 0039d316-1c4b-4281-b951-d872f2087c98
* Replace a CHECK with some CHECK_LEs, to aid in debugging.wez@chromium.org2012-03-011-1/+2
| | | | | | | | | BUG=116138 Review URL: http://codereview.chromium.org/9514009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124372 0039d316-1c4b-4281-b951-d872f2087c98
* Fix race in Pipeline where video_decoder_ was accessed from multiple threads.tommi@chromium.org2012-02-291-5/+5
| | | | | | | | | | | | | | | | I moved the code that clears the variable to StopTask(). The problem was that all access to this variable except for inside Stop(), happens on the Pipeline thread, but was not protected by a lock. So, Stop() could be called and it could cause random crashes on the pipeline thread such as in the case I mention in the below bug. BUG=115299 TEST=follow repro steps in the bug report. Review URL: http://codereview.chromium.org/9536009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@124208 0039d316-1c4b-4281-b951-d872f2087c98
* Workaround for Windows-only crash inside delay load helper.enal@chromium.org2012-02-281-11/+43
| | | | | | | | | | | | | | | | | | | | | | Crash report shows access violation inside LoadLibraryExA() called from DelayLoadHelper2(), and we cannot figure out what exactly causes the problem. In theory it can be caused by Chrome terminating while we are initializing ffmpeg code, but I am not sure. Workaround is to call delay load helper to patch import tables during renderer initialization. We are loading ffmpeg DLL at this moment anyways but do not patch import tables. Extra overhead is negligeable compared to disk access time. Also fixed potential problem -- LoadLibraryEx() does not accept relative paths when used as we are using it. During normal startup we are getting absolute path, but customer can specify relative path as a command-line flag. Fix is to call Windows API GetFullPathName() to get rid of relative path. BUG=110983. Review URL: http://codereview.chromium.org/9450001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123865 0039d316-1c4b-4281-b951-d872f2087c98
* Don't histogram negative VideoCodecProfile values.fischman@chromium.org2012-02-231-2/+5
| | | | | | Review URL: http://codereview.chromium.org/9430065 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123334 0039d316-1c4b-4281-b951-d872f2087c98
* Add texture target field to video frame (for use by native textures).sievers@chromium.org2012-02-232-1/+14
| | | | | | | | To be used by https://bugs.webkit.org/show_bug.cgi?id=78398. Review URL: https://chromiumcodereview.appspot.com/9416087 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123255 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 123123 (probably caused a big perf regression -- http://crbug.com/115479,thakis@chromium.org2012-02-233-9/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and possibly made frame rate tests fail: http://crbug.com/115477. Will revert the revert if it doesn't help.) - Fix media code to work with new ffmpeg. Once ffmpeg git, svn are updated to new ffmpeg, will update DEPS in this CL. Which when committed, should seal the deal for the ffmpeg roll. API Changes: avutil: SampleFormat->AVSampleFormat avutil: av_get_bits_per_sample_fmt -> av_get_bytes_per_sample avcodec: avcodec_open -> avcodec_open2(..., NULL) avcodec: avcodec_decode_video2(... AVPacket ...) -> const AVPacket. avformat: av_open_input_file -> avformat_open_input avformat: av_register_protocol2 -> ffurl_register_protocol avformat: av_close_input_file -> avformat_close_input(&...) avformat: av_find_stream_info -> avformat_find_stream_info(..., NULL) URLContext now has a url_open2 method as well, for now I've set this to NULL. Also fixes: - ffmpeg_unittests change threading to mirror ffmpeg_video_decoder. There's an issue where threading causes the last frames of a no-audio video to be clipped. It existed before this ffmpeg roll, but because threading was disabled by default in ffmpeg, we never noticed it. - ffmpeg_demuxer_tests: GetBitrate_UnsetInContainer_NoFileSize now passes. - New ffmpeg_unittests passes: sync0_ogv/FFmpegTest.Seek_Video/0, where GetParam() = "sync0.ogv" sync1_ogv/FFmpegTest.Seek_Video/0, where GetParam() = "sync1.ogv" sync2_ogv/FFmpegTest.Seek_Video/0, where GetParam() = "sync2.ogv" FFmpeg fixups here, https://chromiumcodereview.appspot.com/9325049/ New git repo here: http://git.chromium.org/gitweb/?p=chromium/third_party/ffmpeg.git;a=summary Merge+Patches diff: https://chromiumcodereview.appspot.com/9317107 BUG=110776 TEST=unittests, layouttests, etc. Trybots. Review URL: https://chromiumcodereview.appspot.com/9317096 TBR=dalecurtis@google.com Review URL: https://chromiumcodereview.appspot.com/9455018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123249 0039d316-1c4b-4281-b951-d872f2087c98
* Fix media code to work with new ffmpeg.dalecurtis@google.com2012-02-223-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Once ffmpeg git, svn are updated to new ffmpeg, will update DEPS in this CL. Which when committed, should seal the deal for the ffmpeg roll. API Changes: avutil: SampleFormat->AVSampleFormat avutil: av_get_bits_per_sample_fmt -> av_get_bytes_per_sample avcodec: avcodec_open -> avcodec_open2(..., NULL) avcodec: avcodec_decode_video2(... AVPacket ...) -> const AVPacket. avformat: av_open_input_file -> avformat_open_input avformat: av_register_protocol2 -> ffurl_register_protocol avformat: av_close_input_file -> avformat_close_input(&...) avformat: av_find_stream_info -> avformat_find_stream_info(..., NULL) URLContext now has a url_open2 method as well, for now I've set this to NULL. Also fixes: - ffmpeg_unittests change threading to mirror ffmpeg_video_decoder. There's an issue where threading causes the last frames of a no-audio video to be clipped. It existed before this ffmpeg roll, but because threading was disabled by default in ffmpeg, we never noticed it. - ffmpeg_demuxer_tests: GetBitrate_UnsetInContainer_NoFileSize now passes. - New ffmpeg_unittests passes: sync0_ogv/FFmpegTest.Seek_Video/0, where GetParam() = "sync0.ogv" sync1_ogv/FFmpegTest.Seek_Video/0, where GetParam() = "sync1.ogv" sync2_ogv/FFmpegTest.Seek_Video/0, where GetParam() = "sync2.ogv" FFmpeg fixups here, https://chromiumcodereview.appspot.com/9325049/ New git repo here: http://git.chromium.org/gitweb/?p=chromium/third_party/ffmpeg.git;a=summary Merge+Patches diff: https://chromiumcodereview.appspot.com/9317107 BUG=110776 TEST=unittests, layouttests, etc. Trybots. Review URL: https://chromiumcodereview.appspot.com/9317096 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@123123 0039d316-1c4b-4281-b951-d872f2087c98
* Reimplement r122778 to fix BuildMediaStreamCollection without breaking HW ↵fischman@chromium.org2012-02-221-4/+0
| | | | | | | | video decode. Review URL: http://codereview.chromium.org/9372075 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122950 0039d316-1c4b-4281-b951-d872f2087c98
* Replace several NOTREACHED(), NOTIMPLEMENTED() with DVLOG(1), all values are ↵dalecurtis@chromium.org2012-02-213-8/+24
| | | | | | | | | | | | | | checked later by (Audio|Video)DecoderConfig.IsValidConfig() Unifies frame configuration check between VideoFrame and VideoDecoderConfig. BUG=none TEST=unittests, regression tests. Review URL: http://codereview.chromium.org/9358013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122886 0039d316-1c4b-4281-b951-d872f2087c98
* always remove existing video decoders when a new video decoder is added.wjia@chromium.org2012-02-211-0/+4
| | | | | | Review URL: https://chromiumcodereview.appspot.com/9318011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122778 0039d316-1c4b-4281-b951-d872f2087c98
* Minor fixes to compile media_unittests on android.nileshagrawal@chromium.org2012-02-161-1/+1
| | | | | | | | | BUG= TEST= Review URL: http://codereview.chromium.org/9405027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@122343 0039d316-1c4b-4281-b951-d872f2087c98
* Extends error handling for audio capture and rendering.henrika@chromium.org2012-02-131-1/+1
| | | | | | | | | | | | | | AudioDevice now uses OnRenderError() (instead of OnError()) and AudioInputDevice uses OnCaptureError(). This CL only enables these callbacks. A follow-up will add support for actual usage as well. BUG=none TEST=content_unittests Review URL: http://codereview.chromium.org/9378003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121729 0039d316-1c4b-4281-b951-d872f2087c98
* Introducing helper wrappers for copying a rectangle from a one partial ↵alexeypa@chromium.org2012-02-091-2/+3
| | | | | | | | | | | | | | buffer to another. YUV to RGB and RGB to RGB operations are supported. YUV to RGB allows down-scaling of re This CL also adds a supression for Valgrind which otherwise falsely complains about accessing uninitialized memory. See 113076 for details. BUG=109938,113076 TEST=remoting_unittests.Yuv2Rgb Review URL: http://codereview.chromium.org/9371002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121258 0039d316-1c4b-4281-b951-d872f2087c98
* Clear buffer prior to distribution to prevent valgrind errors.dalecurtis@chromium.org2012-02-081-1/+3
| | | | | | | | | | BUG=none TEST=Ran media_unittests under valgrind. Review URL: http://codereview.chromium.org/9350010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120875 0039d316-1c4b-4281-b951-d872f2087c98
* Reverting 120739 that caused valgrind breaks.alexeypa@chromium.org2012-02-071-3/+2
| | | | | | | | | BUG=109938 Review URL: http://codereview.chromium.org/9352017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120866 0039d316-1c4b-4281-b951-d872f2087c98
* Introducing helper wrappers for copying a rectangle from a one partial ↵alexeypa@chromium.org2012-02-071-2/+3
| | | | | | | | | | | buffer to another. YUV to RGB and RGB to RGB operations are supported. YUV to RGB allows down-scaling of rectangles. The wrappers hide (to some degree) gory details of manipulations with buffer pointers and rectangles. Added unit tests (remoting_unittests.Yuv2Rgb) to verify functionality of the YUV to RGB wrapper. BUG=109938 TEST=remoting_unittests.Yuv2Rgb Review URL: http://codereview.chromium.org/9320025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120739 0039d316-1c4b-4281-b951-d872f2087c98
* Fix incomplete teardown of demuxer.dalecurtis@chromium.org2012-02-071-6/+2
| | | | | | | | | | | | | | | | | | I ran into an issue with PipelineIntegrationTests where one of the security videos was causing ~FileDataSource to DCHECK complain about file_ never being torn down. Tracing this back, it's because we return NULL for the demuxer when an error is encountered. This prevents demuxer->Stop() from being called which leaves the data source in an unhappy state. BUG=none TEST=PipelineIntegrationTests/media_unittests Review URL: http://codereview.chromium.org/9350004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120730 0039d316-1c4b-4281-b951-d872f2087c98
* Remove AudioDecoder from the Filter heirarchy.fischman@chromium.org2012-02-0711-119/+147
| | | | | | | | | BUG=108339 TEST=none Review URL: https://chromiumcodereview.appspot.com/9325044 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120718 0039d316-1c4b-4281-b951-d872f2087c98
* Remove explicit casting needed from the .Pass() switchover, now that ↵fischman@chromium.org2012-02-061-2/+1
| | | | | | | | | | | | PassAs() exists. BUG=none TEST=none Review URL: http://codereview.chromium.org/9317115 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120607 0039d316-1c4b-4281-b951-d872f2087c98
* Initialize logging early enough to see VLOGs emitted by ↵fischman@chromium.org2012-02-031-3/+23
| | | | | | | | | | | | | | InitializeMediaLibraryForTesting(). (specifically, this makes ffmpeg_stubs.cc VLOGs actually get emitted if -v=1 is specified) BUG=none TEST=none Review URL: http://codereview.chromium.org/9320048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120345 0039d316-1c4b-4281-b951-d872f2087c98
* Fix media timeline so that thumb never exceeds buffered datavrk@chromium.org2012-02-0212-226/+414
| | | | | | | | | | | | | Caps PipelineImpl's current time to the time of the end of the last frame buffered so that the thumb no longer continues progress when stalled. BUG=99915 TEST=Playing video with limited bandwidth. Review URL: http://codereview.chromium.org/9155003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120151 0039d316-1c4b-4281-b951-d872f2087c98
* Update AudioRenderer, VideoRenderer, and AudioDecoder Initialize() methods ↵acolwell@chromium.org2012-02-027-39/+23
| | | | | | | | | | | | | | | to use PipelineStatusCB. - Fixes race on state_ in CompositeFilter detected by TSAN - Moves us one step closer to removing FilterHost::SetError(). BUG=109875 TEST=AudioRendererBaseTest.* VideoRendererBaseTest.*, FFmpegAudioDecoderTest.*, CompositeFilterTest.* Review URL: http://codereview.chromium.org/9310028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120135 0039d316-1c4b-4281-b951-d872f2087c98
* Fix ChunkDemuxer seek deadlockacolwell@chromium.org2012-01-312-4/+11
| | | | | | | | | BUG=109879 TEST=PipelineIntegrationTest.ChunkDemuxerAbortRead_*,FFmpegAudioDecoderTest.AbortRead, AudioRendererBaseTest.AbortPendingRead_* Review URL: https://chromiumcodereview.appspot.com/9295020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119851 0039d316-1c4b-4281-b951-d872f2087c98
* Fold Pipeline::Init() into Pipeline::Start().scherkus@chromium.org2012-01-303-44/+50
| | | | | | | | Instead of having clients optionally call Init() (i.e., player_x11, player_wtl) they are forced to pass null callbacks into Start(). Review URL: https://chromiumcodereview.appspot.com/9269022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119723 0039d316-1c4b-4281-b951-d872f2087c98
* Detect errors in audio output and report them upstream.fischman@chromium.org2012-01-271-1/+4
| | | | | | | | | | | | Stop feeding audio packets to AUDIO DemuxerStreams once audio has been disabled. BUG=111409 TEST=uninstall pulseaudio, make /dev/snd inaccessible, and observe <video> plays correctly (muted) instead of hanging. Review URL: http://codereview.chromium.org/9234066 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@119488 0039d316-1c4b-4281-b951-d872f2087c98
* Add a convenience typedef LazyInstance<T>::Leaky to avoid repeating T.fischman@chromium.org2012-01-231-3/+1
| | | | | | | | | | | | | Converted the first 20 or so hits for LeakyLazyInstanceTraits on codesearch to demonstrate the benefit at callsites. The real change is base/lazy_instance.h; everything else is example. BUG=none TEST=none Review URL: https://chromiumcodereview.appspot.com/9192024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118754 0039d316-1c4b-4281-b951-d872f2087c98
* Die, Pts{Stream,Heap}, Die!fischman@chromium.org2012-01-216-379/+0
| | | | | | | | | | BUG=107036 TEST=none Review URL: http://codereview.chromium.org/9138046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118610 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 118546 because it caused PrerenderHTML5VideoNetwork to timeout on ↵sadrul@chromium.org2012-01-214-169/+109
| | | | | | | | | | | | | | | | | | | | | | windows and linux """ Fire canplaythrough as soon as download defers to fix autoplay Reenables delayed firing of canplaythrough for media elements, and fixes the bug that had been introduced where a video with autoplay=true sometimes never starts. With this change, a video with autoplay=true should always (though not necessarily immediately) start playback on its own. BUG=106480,73609 TEST=media_unitests, manually checking video files in various conditions Review URL: https://chromiumcodereview.appspot.com/9113023 TBR=vrk@google.com Review URL: https://chromiumcodereview.appspot.com/9269027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118590 0039d316-1c4b-4281-b951-d872f2087c98
* Fire canplaythrough as soon as download defers to fix autoplayvrk@google.com2012-01-204-109/+169
| | | | | | | | | | | | | | Reenables delayed firing of canplaythrough for media elements, and fixes the bug that had been introduced where a video with autoplay=true sometimes never starts. With this change, a video with autoplay=true should always (though not necessarily immediately) start playback on its own. BUG=106480,73609 TEST=media_unitests, manually checking video files in various conditions Review URL: https://chromiumcodereview.appspot.com/9113023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118546 0039d316-1c4b-4281-b951-d872f2087c98
* Replace DataSourceFactory with explicitly initialized DataSources.scherkus@chromium.org2012-01-197-396/+6
| | | | | | | | | BUG=107324 TEST=layout tests Review URL: https://chromiumcodereview.appspot.com/9243016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118338 0039d316-1c4b-4281-b951-d872f2087c98