Commit Graph

30 Commits

Author SHA1 Message Date
Edwin Flores
372079241f Bug 941298 - FFmpeg headers for FFmpeg PlatformDecoderModule r=doublec
While FFmpeg function signatures tend not to change between versions of FFmpeg,
class layouts can change dramatically. We include libavcodec, libavformat,
and libavutil headers here so that we don't accidentally build against the wrong
binary interface.
2014-03-21 19:35:14 +13:00
Edwin Flores
4125ba2622 Bug 941298 - Fix errors in content/media/fmp4 on Linux with clang and --enable-warnings-as-errors r=cpearce 2014-03-21 19:35:14 +13:00
Edwin Flores
53b9c2c9b3 Bug 941298 - Build changes for FFmpeg PlatformDecoderModule r=gps 2014-03-21 19:35:14 +13:00
Ehsan Akhgari
83afc1afae Bug 935778 - Part 0.4: Spray even more MOZ_DECLARE_REFCOUNTED_TYPENAME across the tree 2014-02-21 09:11:33 -05:00
Ms2ger
176399514a Bug 952033 - Part c: Use IntSize and IntRect in VideoData; r=roc 2014-02-09 09:04:38 +01:00
Jacek Caban
1530fe38f2 Bug 962385 - Minor GCC compilation fix. 2014-02-07 12:51:34 +01:00
Chris Pearce
423a5bf288 Bug 962385 - Make WMF PlatformDecoderModule conform to new async interface. r=padenot
--HG--
rename : content/media/fmp4/wmf/WMFAudioDecoder.cpp => content/media/fmp4/wmf/WMFAudioOutputSource.cpp
rename : content/media/fmp4/wmf/WMFAudioDecoder.h => content/media/fmp4/wmf/WMFAudioOutputSource.h
rename : content/media/fmp4/wmf/WMFVideoDecoder.cpp => content/media/fmp4/wmf/WMFVideoOutputSource.cpp
rename : content/media/fmp4/wmf/WMFVideoDecoder.h => content/media/fmp4/wmf/WMFVideoOutputSource.h
2014-02-05 14:29:31 +13:00
Chris Pearce
43df7e9854 Bug 962385 - Update PlatformDecoderModule interface to run asynchronously. r=kinetik 2014-02-05 14:29:28 +13:00
Ben Kelly
1f1ea86463 Bug 960873: Part 1: Refactor MediaDecoderReader.h into separate headers. r=cpearce 2014-02-03 20:49:21 -05:00
Benoit Jacob
15ef84b8b5 Bug 959448 - Convert most of LayersTypes.h to typed enums - r=nrc
find content/media dom/ipc widget/ gfx/tests gfx/ipc/ gfx/layers/ layout/ -type f | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)LAYERS_\(NONE\|BASIC\|OPENGL\|D3D9\|D3D10\|D3D11\|CLIENT\|LAST\)\($\|[^A-Za-z0-9_]\)/\1LayersBackend::LAYERS_\2\3/g'

find widget gfx/layers/ layout/ -type f | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)BUFFER_\(NONE\)\($\|[^A-Za-z0-9_]\)/\1BufferMode::BUFFER_\2\3/g'

find widget gfx/layers/ layout/ -type f | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)BUFFER_\(BUFFERED\)\($\|[^A-Za-z0-9_]\)/\1BufferMode::\2\3/g'

find gfx/layers/ layout/ -type f | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)CLIP_\(DRAW\|DRAW_SNAPPED\)\($\|[^A-Za-z0-9_]\)/\1DrawRegionClip::\2\3/g'

find gfx/layers/ layout/ -type f | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)CLIP_\(NONE\)\($\|[^A-Za-z0-9_]\)/\1DrawRegionClip::CLIP_\2\3/g'

find gfx/layers/ layout/ -type f | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)SURFACE_\(NONE\|OPAQUE\|SINGLE_CHANNEL_ALPHA\|COMPONENT_ALPHA\)\($\|[^A-Za-z0-9_]\)/\1SurfaceMode::SURFACE_\2\3/g'

