Граф коммитов

62 Коммитов

Автор SHA1 Сообщение Дата
JW Wang 80c9f230f3 Bug 1359715 - let functions in MediaData.h take TimeUnit instead of int64_t. r=kaku
We want to replace the use of int64_t for microseconds by TimeUnit
whenever possible since int64_t is ambiguous which could be microseconds
or milliseconds.

MozReview-Commit-ID: LRz9d4yKBYJ

--HG--
extra : rebase_source : 1f73f1f338142b3183491d04726821a881ccabbe
extra : intermediate-source : 88e167b7b06303d10d92cd5317502f405d1c553e
extra : source : 98deb30ec93d395f9951f5fc488170ae35e29675
2017-04-24 17:33:05 +08:00
JW Wang 302d82c85a Bug 1356530 - Change the type of MediaData::mTime to TimeUnit since int64_t is ambiguous. r=kaku
MozReview-Commit-ID: 4bVeqIuWO2O

--HG--
extra : rebase_source : d504ac15a6dc59ad42f3ab80faf23f629d74315f
extra : intermediate-source : 6e52995b6c8146451d98dffc62f6907755dc856e
extra : source : 82d2649cdafb5a6389f6858c23578811933580c9
2017-04-14 17:13:36 +08:00
JW Wang 6359124d70 Bug 1355756. P3 - let CreateAndCopyData() and its friends take TimeUnit for duration. r=gerald
MozReview-Commit-ID: ES0on9VCuu3

--HG--
extra : rebase_source : 8d3e80ec2e1923587b5865516a16bfff9009397d
extra : intermediate-source : 3e59c61b1ccef78e3e8fe52791d7104aade7930c
extra : source : 46fd639ea6a2219bbed70f6555a2acf03ec01a7a
2017-04-12 17:46:09 +08:00
JW Wang 464497b945 Bug 1355756. P1 - change the type of MediaData::mDuration to TimeUnit. r=gerald
MozReview-Commit-ID: 3d4bUYtSuMI

--HG--
extra : rebase_source : 94c821b6d381421035e6a12cbe038436055c5822
extra : intermediate-source : 9a06beffc736486f47b9cf05e7f482e726d53068
extra : source : fdbdcd5c1474f04dc1dbde66fcf3a9ecec953053
2017-04-12 17:27:34 +08:00
Kaku Kuo b09416d50a Bug 1348237 part 2 - move declaration of BlankDecoderModule into a header file; r=jwwang
So that we can write gtests easily at next patch.

MozReview-Commit-ID: 8ZWVYO1hDOW

--HG--
extra : rebase_source : 8c3523b06fe284376d59914ecfa3791a91930fc2
2017-03-17 16:53:21 +08:00
Kaku Kuo c819daf588 Bug 1348237 part 1 - prevent overflow in BlankVideoDataCreater; r=jwwang
MozReview-Commit-ID: D5BZIfpZjD3

--HG--
extra : rebase_source : 263394e6057415551e9eb36bc3c74daa33a93c30
2017-03-17 16:20:08 +08:00
Kaku Kuo 642536ba3b Bug 1345179 - use MakeUniqueFallible() in BlankVideoDataCreator; r=jwwang
If OOM happends, just return null and the DummyMediaDataDecoder will reject the DecodePromise with NS_ERROR_OUT_OF_MEMORY.

MozReview-Commit-ID: H6sTyoQWZk5

--HG--
extra : rebase_source : 5046a68978b817db8f1191e1f56e80ec5848899c
2017-03-16 12:09:23 +08:00
Kaku Kuo 09feb98f41 Bug 1346120 part 5 - Revert the blank decoder to create green frames; r=jwwang
The blank decoder used to create green frames.
Bug 1274626 patch 2 modifies its behavior to return black frames.
The original implementation is better in memory usage, so we revert it.

MozReview-Commit-ID: Lue63Rsoy3G

