summaryrefslogtreecommitdiffstats
path: root/media/ffmpeg/ffmpeg_common.cc
Commit message (Collapse)AuthorAgeFilesLines
* Clean up histogram'd media enum max values.rileya@chromium.org2014-02-281-1/+4
| | | | | | | | | | | | | | | This adds a PRESUBMIT test to src/media/ which enforces the following when using UMA_HISTOGRAM_ENUMERATION: - The max enum value should be suffixed with 'MAX' or 'Max' (and it should be equal to the largest valid entry ever logged). - One should be added to that max value when used in the UMA_HISTOGRAM_ENUMERATION macro. To handle past misuses of UMA_HISTOGRAM_ENUMERATION for non-enums a comment of '// IGNORE_PRESUBMIT_UMA_MAX' was added to silence the presubmit check. BUG=165553 TBR=danakj Review URL: https://codereview.chromium.org/148553003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@254209 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup OPUS decoder. Remove extraneous transforms and copies.dalecurtis@chromium.org2013-12-131-2/+3
| | | | | | | | | | | | | | | | | | Various cleanups: - Fixes start trimming after seeks. - Patches FFmpegDemuxer to workaround FFmpeg pre-stripping codec delay. - Switches decoding to float on all platforms. - Decodes directly into the AudioBuffer instead of making a copy. - Switches various error logs to actually be DLOG(ERROR). - Various tiny code cleanups. - Rolls DEPS for a couple more OPUS FFmpeg fixes. BUG=104241, 166752, 168524, 315165, 328207 TEST=opus decoding still works. Review URL: https://codereview.chromium.org/100503006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240775 0039d316-1c4b-4281-b951-d872f2087c98
* Add plumbing for video pixel formats with JPEG color range.rileya@chromium.org2013-12-041-4/+4
| | | | | | | | BUG=310273 Review URL: https://codereview.chromium.org/88403004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238559 0039d316-1c4b-4281-b951-d872f2087c98
* Add alaw codec for .wav files.ihf@chromium.org2013-11-051-0/+4
| | | | | | | | | | | Also add corresponding test. (The test media is already there.) BUG=chromium:217772 TEST=Played 2 test files on Pixel. Review URL: https://codereview.chromium.org/25660014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233101 0039d316-1c4b-4281-b951-d872f2087c98
* Add UMA metrics for ffmpeg color ranges.rileya@chromium.org2013-11-051-0/+7
| | | | | | | | BUG=310272 Review URL: https://codereview.chromium.org/45053003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232875 0039d316-1c4b-4281-b951-d872f2087c98
* media: Adding Opus support in WebM for <video> tagvigneshv@chromium.org2013-11-011-2/+15
| | | | | | | | | | | | | | In earlier CLs, support for playing back Opus in WebM container was added to Media Source. This CL tries to implement the same spec so that Opus in WebM can be played back in <video> tag too. Note: This depends on an ffmpeg roll being done first (it's being worked on). This CL should not be committed until that's resolved. TEST=media_unittests Review URL: https://codereview.chromium.org/23868037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232484 0039d316-1c4b-4281-b951-d872f2087c98
* Replace VideoFrame::INVALID with UNKNOWN.rileya@chromium.org2013-11-011-1/+1
| | | | | | | | | | | INVALID was misleading: the usage has more to do with the format being unknown at the time, rather than being invalid. BUG=313827 TBR=danakj Review URL: https://codereview.chromium.org/51343005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232346 0039d316-1c4b-4281-b951-d872f2087c98
* media: Opus support for WebM in Media Sourcevigneshv@chromium.org2013-09-061-1/+3
| | | | | | | | | | | | | | | | | | Matroska's specification of Opus has been standardized here: http://wiki.xiph.org/MatroskaOpus. This CL adds support for the new Matroska elements related to Opus and enables Opus playback in WebM files through Media Source API. It also adds support for end trimming. This is a first CL in a sequence of CLs that will attempt to add various features towards fully functional working of Opus in WebM (both media source and video tag). BUG= Review URL: https://chromiumcodereview.appspot.com/23014009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@221574 0039d316-1c4b-4281-b951-d872f2087c98
* Fix up MP4 audio playback.jrummell@chromium.org2013-07-121-1/+1
| | | | | | | | | | | MP4 audio was broken as the AudioBuffer was created with the wrong format specified. This change is to use the format type as determined by FFmpeg. BUG=259425 Review URL: https://chromiumcodereview.appspot.com/18302006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@211441 0039d316-1c4b-4281-b951-d872f2087c98
* Enable partial playbackjrummell@chromium.org2013-05-091-9/+14
| | | | | | | | | | | | | 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@199244 0039d316-1c4b-4281-b951-d872f2087c98
* Remove use_system_ffmpeg-related logic from media and other mainline gyp files.phajdan.jr@chromium.org2013-05-071-8/+0
| | | | | | | | | BUG=226860 R=fischman@chromium.org Review URL: https://codereview.chromium.org/14659007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@198746 0039d316-1c4b-4281-b951-d872f2087c98
* media: use AVCodecID instead of deprecated CodecIDphajdan.jr@chromium.org2013-04-231-5/+5
| | | | | | | | BUG=none Review URL: https://codereview.chromium.org/13858004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195923 0039d316-1c4b-4281-b951-d872f2087c98
* media: Add support for playback of VP8 Alpha video streamsvigneshv@chromium.org2013-04-191-0/+10
| | | | | | | | | | 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@195339 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 194465 "media: Add support for playback for VP8 Alpha vid..."mek@chromium.org2013-04-161-10/+0
| | | | | | | | | | | | | | | | | | Broke linux compilation http://build.chromium.org/p/chromium.linux/buildstatus?builder=Linux%20Builder%20%28dbg%29&number=47451 > media: Add support for playback for VP8 Alpha video streams. > > BUG=147355 > TEST=VP8 Alpha video streams play > > Review URL: https://codereview.chromium.org/12263013 > > Patch from Vignesh Venkatasubramanian <vigneshv@chromium.org>. TBR=tomfinegan@chromium.org Review URL: https://codereview.chromium.org/13972014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194469 0039d316-1c4b-4281-b951-d872f2087c98
* media: Add support for playback for VP8 Alpha video streams.tomfinegan@chromium.org2013-04-161-0/+10
| | | | | | | | | | | BUG=147355 TEST=VP8 Alpha video streams play Review URL: https://codereview.chromium.org/12263013 Patch from Vignesh Venkatasubramanian <vigneshv@chromium.org>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@194465 0039d316-1c4b-4281-b951-d872f2087c98
* media: switch from deprecated CODEC_ID_* to AV_CODEC_ID_*phajdan.jr@chromium.org2013-04-121-42/+42
| | | | | | | | BUG=none Review URL: https://codereview.chromium.org/14053003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193985 0039d316-1c4b-4281-b951-d872f2087c98
* Support for parsing encrypted WebM streams by src.fgalligan@chromium.org2013-03-141-3/+20
| | | | | | | | | | | | | | | | | | | - Note: Only looking for comments on direction. A lot of work still needs to be done before committing. - Added support to FFmpegDemuxer to decrypt encrypted WebM streams. - Added support to FFmpegDemuxer to handle the needKey and keyAdded messages. - Added support to WebMediaPlayerImpl to handle the needKey and keyAdded messages. BUG=123426 TEST=All media_unittests pass Review URL: https://chromiumcodereview.appspot.com/10829470 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188228 0039d316-1c4b-4281-b951-d872f2087c98
* Pass more detailed audio hardware configuration information to the renderercrogers@google.com2013-03-131-26/+0
| | | | | | | | | | | | | | AudioHardwareConfig currently contains an ad-hoc mix of pieces of information about the audio input and output hardware. This CL adds more complete and symmetric information about the audio hardware as tracked in AudioHardwareConfig. The ChannelMixer is also upgraded to allow for "discrete" up and down mixing. BUG=none TEST=manual - several tests updated Review URL: https://codereview.chromium.org/12387006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187936 0039d316-1c4b-4281-b951-d872f2087c98
* Linux: add a tool and code to make use_system_ffmpeg option more compatiblephajdan.jr@chromium.org2013-02-201-0/+10
| | | | | | | | | | | | | | | | This introduces a compile-time detection of ffmpeg configuration (which codecs are available). See https://groups.google.com/a/chromium.org/d/msg/chromium-dev/fm5Oe_AC3Sc/qkbmC7txaSkJ for more context. No functional change for Google Chrome. BUG=none Review URL: https://codereview.chromium.org/12302029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@183463 0039d316-1c4b-4281-b951-d872f2087c98
* Attempt to guess channel layout if not specified.dalecurtis@chromium.org2013-02-071-28/+18
| | | | | | | | | | BUG=174502 TEST=Unit test. Review URL: https://chromiumcodereview.appspot.com/12210026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@181125 0039d316-1c4b-4281-b951-d872f2087c98
* media: Support multichannel Opus audio streams.tomfinegan@chromium.org2013-01-311-6/+35
| | | | | | | | | | | | | | | Add conversion code that supports going from a number of channels to a channel layout for Opus audio, which prevents failure of AudioDecoderConfig::IsValidConfig() for all multichannel Opus streams. Also fixes audio channel layout for 6.1 (7) channel Opus streams. BUG=172744 TEST=Opus streams with greater than 2 channels play. Review URL: https://chromiumcodereview.appspot.com/12094019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179760 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for YUVJ420P and tests for common color formats for each video ↵scherkus@chromium.org2013-01-291-0/+4
| | | | | | | | | | | | codec. I believe we still have some work to do in our color range and conversion routines, but at least this enables the color format instead of erroring out. BUG=117368 Review URL: https://codereview.chromium.org/12088012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@179300 0039d316-1c4b-4281-b951-d872f2087c98
* Add wrapper class to media for support of VP9 video, and add a command line ↵tomfinegan@chromium.org2013-01-251-3/+22
| | | | | | | | | | | | | | | | | flag to enable the support. This initial version of the wrapper provides support for decoding VP9 video in WebM container files, and is disabled by default. New flag added: --enable-vp9-playback TBR=brettw,scherkus,xhwang BUG=166094 TEST=VP9 video in WebM containers plays back in <video> elements when --enable-vp9-playback is specified on the command line. Review URL: https://chromiumcodereview.appspot.com/12045060 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178799 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 177842. This doesn't build in standalone webkit builds:thakis@chromium.org2013-01-211-22/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://bugs.webkit.org/show_bug.cgi?id=107468 It looks like the exact same problem happened when this landed the last time: https://bugs.webkit.org/show_bug.cgi?id=105813 Please make sure this issue is fixed before you reland. The CL also likely regressed binary size by 0.25MB: http://crbug.com/171143 > Add wrapper class to media for support of VP9 video, and add a command line flag to enable the support. > > This initial version of the wrapper provides support for decoding VP9 video in WebM container files, and is disabled by default. > > New flag added: --enable-vp9-playback > > TBR=brettw,scherkus,xhwang > BUG=166094 > TEST=VP9 video in WebM containers plays back in <video> elements when --enable-vp9-playback is specified on the command line. > > > Review URL: https://chromiumcodereview.appspot.com/12025030 TBR=tomfinegan@chromium.org Review URL: https://codereview.chromium.org/11953017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177953 0039d316-1c4b-4281-b951-d872f2087c98
* Add wrapper class to media for support of VP9 video, and add a command line ↵tomfinegan@chromium.org2013-01-191-3/+22
| | | | | | | | | | | | | | | | | flag to enable the support. This initial version of the wrapper provides support for decoding VP9 video in WebM container files, and is disabled by default. New flag added: --enable-vp9-playback TBR=brettw,scherkus,xhwang BUG=166094 TEST=VP9 video in WebM containers plays back in <video> elements when --enable-vp9-playback is specified on the command line. Review URL: https://chromiumcodereview.appspot.com/12025030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177842 0039d316-1c4b-4281-b951-d872f2087c98
* media: Fix Opus support, and handle bad timestamps correctly in the Opus ↵tomfinegan@chromium.org2013-01-161-2/+4
| | | | | | | | | | | | | | | | | | | | | wrapper. - Recent changes to ffmpeg_common broke support for Opus. The check fails because Opus support is not enabled in FFmpeg, which causes the FFmpeg codec context to contain an invalid sample format value. Avoid the problem by skipping a DCHECK for Opus input. - Add missing return when non-monotonically increasing timestamps are detected by the OpusAudioDecoder. This fixes a crash when attempting to seek the Ogg file referenced in crbug.com/168524. BUG=168524 TEST=Opus audio in WebM containers plays back with the flag --enable-opus-playback Review URL: https://chromiumcodereview.appspot.com/11888011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@177061 0039d316-1c4b-4281-b951-d872f2087c98
* Roll FFMpeg for M26. Fix ffmpeg float audio decoding.dalecurtis@google.com2013-01-041-40/+62
| | | | | | | | | | | | | | | | | | | | | | | FFmpeg now outputs float for some audio decoders. Unfortunately our pipeline doesn't support float between the FFmpegAudioDecoder and AudioRenderer at present. As such, we need to convert the data into an integer format first. As a byproduct of this, AMR support for ChromeOS is finally fixed and adding support for PCM float is trivial. In summary this patch adds: - A SampleFormat property to AudioDecoderConfig. - AVSampleFormat <-> SampleFormat converters in FFmpegCommon. - Fixes ChromeOS AMR playback. - Finally plumbs pcm_f32le support (enabled in FFmpeg long ago). - Add decoder support for float planar and float interleaved playback. BUG=109085, 158187, 167069 TEST=unittests, layout tests, and demos all pass under tooling without issue. Review URL: https://codereview.chromium.org/11280301 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175180 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Add wrapper class to media for support of VP9 video, and add a ↵fsamuel@chromium.org2012-12-281-31/+3
| | | | | | | | | | | | | | | | | | command line flag to enable the support." This reverts commit e17c547493001b9195e1209b9444d2aee676c826. This is preventing updating the Chromium DEPS file in the WebKit repo. See here for details on the WebKit issue: https://bugs.webkit.org/show_bug.cgi?id=105813 The original patch: https://codereview.chromium.org/11644078 TBR=tomfinegan@chromium.org Review URL: https://chromiumcodereview.appspot.com/11700002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174739 0039d316-1c4b-4281-b951-d872f2087c98
* Add wrapper class to media for support of VP9 video, and add a command line ↵tomfinegan@chromium.org2012-12-221-3/+31
| | | | | | | | | | | | | | | | flag to enable the support. This initial version of the wrapper provides support for decoding VP9 video in WebM container files, and is disabled by default. New flag added: --enable-vp9-playback TBR=brettw,scherkus,xhwang BUG=166094 TEST=VP9 video in WebM containers plays back in <video> elements when --enable-vp9-playback is specified on the command line. Review URL: https://codereview.chromium.org/11644078 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174488 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 174311kinaba@chromium.org2012-12-211-31/+3
| | | | | | | | | | | | | | | | | | | | | | | Windows build is failing around libvpx after this patch: http://build.chromium.org/p/chromium/builders/Win/builds/14332 [1220/203018 : error : decomposer.cc(2186)] Block collision for function at 46813200(1536) with ..\..\build\Release\obj\global_intermediate\third_party\libvpx\vp9_subpixel_mmx.obj > Add wrapper class to media for support of VP9 video, and add a command line flag to enable the support. > > This initial version of the wrapper provides support for decoding VP9 video in WebM container files, and is disabled by default. > > New flag added: --enable-vp9-playback > > BUG=166094 > TEST=VP9 video in WebM containers plays back in <video> elements when --enable-vp9-playback is specified on the command line. > > > Review URL: https://chromiumcodereview.appspot.com/11468018 TBR=tomfinegan@chromium.org Review URL: https://codereview.chromium.org/11578046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174346 0039d316-1c4b-4281-b951-d872f2087c98
* Add wrapper class to media for support of VP9 video, and add a command line ↵tomfinegan@chromium.org2012-12-211-3/+31
| | | | | | | | | | | | | | | | flag to enable the support. This initial version of the wrapper provides support for decoding VP9 video in WebM container files, and is disabled by default. New flag added: --enable-vp9-playback BUG=166094 TEST=VP9 video in WebM containers plays back in <video> elements when --enable-vp9-playback is specified on the command line. Review URL: https://chromiumcodereview.appspot.com/11468018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174311 0039d316-1c4b-4281-b951-d872f2087c98
* Add wrapper class to media for support of Opus audio, and add a command line ↵tomfinegan@chromium.org2012-12-181-1/+15
| | | | | | | | | | | | | | | flag to enable the support. This initial version of the wrapper provides support for decoding Opus audio in WebM container files, and is disabled by default. New flag added: --enable-opus-playback BUG=166094 TEST=Opus audio in WebM containers plays back in <video> elements when --enable-opus-playback is specified on the command line. Review URL: https://codereview.chromium.org/11416367 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@173663 0039d316-1c4b-4281-b951-d872f2087c98
* Replace av_malloc with AlignedAlloc for memory allocation in VideoFrame.xhwang@chromium.org2012-12-081-6/+20
| | | | | | | | | | | | See also r157836. BUG=150920 TEST=media_unittests Review URL: https://chromiumcodereview.appspot.com/11308310 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171976 0039d316-1c4b-4281-b951-d872f2087c98
* Switch to AVIO instead of a custom FFmpeg URLProtocol handler.dalecurtis@chromium.org2012-11-011-26/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FFmpegGlue is a filthy den of sin: - Singleton. - Unchecked initialization. - Mixed signed, unsigned usage. - Requires custom FFmpeg patches. - Hacks IO through http://0xDEADBEEF Switching to AVIO will absolve FFmpegGlue of its sins and has the added bonus of allowing us to tweak the buffer sizes used for read requests over the wire. AVIO works through a special AVIOContext created through avio_alloc_context() which is attached to the AVFormatContext used for demuxing. The AVIO context is initialized with read and seek methods identical to the existing URLProtocol structures. During avformat_open_input() we tell FFmpeg to use our AVIO context by passing NULL in for the filename parameter. FFmpeg will now redirect all reads and seeks through our AVIO context. The new FFmpegGlue also handles all destruction cases which can occur after an OpenContext(), allowing us to unify the slightly disparate shutdown paths used by FFmpegDemuxer and AudioFileReader. BUG=118986, 146529 TEST=unit tests under tooling. layout tests. manual playback pass. Review URL: https://chromiumcodereview.appspot.com/10912080 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165502 0039d316-1c4b-4281-b951-d872f2087c98
* Sync new FFmpeg channel layouts.dalecurtis@google.com2012-10-261-1/+25
| | | | | | | | | | | | Updates our enum to match the latest FFmpeg one. Also fixes an issue with the downmix for left/right of center channels. BUG=132572 TEST=file plays with correct channel order. Review URL: https://codereview.chromium.org/11273057 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@164442 0039d316-1c4b-4281-b951-d872f2087c98
* Support encrypted audio stream in demuxer.xhwang@chromium.org2012-10-121-1/+2
| | | | | | | | | | BUG=123421 TEST=updated media_unittest Review URL: https://chromiumcodereview.appspot.com/11088047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@161465 0039d316-1c4b-4281-b951-d872f2087c98
* Replace av_malloc with AlignedAlloc for memory allocation in DecoderBuffer.xhwang@chromium.org2012-09-201-0/+21
| | | | | | | | | | BUG=150920,145551 TEST=media_unittests Review URL: https://chromiumcodereview.appspot.com/10949029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157836 0039d316-1c4b-4281-b951-d872f2087c98
* Add is_encrypted() in VideoDecoderConfig.xhwang@chromium.org2012-09-181-2/+2
| | | | | | | | | | | This is needed so that decoders can check if the video stream is encrypted or not and decide if it can support decrypting and/or decodeing the stream. BUG=141784 TEST=media_unittest, encrypted media demo. Review URL: https://chromiumcodereview.appspot.com/10910293 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157324 0039d316-1c4b-4281-b951-d872f2087c98
* FFmpeg: Add gsm_ms and pcm big endian codecs.ihf@chromium.org2012-08-061-0/+12
| | | | | | | | | | | Also update corresponding tests. BUG=chromium-os:31955 TEST=Played on linux CrOS build. Review URL: https://chromiumcodereview.appspot.com/10452004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@150154 0039d316-1c4b-4281-b951-d872f2087c98
* Remove VideoDecoderConfig::aspect_ratio_xxx methods.acolwell@chromium.org2012-08-021-3/+4
| | | | | | | | BUG=122913 Review URL: https://chromiumcodereview.appspot.com/10830110 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149540 0039d316-1c4b-4281-b951-d872f2087c98
* Remove VideoDecoderConfig.frame_rate_xxx() and VideoFrame::Get/SetDuration().acolwell@chromium.org2012-07-311-10/+0
| | | | | | | | | BUG=139455 Review URL: https://chromiumcodereview.appspot.com/10832087 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@149274 0039d316-1c4b-4281-b951-d872f2087c98
* Test variable against constant instead of simply testing constant.fischman@chromium.org2012-07-251-1/+1
| | | | | | | | | TBR=scherkus@chromium.org Review URL: https://chromiumcodereview.appspot.com/10825014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@148392 0039d316-1c4b-4281-b951-d872f2087c98
* Add support for VP8 decode to OmxVideoDecodeAccelerator, for HW that ↵fischman@chromium.org2012-07-231-2/+5
| | | | | | | | | | supports it. BUG=136962 Review URL: https://chromiumcodereview.appspot.com/10808058 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@147944 0039d316-1c4b-4281-b951-d872f2087c98
* Roll FFmpeg for M21!dalecurtis@google.com2012-06-051-2/+2
| | | | | | | | | | | | | | | | - Adds 24bit wave audio support (pcm_s24le). - AMD 3dNow! instruction support. - Adds several FFmpeg parsers for better packet parsing. - Integrates audio hashing into ffmpeg_regression_tests. - Fixes null audio hashing encountered by some regression tests. - Add a host of new gaming tests from EA. BUG=80708, 131071 TEST=unit tests + asan/valgrind, webaudio+qa pass, layout tests. Review URL: https://chromiumcodereview.appspot.com/10511020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140550 0039d316-1c4b-4281-b951-d872f2087c98
* Ignore unsupported audio/video streams.dalecurtis@chromium.org2012-05-111-4/+2
| | | | | | | | | | | | | | | Now that FFmpeg passes in ID3 tag data (video, pictures) as an additional stream, we need to skip if it's unsupported, otherwise we'll bail out at the decoding stage. Allows partial playback of unsupported content. BUG=127692 TEST=mp3 in bug, layout tests, unittests. Review URL: https://chromiumcodereview.appspot.com/10382117 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136490 0039d316-1c4b-4281-b951-d872f2087c98
* Make AudioParameters a class instead of a structvrk@google.com2012-03-211-8/+8
| | | | | | | | | | | | | 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
* Second attempt to land ffmpeg roll.dalecurtis@google.com2012-03-011-19/+19
| | | | | | | | | | | | | | | | | 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
* Revert 123123 (probably caused a big perf regression -- http://crbug.com/115479,thakis@chromium.org2012-02-231-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-221-19/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Replace several NOTREACHED(), NOTIMPLEMENTED() with DVLOG(1), all values are ↵dalecurtis@chromium.org2012-02-211-18/+17
| | | | | | | | | | | | | | 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