find gfx/ipc/ gfx/layers/ layout/ -type f | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)SCALE_\(STRETCH\|SENTINEL\)\($\|[^A-Za-z0-9_]\)/\1ScaleMode::\2\3/g'

find gfx/ipc/ gfx/layers/ layout/ -type f | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)SCALE_\(NONE\)\($\|[^A-Za-z0-9_]\)/\1ScaleMode::SCALE_\2\3/g'
2014-01-23 13:26:41 -05:00
Chris Pearce
778de3dc48 Bug 959440 - Apply MP4Reader cleanups to WMFDecoderModule. r=padenot
Update WMFDecoderModule and friends to reflect changes to PlatformDecoderModule
interface in previous patch.
2014-01-15 16:14:15 +13:00
Chris Pearce
f6c08a2043 Bug 959440 - Various cleanups in MP4Reader. r=kinetik
Change PlatformDecoderModule::Create*Decoder() to take an
mp4_demuxer::{Audio,Video}DecoderConfig parameter, instead of enumerating all
parameters. This means the platform decoders can have more data if need be,
like the AACAudioConfig.

Change MediaDataDecoder::Input() to take an nsAutoPtr<MP4Sample>&. The sample
will be deleted by the caller (MP4Reader) if Input() returns DECODE_STATUS_OK,
but if the MediaDataDecoder wants to assume responsibility of the
lifecycle of the sample (say to enqueue it), it can forget() on the
nsAutoPtr& passed in and assume responsibility.

Call PlatformDecoderModule::Create() on the decode thread. This is a step
towards making these classes decode-thread only.

Add PlatformDecoderModule::Init(), which caches the pref's we need, since
PlatformDecoderModule::Create() is no longer called on the main thread, we can
no longer access them in there.

Add Init() method to MediaDataDecoder interface. This is so that we can call
MediaDataDecoder::Shutdown() to unblock the initialization of a decoder, if
that init needs to block.

Pass LayersBackend type to WMFVideoDecoder, so it knows whether to init DXVA.
2014-01-15 16:13:54 +13:00
Wes Kocher
d8f87242ae Backed out 2 changesets (bug 959440) on an unrelated CLOSED TREE
Backed out changeset f4fd03805620 (bug 959440)
Backed out changeset bfee2bc18e55 (bug 959440)
2014-01-14 17:37:57 -08:00
Chris Pearce
2e6efb39f8 Bug 959440 - Apply MP4Reader cleanups to WMFDecoderModule. r=padenot
Update WMFDecoderModule and friends to reflect changes to PlatformDecoderModule
interface in previous patch.
2014-01-15 13:31:12 +13:00
Chris Pearce
1ade2536ed Bug 959440 - Various cleanups in MP4Reader. r=kinetik
Change PlatformDecoderModule::Create*Decoder() to take an
mp4_demuxer::{Audio,Video}DecoderConfig parameter, instead of enumerating all
parameters. This means the platform decoders can have more data if need be,
like the AACAudioConfig.

Change MediaDataDecoder::Input() to take an nsAutoPtr<MP4Sample>&. The sample
will be deleted by the caller (MP4Reader) if Input() returns DECODE_STATUS_OK,
but if the MediaDataDecoder wants to assume responsibility of the
lifecycle of the sample (say to enqueue it), it can forget() on the
nsAutoPtr& passed in and assume responsibility.

Call PlatformDecoderModule::Create() on the decode thread. This is a step
towards making these classes decode-thread only.

Add PlatformDecoderModule::Init(), which caches the pref's we need, since
PlatformDecoderModule::Create() is no longer called on the main thread, we can
no longer access them in there.

Add Init() method to MediaDataDecoder interface. This is so that we can call
MediaDataDecoder::Shutdown() to unblock the initialization of a decoder, if
that init needs to block.