--HG--
extra : rebase_source : ba6a1bb74a2b5d61b245c114e4dd5cf32dc29b89
extra : intermediate-source : fcb4f38cf4d4ee2709a3d0d4e2945eef9dc6cab0
extra : source : e920b71a11ebf410f4a1c99708911be98f68586c
2017-03-09 17:26:42 +08:00
Kaku Kuo be902c66f8 Bug 1346120 part 1 - Extract BlankMediaDataDecoder so it can be shared; r=jwwang
Change name to 'Dummy' to signify it's base for decoders that don't decode.
And we will implement a new NullDecoderModule in the next patch which will utilize the DummyMediaDataDecoder.
MozReview-Commit-ID: LPsczoztgx3

--HG--
extra : rebase_source : 413345139ba060065217cfd7718665091f8f6166
extra : intermediate-source : 12d022e15b7a3a91867293fd2e71510fa084ff02
extra : source : dec60f61cc8809ebe6dd65cb16a325f2272b3ce2
2017-03-09 15:33:53 +08:00
Iris Hsiao 7f4987cc26 Backed out 6 changesets (bug 1346120) for autophone Mdm tests failure in test_background_video_drawimage_with_suspended_video.html
Backed out changeset a30c73fc8d69 (bug 1346120)
Backed out changeset f16556658fd9 (bug 1346120)
Backed out changeset 98d212462786 (bug 1346120)
Backed out changeset ba579adbed21 (bug 1346120)
Backed out changeset c0758b9bf7b5 (bug 1346120)
Backed out changeset 94a483ef784e (bug 1346120)
2017-03-13 16:53:14 +08:00
Kaku Kuo 39b0f26bdf Bug 1346120 part 5 - Revert the blank decoder to create green frames; r=jwwang
The blank decoder used to create green frames.
Bug 1274626 patch 2 modifies its behavior to return black frames.
The original implementation is better in memory usage, so we revert it.

MozReview-Commit-ID: Lue63Rsoy3G

--HG--
extra : rebase_source : 87ba4a2cea29f3fcb90c84e5b844d35b62799995
extra : source : e920b71a11ebf410f4a1c99708911be98f68586c
2017-03-09 17:26:42 +08:00
Kaku Kuo 7e28a76709 Bug 1346120 part 1 - Extract BlankMediaDataDecoder so it can be shared; r=jwwang
Change name to 'Dummy' to signify it's base for decoders that don't decode.
And we will implement a new NullDecoderModule in the next patch which will utilize the DummyMediaDataDecoder.
MozReview-Commit-ID: LPsczoztgx3

--HG--
extra : rebase_source : b8c3c565709f998eb40a72b6c8831d7b4f3bd142
extra : source : dec60f61cc8809ebe6dd65cb16a325f2272b3ce2
2017-03-09 15:33:53 +08:00
Chris Pearce 5a53afdba0 Bug 1344591 - Ensure BlankVideoCreate doesn't round down Cb and Cr strides. r=gerald
MozReview-Commit-ID: Jjvzo7WfrFE

--HG--
extra : rebase_source : d9e7984a8894e3ac9fd6a697a01b035bf0db408d
2017-03-06 13:52:45 +13:00
Jean-Yves Avenard 572d9a0a80 Bug 1339748: P2. Let the MediaDataDecoder tells the format it wants. r=cpearce
MozReview-Commit-ID: 22GEUnwEacd

--HG--
extra : rebase_source : 019627d3ff0ef0430bcaf83a4098ffd62fc53b05
2017-02-17 22:19:55 +01:00
Sebastian Hengst 955ce77a9f Backed out changeset f508a675e8dc (bug 1339748) 2017-02-18 17:36:21 +01:00
Jean-Yves Avenard 1aee5fb0ac Bug 1339748: P2. Let the MediaDataDecoder tells the format it wants. r=cpearce
MozReview-Commit-ID: 22GEUnwEacd

--HG--
extra : rebase_source : ce57fbd3028333485368267955b2645057f54805
2017-02-17 22:19:55 +01:00
Jean-Yves Avenard b43fb544d5 Bug 1334061: P1. Fix headers and coding style. r=gerald
MozReview-Commit-ID: D6ubdaBN0PJ

--HG--
extra : rebase_source : c27f1e5ec4370c1d258aab5bfde4598be9443858
2017-02-15 19:09:29 +01:00
Jean-Yves Avenard 73fd84bc5d Bug 1319987: P5. Promisify MediaDataDecoder. r=cpearce,gerald,mattwoodrow,snorp
This is a big change, and unfortunately impossible to break down with independently functional commits.

