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

41 Коммитов

Автор SHA1 Сообщение Дата
Ehsan Akhgari e5e885ae31 Bug 1521000 - Part 2: Adjust our clang-format rules to include spaces after the hash for nested preprocessor directives r=sylvestre
# ignore-this-changeset

--HG--
extra : amend_source : 7221c8d15a765df71171099468e7c7faa648f37c
extra : histedit_source : a0cce6015636202bff09e35a13f72e03257a7695
2019-01-18 10:16:18 +01:00
Sylvestre Ledru 804b8b8883 Bug 1204606 - Reformat of dom/media r=jya
# skip-blame

Differential Revision: https://phabricator.services.mozilla.com/D12251

--HG--
extra : moz-landing-system : lando
2018-11-19 13:25:37 +00:00
Jean-Yves Avenard 06a5c6246d Bug 1482059 - P1. Implement VP8/VP9 frame header parser. r=TD-Linux
And use it to determine if a frame is a keyframe, its size and display size.

Differential Revision: https://phabricator.services.mozilla.com/D11588

--HG--
extra : moz-landing-system : lando
2018-11-14 09:33:10 +00:00
Jean-Yves Avenard 0fcc0bd516 Bug 1496529 - P10. Add to libvpx decoder low latency mode. r=bryce
Depends on D7909

Differential Revision: https://phabricator.services.mozilla.com/D7917

--HG--
extra : moz-landing-system : lando
2018-10-09 22:59:47 +00:00
Jean-Yves Avenard c0ac48ee0c Bug 1322234 - P3. Add method to read a VP9 profile from a VP9 bitstream r=TD-Linux
Depends on D7616

Differential Revision: https://phabricator.services.mozilla.com/D7647