Pass LayersBackend type to WMFVideoDecoder, so it knows whether to init DXVA.
2014-01-15 13:31:12 +13:00
Birunthan Mohanathas
dfbad43639 Bug 784739 - Switch from NULL to nullptr in remaining directories; r=ehsan
--HG--
extra : rebase_source : 1ff19b2c8fd0e77fa8e822f5007a9fa3a6b6d474
2014-01-06 10:06:04 -05:00
Ehsan Akhgari
efe5b64f54 Bug 950507 - Build content/media/fmp4 in unified mode; r=roc 2013-12-15 19:00:54 -05:00
Brian Smith
7efc937c92 Back out cset bce074481220 (bug 950507) for build failure on Windows when warnings are treated as errors 2013-12-16 00:39:15 -08:00
Ehsan Akhgari
377eb7e191 Bug 950507 - Build content/media/fmp4 in unified mode; r=roc 2013-12-15 19:00:54 -05:00
Chris Pearce
32b24360e6 Bug 945085 - Improve comments in PlatformDecoderModule.h. r=kinetik
Adds comments to PlatformDecoderModule.h, and describes the call model
better. Renames CreateAudioDecoder and CreateVideoDecoder to
CreateAACDecoder and CreateH264Decoder. We may change them to accept a
codec parameter and have more general names in future when we need to
support more codecs here.
2013-12-04 13:47:12 +13:00
Jacek Caban
2647d9f552 Bug 944900 - Fix content/media/fmp4 compilation on mingw. r=cpearce
--HG--
extra : rebase_source : 3e1bd0401c7768b97dc22bddb7c76cc8ba832675
2013-12-02 12:12:35 +01:00
Chris Pearce
719365dddb Bug 943721 - Make MP4Reader restrict its codecs output to H.264 and AAC. r=kinetk
We should restrict the output of MP4Reader to H.264 and AAC so that we
don't end up invoking rogue platform decoders (if that's even possible).
This means that we won't play MP3 audio inside MP4, that's deliberate.
2013-11-28 11:12:24 +13:00
Chris Pearce
7577f98b66 Bug 944088 - Make MP4Reader::Init() assume mLayersBackendType=LAYERS_NONE if it doesn't have a decoder owner. r=kinetik
This ensures that if the MP4Reader fails to get a decoder owner, we
don't abort the media load, but instead we will assume that we don't
have an advanced layers backend, and so fallback to software decoding on
Windows.
2013-11-28 11:12:22 +13:00
Chris Pearce
59eaed0734 Bug 941857 - Only build WMFPlatofrmDecoderModule when MOZ_WMF is defined. r=kinetik
--HG--
extra : rebase_source : a9a8741540560d7591261f2a68dd68fce956e6f5
2013-11-22 10:36:02 -05:00
Masatoshi Kimura
aec068d530 Bug 925599 - Replace WinUtils::GetWindowsVersion() and GetWindowsServicePackVersion(). r=jimm 2013-11-22 12:35:42 +09:00
Masatoshi Kimura
4180d93b29 Bug 941931 - Add <algorithm> for VC12 to use std::min. r=cpearce 2013-11-22 12:35:39 +09:00
Chris Pearce
438b02a1fd Bug 886196 - Create a PlatformDecoderModule that outputs blank frames for fuzzing/testing purposes. r=kinetik 2013-11-21 10:04:33 +13:00
Chris Pearce
e02a05ef89 Bug 886196 - Implement WMF platform decoder for FMP4 demuxer. r=padenot 2013-11-21 10:04:33 +13:00
Chris Pearce
7023a5d2e8 Bug 886196 - MP4 demuxing using Chromium's MP4 demuxer. No decoding yet. r=kinetik 2013-11-21 10:04:33 +13:00
Chris Pearce
d10f357a9b Bug 886196 - Import Chromium's MSE MP4 demuxer code. r=kinetik 2013-11-21 10:04:32 +13:00