Commit Graph

49 Commits

Author SHA1 Message Date
Ehsan Akhgari
a3e58b5225 Bug 1061051 - Fix more bad implicit constructors in the media code; r=roc
--HG--
extra : rebase_source : c3d5f6a1cc95f4a7f123129e14a9a0c57d00ef38
2014-08-31 23:50:59 -04:00
Jean-Yves Avenard
633e79da27 Bug 1059569 - Check that GetTaskQueue() doesn't return NULL. r=cpearce 2014-08-28 11:56:32 +12:00
Chris Pearce
3659319904 Bug 1057173 - Rename MediaKeyNeededEvent to MediaEncryptedEvent. r=bz
--HG--
rename : content/media/eme/MediaKeyNeededEvent.cpp => content/media/eme/MediaEncryptedEvent.cpp
rename : content/media/eme/MediaKeyNeededEvent.h => content/media/eme/MediaEncryptedEvent.h
rename : dom/webidl/MediaKeyNeededEvent.webidl => dom/webidl/MediaEncryptedEvent.webidl
2014-08-27 20:46:56 +12:00
Chris Pearce
e097011861 Bug 1057201 - Don't dispatch to the MP4Reader's decode task queue to update buffered index, as that confuses the MediaDataDecoders. r=kentuckyfriedtakahe 2014-08-22 18:28:06 +12:00
Chris Pearce
00435a4d1c 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
1d09cc3c02 Bug 1055907 - Ensure HasAudio() works earlier in MP4Reader::ReadMetadata(). r=kentuckyfriedtakahe 2014-08-21 16:10:34 +12:00
Blake Wu
54f7448061 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
cc7b452600 Bug 1054153 - Fix MP4 demuxer is init vs buffered range race; r=edwin 2014-08-19 14:13:56 +12:00
Anthony Jones
dfffe06cbd Bug 1049133 - Calculate eviction offset for MP4 instead of guessing; r=kinetik,edwin 2014-08-19 14:13:55 +12:00
Jean-Yves Avenard
ee64078bc7 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
deaa74fb0e 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
fce84186cc Bug 1049133 - Calculate accurate MP4 eviction offset; r=edwin 2014-08-18 13:02:27 +12:00
Jean-Yves Avenard
47777a3880 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
edd099c41e Bug 1050060 - Fix 64 bit file offset in MP4 reader; r=edwin 2014-08-13 17:13:28 +12:00
Anthony Jones
981d7a97a9 Bug 1050060 - Fix MP4 range pinning; r=edwin 2014-08-13 17:13:28 +12:00
Anthony Jones
9259915554 Bug 1050060 - Update index off main thread; r=edwin 2014-08-13 17:13:28 +12:00
Blake Wu
3b455f5dfd 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
a249b98033 Bug 1049107 - Fix build with --disable-eme. r=kentuckyfriedtakahe 2014-08-08 14:44:04 +12:00
Anthony Jones
e7ff4e143d Bug 1045909 - Fix buffer range calculation for fMP4; r=edwin 2014-08-05 18:12:48 +12:00
Wes Kocher
8690584308 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
1d729bea82 Bug 1045909 - Fix buffer range calculation for fMP4; r=edwin 2014-08-05 13:35:04 +12:00
Chris Pearce
acf9e6cd5b 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
0d51998ee9 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
29bdfb87bc 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
9b31f46826 Bug 1039128 - Fix drain of video queue 2014-07-25 14:57:25 +12:00
Chris Pearce
7011a7cce8 Bug 973710 - Fix compile errors for pedantic SOB compilers and WAE. r=bustage 2014-07-17 10:47:50 +12:00
Chris Pearce
70c1ecdffe Bug 973710 - Drain MP4Reader's decoders on EOS. r=kinetik 2014-07-17 10:37:17 +12:00
Anthony Jones
86cdad1007 Bug 1034444 - Make MP4Reader::GetBuffered() accurate; r=edwin,cpearce 2014-06-02 17:38:04 +02:00
Michael Shuen
ed4e30ba93 Bug 1029251 - MP4Reader::Flush should grab lock in the right order. r=kinetik 2014-06-26 08:31:00 +02:00
Eric Phan
661c2e8d55 Bug 1015985 - Set decoder seekable members outside of ReadMetadata by StateMachine. r=cpearce 2014-06-23 22:08:34 +12:00
Chris Pearce
21926cafc3 Bug 1022468 - Detect EOS in MP4Stream::ReadAt(). r=kentuckyfriedtakahe 2014-06-11 10:53:41 +12:00
Anthony Jones
0caa8d383f 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
e45f0bc2b5 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
899dfd3b34 Bug 908503: Change to stagefright demuxer; r=cpearce 2014-05-13 14:53:54 +12:00
Anthony Jones
ec6e39e9ce Backed out changeset 191741878690 (bug 908503) 2014-05-12 10:11:04 +12:00
Anthony Jones
4e378484d7 Bug 908503: Change to stagefright demuxer; r=cpearce 2014-05-12 09:46:18 +12:00
Anthony Jones
e7f7b4de18 Bug 908503: Clean up MP4Reader; r=cpearce 2014-05-12 09:46:00 +12:00
Matt Woodrow
1decbcaebc 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
ce64f058d5 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
8de6e62cec Bug 962385 - Minor GCC compilation fix. 2014-02-07 12:51:34 +01:00
Chris Pearce
5ded7b67dd Bug 962385 - Update PlatformDecoderModule interface to run asynchronously. r=kinetik 2014-02-05 14:29:28 +13:00
Benoit Jacob
67a17b1047 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
07243be7a1 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
9d425a5f2c 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
cb82b1e057 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
14c1e2ca4c 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
7d71645558 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
e818aefeaf 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
47e87db4d3 Bug 886196 - MP4 demuxing using Chromium's MP4 demuxer. No decoding yet. r=kinetik 2013-11-21 10:04:33 +13:00