There are four main changes being applied here:

* Code cleanup, including making all MediaDataDecoder related code mozilla coding style compliant
* Make MediaDataDecoder use MozPromise
* Making Flush and Shutdown processes fully asynchronous
* Fixing few data races encountered across the code, in particular in the Android PDM

MozReview-Commit-ID: DpiZucGofJT

--HG--
extra : rebase_source : 80bd6c6f9726d536b6f306c40d9af6df27333be9
2017-01-26 13:56:46 +01:00
Jean-Yves Avenard 83619b5bc0 Bug 1303673: P2. Change error code to OOM. r=cpearce
Only time this error can occur is if we failed to allocate memory.

MozReview-Commit-ID: A37SQnraC54

--HG--
extra : rebase_source : b05dcdaf1c91d2f94255cd870872ec80e23c81c7
2016-09-20 15:51:54 +10:00
Jean-Yves Avenard ed9868472d Bug 1301059: Do not use H264Converter when video decode is suspended. r=jya
MozReview-Commit-ID: FWvn3Xkalsl

--HG--
extra : rebase_source : 065979264f1dbf99659757e7edec5aaaf5d98e24
2016-09-07 23:59:59 +10:00
Jean-Yves Avenard f4efa8be06 Bug 1299072: P4. Return extended failure details to reader. r=gerald
We provide even further details for the GMP decoder. Other decoders to follow.

MozReview-Commit-ID: 7NxJPec8xWv

--HG--
extra : rebase_source : f44120983070e5c107ecd5cafc762da90aab44bf
2016-09-10 09:56:53 +10:00
Matt Woodrow 99bf9b18df Bug 1301294 - Remove unnecessary nsresult return value from MediaDataDecoder interface. r=jya 2016-09-09 15:50:37 +12:00
Jean-Yves Avenard 9b83d16355 Bug 1297265: P5. Rework Blank Decoder use of InputExhausted. r=kamidphish
MozReview-Commit-ID: KEfWo1cdRkG

--HG--
extra : rebase_source : fc8c7b9cfb56c3c3cc1dcd56217dc64623c4a8ee
2016-09-01 19:39:28 +10:00
Phil Ringnalda 9f470c98e5 Backed out 11 changesets (bug 1297265) for gtest timeouts during MediaDataDecoder.H264
Backed out changeset 04d9b7160ac9 (bug 1297265)
Backed out changeset c7bffd1ba7fd (bug 1297265)
Backed out changeset ad1915ff688b (bug 1297265)
Backed out changeset 67a97304d44d (bug 1297265)
Backed out changeset e6b9e6184457 (bug 1297265)
Backed out changeset 30636ac0790f (bug 1297265)
Backed out changeset cc70d3a139bc (bug 1297265)
Backed out changeset 345a577c92a1 (bug 1297265)
Backed out changeset ec1f3ac8751c (bug 1297265)
Backed out changeset da9117375d2e (bug 1297265)
Backed out changeset dd4c7aafcc3d (bug 1297265)
2016-08-31 19:49:28 -07:00
Jean-Yves Avenard 3052030d0e Bug 1297265: P5. Rework Blank Decoder use of InputExhausted. r=kamidphish
MozReview-Commit-ID: KEfWo1cdRkG

--HG--
extra : rebase_source : 46adb7b4d81370ad4217a48e6855afcbfe71c2d6
2016-08-30 15:20:40 +10:00
James Cheng 21f18593ca Bug 1295920 - Replace enum with enum class in PlatformDecoderModule.h. r=jya
MozReview-Commit-ID: lDjsTI82pV

--HG--
extra : rebase_source : 9ec7b89e3af8fe0e50ea4bb48d464367e49c86c4
2016-08-17 17:24:13 +08:00
Matt Woodrow f323872778 Bug 1292032 - Clean up VideoData static constructor methods. r=jya
--HG--
extra : rebase_source : e025c9a15ad00e970f9027f72c78b5d6effbc301
2016-08-04 15:31:52 +12:00
Kaku Kuo 3ea8ae9a44 Bug 1274626 part 3 - make the blank video decoder return samples in PTS order; r=jya
MozReview-Commit-ID: EULu34WIcw0