--HG--
extra : moz-landing-system : lando
2018-10-04 09:43:57 +00:00
Gerald Squelart 1b357db99b Bug 1407810 - Use DDLogger in media stack - r=jwwang
Mostly-mechanical additions:
- Log constructions&destructions, usually by just inheriting from
  DecoderDoctorLifeLogger, otherwise with explicit log commands (for internal
  classes for which DecoderDoctorTraits can't be specialized),
- Log links between most objects, e.g.: Media element -> decoder -> state
  machine -> reader -> demuxer -> resource, etc.

And logging some important properties and events (JS events, duration change,
frames being decoded, etc.)

More will be added later on, from just converting MOZ_LOGs, and as needed.

MozReview-Commit-ID: KgNhHSz35t0

--HG--
extra : rebase_source : dd7206e350e32671adc6f3b9e54ebf777251de2c
2017-10-10 17:55:27 +11:00
Jean-Yves Avenard f2acd77b7c Bug 1394591 - P1. Use nsCString for decoder description. r=gerald
This will allow to modify the string returned later.

MozReview-Commit-ID: Giw1JyukE4v

--HG--
extra : rebase_source : d126b8b956ff1f54c33a838834aee9cc6340de95
2017-09-01 14:25:28 +02:00
Sebastian Hengst 94169d21f8 Backed out changeset 409dbe62d0ea (bug 1394591) for asserting GLBlitHelper requires vertex_array_object in dom/media/mediasource/test/test_FrameSelection.html on Android 4.3. r=backout 2017-09-04 00:08:33 +02:00
Jean-Yves Avenard 15e988718f Bug 1394591 - P1. Use nsCString for decoder description. r=gerald
This will allow to modify the string returned later.

MozReview-Commit-ID: Giw1JyukE4v

--HG--
extra : rebase_source : d126b8b956ff1f54c33a838834aee9cc6340de95
2017-09-01 14:25:28 +02:00
Chris Pearce ec0ac75c45 Bug 1394648 - Switch from nsInt{Point,Rect,Size} to gfx::Int{Point,Rect,Size} in dom/media. r=jwwang
The nsRect.h and nsSize.h headers typedef nsIntRect to gfx::IntRect etc, so the
rect/size objects we use will be the same, just under a different name.
However the old headers #include a bunch of things we don't use, so we if we
use the gfx objects directly we end up with a smaller include graph.

MozReview-Commit-ID: 7S4OSqBJK9m

--HG--
extra : rebase_source : 7cc48507356ce754e8395af957fa68a28711e00a
2017-08-29 14:00:33 +12:00
Jean-Yves Avenard de2ba98442 Bug 1223270: P3. Remove extra copy of YUV buffer on Windows. r=mattwoodrow,nical
MozReview-Commit-ID: JgbAwtLNr9e

--HG--
extra : rebase_source : 72bc0cd32d95fc6eadc0604c00b9f53227135557
2017-05-03 23:25:54 +02:00
Carsten "Tomcat" Book 57edf8693b Backed out changeset c79b6d337d04 (bug 1223270) 2017-06-20 09:41:39 +02:00
Jean-Yves Avenard 683d6562da Bug 1223270: P3. Remove extra copy of YUV buffer on Windows. r=mattwoodrow,nical
MozReview-Commit-ID: JgbAwtLNr9e

--HG--
extra : rebase_source : c7e813a29bd4d0f46c73b5579fec4bc77081cee1
2017-05-03 23:25:54 +02:00
Ralph Giles dcb3a85e19 Bug 1358662 - Implement keyframe and framesize VPXDecoder helpers. r=jya
Encapsulate code from WebMDemuxer to query keyframe and frame
resolution inside VPXDecoder, so we have a clean wrapper for
all the libvpx functions we use.

MozReview-Commit-ID: ASRRhNl0A41

--HG--
extra : rebase_source : e0a27e946a60e0c33ecf4908f1e09436f836e123
2017-04-24 15:05:01 -07:00
Ralph Giles 318e6f6af0 Bug 1358662 - Store VPXDecoder codec as an enum. r=jya
Use the enum we already have here instead of converting
to an int when we pass it around, giving us better
type checking.

MozReview-Commit-ID: Gj4xmtQnzw2

--HG--
extra : rebase_source : fc7769c9650c59f52bfd8611e6cabb8e5b6d7068
2017-04-24 15:02:54 -07:00
Sebastian Hengst 388d65b332 Backed out changeset 20e051241152 (bug 1358662) 2017-04-25 22:36:21 +02:00
Sebastian Hengst 22303ff8eb Backed out changeset 5da7e883ba70 (bug 1358662) 2017-04-25 22:36:20 +02:00
Ralph Giles 20c544fb86 Bug 1358662 - Implement keyframe and framesize VPXDecoder helpers. r=jya
Encapsulate code from WebMDemuxer to query keyframe and frame
resolution inside VPXDecoder, so we have a clean wrapper for
all the libvpx functions we use.

MozReview-Commit-ID: ASRRhNl0A41

--HG--
extra : rebase_source : a1421462f6fc66a2abd965782ec408a8bcf7fe1f
2017-04-24 15:05:01 -07:00
Ralph Giles 83de6e82b7 Bug 1358662 - Store VPXDecoder codec as an enum. r=jya
Use the enum we already have here instead of converting
to an int when we pass it around, giving us better
type checking.

MozReview-Commit-ID: Gj4xmtQnzw2

--HG--
extra : rebase_source : 95f582e655f1a942dfb68cbba588c44afbb8a38f
2017-04-24 15:02:54 -07: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
karo 60f87e60ec Bug 1321076 - Updated VPXDecoder to decode alpha frames. r=jya
VPXDecoder initializes a second context when alpha is encountered.

MozReview-Commit-ID: FMzHFvP8YK0

--HG--
extra : rebase_source : a287670aa62949e8811f678810eb3ac5e3acdbe3
2016-12-21 14:49:50 +13:00
Jean-Yves Avenard 829f0d44fc Bug 1299072: P15. Provide additional error details for most remaining decoders. r=gerald
Additionally, mark non fatal decoding error as such.

Due to the complexity of WMF decoder error handling, this will be done in a follow up bug.

MozReview-Commit-ID: KHWORM8899c

--HG--
extra : rebase_source : 77ada9bb95ba4d44d1bca209e4a7d28369f24f6e
2016-09-13 11:15:36 +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
Bryce Van Dyk dc49694098 Bug 1290284 - Centralise string comparisons for H264 and VPX detection. r=cpearce
Remove string comparisons to determine from mime types if content is VPX or
H264. Replace with calls to VPXDecoder::IsVPX or MP4Decoder::IsH264 to
centralise such logic.

This patch introduces MP4Decoder:IsH264, and moves the similar functionality out
of H264Convertor for the sake of consistently having these functions in
decoders.

MozReview-Commit-ID: 5nfYusYHrUR

--HG--
extra : rebase_source : c013c4ebe28d5afedbb91ddfffadb40d23fd0ee3
2016-07-29 14:12:54 +12:00
Bryce Van Dyk e06afda01b Bug 1279077 - Update GMP/EME path to support webm. r=cpearce
Update handling of VP8, VP9 to enable decryption and decoding via widevine.
Update handling with further validation to make sure that invalid video types
are rejected when trying to create widevine decryptor session or init widevine
decoders.

MozReview-Commit-ID: 8FOvUJfxr6L

--HG--
extra : rebase_source : 0f6aed8256d7f106a598b09e6f11efe80f0e4bb2
2016-07-29 15:53:22 +12: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
JW Wang d1fc52d4c1 Bug 1273397. Part 4 - remove use of FlushableTaskQueue. r=jya.
MozReview-Commit-ID: CEyfb6Aol9Z

--HG--
extra : rebase_source : bffe3697e7babe0e490255f9675a803135b20266
2016-05-17 15:26:09 +08:00
JW Wang 4cf105b95b Bug 1273397. Part 3 - remove use of FlushableTaskQueue::Flush(). r=jya.
MozReview-Commit-ID: 9xptFPNMY73

--HG--
extra : rebase_source : 8ffc582be1854b5066cb13c4275eb2faf0fd82ab
2016-05-17 15:24:39 +08:00
JW Wang a07bf1a1df Bug 1273397. Part 2 - constify some members. r=jya.
MozReview-Commit-ID: MHELzIGz3l

--HG--
extra : rebase_source : ea7f06597bba71bb1642228eb52327822aeac8e6
2016-05-17 15:19:43 +08:00
JW Wang 157e73bce1 Bug 1273397. Part 1 - rename some functions to be consistent with other MediaDataDecoder sub-classes. r=jya.
MozReview-Commit-ID: 27yUz02gs4n

--HG--
extra : rebase_source : 33e9aedf9f8587a8f4b73cb0cf8df9270b714dd5
2016-05-20 15:48:09 +08:00
Ryan VanderMeulen 84b0a4b61f Backed out changeset 0e4c5be816f3 (bug 1257107) for webm reftest failures.
CLOSED TREE
2016-05-19 10:39:07 -04:00
Alfredo Yang 3fed340de9 Bug 1257107 - Discard decoded data if its pts is smaller than seek time. r=jya
--HG--
extra : rebase_source : 2f17f7b3b70f774e03322dbc63727b0794279f91
2016-05-17 21:46:00 -04:00
Eugen Sawin 6d621f5c28 Bug 1232911 - [1.2] Allow to test for specific VPX MIME type version. r=cpearce 2016-03-30 13:19:33 +02:00
Jean-Yves Avenard 4fc8dfaa3d Bug 1241677: P1. Add MediaDataDecoder::GetDescriptionName() method. r=cpearce 2016-01-25 10:33:39 +11: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 685e1fe427 Bug 1194884: [webm] P2. Retrieve all VPX decoded frames from decoder. r=j^ 2015-08-16 11:58:41 +10:00
Alfredo Yang 8c59fda383 Bug 1146086: use promise to Init() in PlatformDecoderModule. r=jya,r=cpearce 2015-08-11 14:09:12 +10:00
Jan Gerber 833434e663 Bug 1185792: [webm] P1. Make MediaInfo.mFrame nsIntRect for visible area. r=jya 2015-08-07 19:31:38 +10:00
Jan Gerber 02ddfcec8c Bug 1148102: P5. Add Opus/VPX/Vorbis MediaDataDecoder. r=jya 2015-07-20 17:27:07 +10:00