Commit Graph

45 Commits

Author SHA1 Message Date
Chris Pearce
909328d103 Bug 1055907 - Delete output sent to MP4Reader while it's flushing, prevents leaks. r=kentuckyfriedtakahe 2014-08-21 16:10:57 +12:00
Chris Pearce
4576b4e87f Bug 1055907 - Ensure HasAudio() works earlier in MP4Reader::ReadMetadata(). r=kentuckyfriedtakahe 2014-08-21 16:10:34 +12:00
Blake Wu
8f9c39edf4 Bug 1055383 Make MP4Reader::Decode not return false if output EOS is not reached. r=cpearce 2014-08-19 11:23:00 +08:00
Anthony Jones
2acb0169a4 Bug 1054153 - Fix MP4 demuxer is init vs buffered range race; r=edwin 2014-08-19 14:13:56 +12:00
Anthony Jones
09a1c22d2a Bug 1049133 - Calculate eviction offset for MP4 instead of guessing; r=kinetik,edwin 2014-08-19 14:13:55 +12:00
Jean-Yves Avenard
399b759f3e Bug 1022501 - Add MP3 support to MP4 demuxer. r=edwin
--HG--
rename : content/media/fmp4/eme/EMEAACDecoder.cpp => content/media/fmp4/eme/EMEAudioDecoder.cpp
rename : content/media/fmp4/eme/EMEAACDecoder.h => content/media/fmp4/eme/EMEAudioDecoder.h
rename : content/media/fmp4/ffmpeg/FFmpegAACDecoder.cpp => content/media/fmp4/ffmpeg/FFmpegAudioDecoder.cpp
rename : content/media/fmp4/ffmpeg/FFmpegAACDecoder.h => content/media/fmp4/ffmpeg/FFmpegAudioDecoder.h
extra : rebase_source : 964077ffa7abd11a5da586bfcdee2ee98d4bc210
2014-08-15 16:25:06 +10:00
Ryan VanderMeulen
e5df4919ce Backed out changesets b8e0173c9c47, b087e84a99f1, and 66c055120ca7 (bug 1049133) for Android and B2G bustage.
CLOSED TREE
2014-08-17 22:28:34 -04:00
Anthony Jones
18e54325c2 Bug 1049133 - Calculate accurate MP4 eviction offset; r=edwin 2014-08-18 13:02:27 +12:00
Jean-Yves Avenard
40e1f9f229 Bug 1047180 - Decode a single audio frame in order to retrieve accurate channel count and sampling rate and propagate to MP4Reader. r=cpearce 2014-08-11 15:27:00 +10:00
Anthony Jones
4c33e4d4ac Bug 1050060 - Fix 64 bit file offset in MP4 reader; r=edwin 2014-08-13 17:13:28 +12:00
Anthony Jones
fa358b339a Bug 1050060 - Fix MP4 range pinning; r=edwin 2014-08-13 17:13:28 +12:00
Anthony Jones
4f53a7c1a6 Bug 1050060 - Update index off main thread; r=edwin 2014-08-13 17:13:28 +12:00
Blake Wu
a5df92b66f Bug 941302 - Part 3: Changes for adding Gonk Decode Module. r=cpearce
From de67de8646b413bce991789b42d09f398b162b53 Mon Sep 17 00:00:00 2001
2014-08-07 18:23:45 +08:00
Chris Pearce
f7c6083ca7 Bug 1049107 - Fix build with --disable-eme. r=kentuckyfriedtakahe 2014-08-08 14:44:04 +12:00
Anthony Jones
d66cd54dfd Bug 1045909 - Fix buffer range calculation for fMP4; r=edwin 2014-08-05 18:12:48 +12:00
Wes Kocher
2cccd1da41 Backed out 2 changesets (bug 1045909, bug 1045915) for build failures
Backed out changeset 70e3d6723e8e (bug 1045909)
Backed out changeset d137dd97d955 (bug 1045915)
2014-08-04 19:18:34 -07:00
Anthony Jones
271a7fa9ac Bug 1045909 - Fix buffer range calculation for fMP4; r=edwin 2014-08-05 13:35:04 +12:00
Chris Pearce
4b33c80b1c Bug 1047824 - Call PlatformDecoderModule::Shutdown() in MP4Reader::Shutdown() on the decode task queue. r=kinetik 2014-08-03 19:28:39 +12:00
Chris Pearce
3ae2cca96e Bug 1047188 - Ensure we only call MediaDataDecoder::Drain() once, and break out of MP4Reader::Decode() when DrainComplete() is called. r=kentuckyfriedtakahe 2014-08-01 16:04:37 +12:00
Chris Pearce
482bbdf76e Bug 1044738 - Decrypt EME content in a PDM, send to a wrapped PDM for decoding. r=edwin 2014-07-30 18:53:34 +12:00
Anthony Jones
cd04f88f69 Bug 1039128 - Fix drain of video queue 2014-07-25 14:57:25 +12:00
Chris Pearce
6439d38d2a Bug 973710 - Fix compile errors for pedantic SOB compilers and WAE. r=bustage 2014-07-17 10:47:50 +12:00
Chris Pearce
73a8612a30 Bug 973710 - Drain MP4Reader's decoders on EOS. r=kinetik 2014-07-17 10:37:17 +12:00
Anthony Jones
f156664cf8 Bug 1034444 - Make MP4Reader::GetBuffered() accurate; r=edwin,cpearce 2014-06-02 17:38:04 +02:00
Michael Shuen
74142c9dea Bug 1029251 - MP4Reader::Flush should grab lock in the right order. r=kinetik 2014-06-26 08:31:00 +02:00
Eric Phan
297a9b2844 Bug 1015985 - Set decoder seekable members outside of ReadMetadata by StateMachine. r=cpearce 2014-06-23 22:08:34 +12:00
Chris Pearce
a9521e92ec Bug 1022468 - Detect EOS in MP4Stream::ReadAt(). r=kentuckyfriedtakahe 2014-06-11 10:53:41 +12:00
Anthony Jones
a5ed041766 Bug 908503: Change to stagefright demuxer; r=cpearce
Bug 908503: Build config changes for libstagefright demuxer; r=glandium
Bug 908503: Remove Chrome demuxer; r=cpearce
Bug 908503: Add conversion to Annex B; r=cpearce
2014-05-22 14:42:39 +12:00
Wes Kocher
4104982fc3 Backed out 4 changesets (bug 908503) for breaking the Hamachi eng dep build on an otherwise CLOSED TREE
Backed out changeset 476cd5c9c5a9 (bug 908503)
Backed out changeset add95b3c2e7f (bug 908503)
Backed out changeset 30957caad928 (bug 908503)
Backed out changeset f6f386352d12 (bug 908503)
2014-05-12 21:18:31 -07:00
Anthony Jones
402761fa6b Bug 908503: Change to stagefright demuxer; r=cpearce 2014-05-13 14:53:54 +12:00
Anthony Jones
f9d210473c Backed out changeset 191741878690 (bug 908503) 2014-05-12 10:11:04 +12:00
Anthony Jones
64a7ee9ff9 Bug 908503: Change to stagefright demuxer; r=cpearce 2014-05-12 09:46:18 +12:00
Anthony Jones
6cf13f5f15 Bug 908503: Clean up MP4Reader; r=cpearce 2014-05-12 09:46:00 +12:00
Matt Woodrow
fabcfdbe7b Bug 904890 - Part 4: Enable hardware accelerated video decoding for OMTC+D3D9/11. r=cpearce 2014-04-07 15:17:41 +12:00
Edwin Flores
85cdddfa3e 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
Jacek Caban
81f27e5b75 Bug 962385 - Minor GCC compilation fix. 2014-02-07 12:51:34 +01:00
Chris Pearce
d68c595747 Bug 962385 - Update PlatformDecoderModule interface to run asynchronously. r=kinetik 2014-02-05 14:29:28 +13:00
Benoit Jacob
61df69f208 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
019e28e520 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
91507c568f 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
166075542c 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
Chris Pearce
30fa90ca52 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
Chris Pearce
fb40afad21 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
14c9efc438 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
b88e7b5029 Bug 886196 - MP4 demuxing using Chromium's MP4 demuxer. No decoding yet. r=kinetik 2013-11-21 10:04:33 +13:00