--HG--
rename : dom/media/platforms/apple/ReorderQueue.h => dom/media/platforms/ReorderQueue.h
extra : transplant_source : %05%DF%05%26%B4B%CF%CEv_%A7%3C9%EDo%1B%C6%B0%1Eh
2016-08-03 15:22:49 +08:00
Kaku Kuo 99c0ebc056 Bug 1274626 part 2 - make the blank video data creator return a white image; r=jya
MozReview-Commit-ID: By8h71EsXrg

--HG--
extra : transplant_source : f%96%EEAu%7D%E6%28o%C5%15%3E%1B%A0%D7%9AtTI%AF
2016-07-28 16:16:56 +08:00
Carsten "Tomcat" Book 1ec9279c2a Backed out changeset a722438c2be6 (bug 1274626) 2016-08-02 17:47:31 +02:00
Carsten "Tomcat" Book 2bcc300cca Backed out changeset 12e3777de139 (bug 1274626)
--HG--
rename : dom/media/platforms/ReorderQueue.h => dom/media/platforms/apple/ReorderQueue.h
2016-08-02 17:47:29 +02:00
Kaku Kuo d22560cfe6 Bug 1274626 - Part 3 - make the blank video decoder return samples in PTS order; r=jya
MozReview-Commit-ID: EULu34WIcw0

--HG--
rename : dom/media/platforms/apple/ReorderQueue.h => dom/media/platforms/ReorderQueue.h
extra : transplant_source : %3F%DF%9F%E7%C8%AC%9F%3B%FB%94%8C%09%0A%16%D8%9F%0D%1F%9F%3E
2016-08-01 19:04:30 +08:00
Kaku Kuo 06403b2aa8 Bug 1274626 - Part 2 - make the blank video data creator return a white image; r=jya
MozReview-Commit-ID: By8h71EsXrg

--HG--
extra : transplant_source : Q%19%FA%5EK%9A%C6D%04%F6%D841%0EQ%01gA%9F%97
2016-07-28 16:16:56 +08:00
Dan Glastonbury 1b2a65cfc3 Bug 1281632 - P1: Extract creation parameters and pass via struct. r=gerald
Extract all the parameters passed to CreateAudioDecoder/CreateVideoDecoder and
place them into a structure that is passed down to the creation of the actual
decoder, where the relevant parameters can be extracted.

This makes it easier to add more arguments to the Create*Decoder calls in future.

MozReview-Commit-ID: 9LZlcfRVz6A

--HG--
extra : rebase_source : ce3f0c7d0784b96267728697ff5d535ccb8ee7a6
2016-06-28 17:56:55 +12:00
Jonathan Watt b15368cfcb Bug 1279451 - Remove a lot of unnecessary includes of nsAutoPtr.h. rs=sparky 2016-06-07 21:10:18 +01:00
Alfredo Yang 68adb6b579 Bug 1068151 - keep decoding a corrupted video. r=jya 2016-05-30 18:24:00 +02:00
JW Wang 8b980a3cbc Bug 1274216 - remove use of FlushableTaskQueue from PlatformDecoderModule. r=jya.
MozReview-Commit-ID: E3DG84yKRmw

--HG--
extra : rebase_source : 2636b7d1ef5cc544f70b3912d4d6bd30f25424df
2016-05-19 17:50:31 +08:00
JW Wang 13fa174ec0 Bug 1274199 - remove use of FlushableTaskQueue. r=cpearce.
MozReview-Commit-ID: J9BHEuF6CPJ
2016-05-19 17:04:18 +08:00
Kyle Huey c73656947b Bug 1265927: Move nsRunnable to mozilla::Runnable, CancelableRunnable to mozilla::CancelableRunnable. r=froydnj 2016-04-25 17:23:21 -07:00
Gerald Squelart ecfb205472 Bug 1248507 - p1. Pass DecoderDoctorDiagnostics to PDMs&more - r=jya
Pass declared-but-yet-undefined DecoderDoctorDiagnostics pointer to various
routines that contribute to deciding if a media format can be played, and
those that create decoders.

Points where a DecoderDoctorDiagnostics can be injected are currently marked
with "/* DecoderDoctorDiagnostics* */ nullptr", and some will be used in
following patches.

MozReview-Commit-ID: 7u37bvY4CpW
2016-04-19 17:36:19 +10:00
Jean-Yves Avenard 6409e5ed1a Bug 1248861: P3. Use AlignedAudioBuffer object with AudioData. r=cpearce
MozReview-Commit-ID: 7HiF4eHlRwB

--HG--
extra : rebase_source : e7fd44ced280ccc359f61b7e5668e5481bb7ecb9
2016-04-03 23:09:45 +10:00
Jean-Yves Avenard 4fc8dfaa3d Bug 1241677: P1. Add MediaDataDecoder::GetDescriptionName() method. r=cpearce 2016-01-25 10:33:39 +11:00
Gerald Squelart a21b53a078 Bug 1229965 - Use MakeUniqueFallible in blank decoder - r=jya 2015-12-03 20:10:00 +01:00
Nathan Froyd ffeb7c7fe3 Bug 1229963 - use UniquePtr<T[]> instead of nsAutoArrayPtr<T> in dom/media/; r=cpearce 2015-12-02 18:07:59 -05:00
Gerald Squelart 83be56e479 Bug 1181718 - Fallible allocation of blank audio data - r=jya
This is mostly to guard against allocating crazy amounts of memory due to
invalid data -- in this case a sample with an excessive number of frames.
2015-11-26 18:01:00 +01:00
Eugen Sawin 81ff3f75e8 Bug 1221991 - [1.3] Make SupportsMimeType a const function. r=jya 2015-11-17 20:50:28 +01:00
Nathan Froyd 1f0804852a Bug 1220491 - clarify ownership relationships for creators of AudioData; r=gerald
The way we pass in AudioDataValue arrays into AudioData is non-uniform:
sometimes we have nsAutoArrayPtrs, sometimes we don't, and it's not
immediately obvious from the function signature of the constructor that
we're actually taking ownership of this array.  Let's fix that by using
UniquePtr<AudioDataValue[]> smart pointers to hold the data prior to
creating AudioData values, and for passing in to AudioData's
constructor.  Using standard-er C++ things instead of our homegrown ones
is a good thing.
2015-11-01 17:34:26 -05:00
Nathan Froyd 01583602a9 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi

--HG--
rename : mfbt/nsRefPtr.h => mfbt/RefPtr.h
2015-10-18 01:24:48 -04:00
Nathan Froyd 583afa0965 Bug 1207245 - part 3 - switch all uses of mozilla::RefPtr<T> to nsRefPtr<T>; r=ehsan
This commit was generated using the following script, executed at the
top level of a typical source code checkout.

 # Don't modify select files in mfbt/ because it's not worth trying to
 # tease out the dependencies currently.
 #
 # Don't modify anything in media/gmp-clearkey/0.1/ because those files
 # use their own RefPtr, defined in their own RefCounted.h.
find . -name '*.cpp' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    grep -v 'mfbt/RefPtr.h' | \
    grep -v 'mfbt/nsRefPtr.h' | \
    grep -v 'mfbt/RefCounted.h' | \
    grep -v 'media/gmp-clearkey/0.1/' | \
    xargs perl -p -i -e '
 s/mozilla::RefPtr/nsRefPtr/g; # handle declarations in headers
 s/\bRefPtr</nsRefPtr</g; # handle local variables in functions
 s#mozilla/RefPtr.h#mozilla/nsRefPtr.h#; # handle #includes
 s#mfbt/RefPtr.h#mfbt/nsRefPtr.h#;       # handle strange #includes
'

 # |using mozilla::RefPtr;| is OK; |using nsRefPtr;| is invalid syntax.
find . -name '*.cpp' -o -name '*.mm' | xargs sed -i -e '/using nsRefPtr/d'

 # RefPtr.h used |byRef| for dealing with COM-style outparams.
 # nsRefPtr.h uses |getter_AddRefs|.
 # Fixup that mismatch.
find . -name '*.cpp' -o -name '*.h'| \
    xargs perl -p -i -e 's/byRef/getter_AddRefs/g'
2015-10-18 00:40:10 -04:00
Jean-Yves Avenard 9e830ea930 Bug 1206977: P4. Add AgnosticDecoderModule object. r=cpearce
This removes the need for PDMFactory to know anything about decoders.
2015-10-08 00:34:43 +11:00