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

60 Коммитов

Автор SHA1 Сообщение Дата
Paul Adenot 5f6c5765b7 Bug 1839391 - Switch WebM demuxer to use mOriginalPresentationWindow to trim packets. r=alwu
The AudioTrimmer change is to properly implement a behaviour Gecko has about
the DiscardPadding WebM element. If it's invalid (negative, present more than
once, spanning multiple packets), the decoder is supposed to reject the file.

This is tested by the files:

  invalid-discard_on_multi_blocks.webm
  invalid-excess_discard.webm
  invalid-excess_neg_discard.webm
  invalid-neg_discard.webm

in test_invalid_reject.html.

Since the demuxer now handles those trimming concerns, we simply flag the packet
has needing to be rejected, by making it have an duration that's a
TimeUnit::Invalid(), and letting the AudioTrimmer reject it.

The rest is straightforward.

Differential Revision: https://phabricator.services.mozilla.com/D181523
2023-08-08 12:12:47 +00:00
Cristian Tuns 5d6b51256b Backed out 57 changesets (bug 1839389, bug 1840869, bug 1840399, bug 1840402, bug 1823953, bug 1828912, bug 1826382, bug 1837160, bug 1839391, bug 1833654) for causing build bustages in ogg_<something> CLOSED TREE
Backed out changeset 61356e1447e3 (bug 1823953)
Backed out changeset 85785505b6d6 (bug 1823953)
Backed out changeset 46a61cbfe8a8 (bug 1833654)
Backed out changeset 83e3de80337b (bug 1833654)
Backed out changeset 1a10c12874ac (bug 1840399)
Backed out changeset 6b087145b67f (bug 1833654)
Backed out changeset b9ac857ad43f (bug 1840399)
Backed out changeset 4b841e8dd033 (bug 1823953)
Backed out changeset 650e35803834 (bug 1823953)
Backed out changeset c11b58ac0709 (bug 1823953)
Backed out changeset c0249c90bc31 (bug 1823953)
Backed out changeset 8929288d5aec (bug 1823953)
Backed out changeset 828792b886bd (bug 1823953)
Backed out changeset 873f1d4a8875 (bug 1840869)
Backed out changeset a25abd05302c (bug 1823953)
Backed out changeset d4b1eb442c36 (bug 1840399)
Backed out changeset c25509d72a96 (bug 1840399)
Backed out changeset 0f72a0626a28 (bug 1840402)
Backed out changeset 82e7574364ce (bug 1840399)
Backed out changeset 93073105f063 (bug 1840399)
Backed out changeset 56ec8e3405e9 (bug 1840399)
Backed out changeset ff15dad37ab8 (bug 1840399)
Backed out changeset 0655ebd61eda (bug 1840399)
Backed out changeset 7bca1ae06c7d (bug 1828912)
Backed out changeset 8a5a849cfe5f (bug 1828912)
Backed out changeset 3d8422a2038a (bug 1828912)
Backed out changeset f08ee5de9370 (bug 1823953)
Backed out changeset a4eb210620ff (bug 1823953)
Backed out changeset aa8914cd55be (bug 1839391)
Backed out changeset 3ea1f43e4024 (bug 1823953)
Backed out changeset 3efe02ffa1c8 (bug 1826382)
Backed out changeset 81c4553ec23d (bug 1839391)
Backed out changeset 130894e4a781 (bug 1839391)
Backed out changeset 9a0247b0fc85 (bug 1839391)
Backed out changeset 11a923064382 (bug 1839391)
Backed out changeset 98ffb66160c3 (bug 1837160)
Backed out changeset a80dda9a220a (bug 1837160)
Backed out changeset 251b4ef97a2b (bug 1837160)
Backed out changeset 7372632eb32f (bug 1837160)
Backed out changeset c5d54bc3ee26 (bug 1839389)
Backed out changeset b232ec1bbc2d (bug 1833654)
Backed out changeset fc7ba125c2fe (bug 1833654)
Backed out changeset 8a47f6882e61 (bug 1823953)
Backed out changeset e29810541b53 (bug 1828912)
Backed out changeset bcf10730c8c9 (bug 1828912)
Backed out changeset 8df8290b6c33 (bug 1826382)
Backed out changeset 2811d12803cf (bug 1826382)
Backed out changeset 3fc718561ec9 (bug 1826382)
Backed out changeset 7827183776e1 (bug 1823953)
Backed out changeset a3eb5f228d9a (bug 1826382)
Backed out changeset 3113ad2e0987 (bug 1823953)
Backed out changeset 4b1dc01525af (bug 1823953)
Backed out changeset f7f4a7585ceb (bug 1823953)
Backed out changeset 93042f1becec (bug 1823953)
Backed out changeset b9ca30a0a066 (bug 1823953)
Backed out changeset 1000c4a6a92a (bug 1823953)
Backed out changeset 05dc13775fd6 (bug 1823953)
2023-08-01 09:37:39 -04:00
Paul Adenot 47aba26c3e Bug 1839391 - Switch WebM demuxer to use mOriginalPresentationWindow to trim packets. r=alwu DONTBUILD
The AudioTrimmer change is to properly implement a behaviour Gecko has about
the DiscardPadding WebM element. If it's invalid (negative, present more than
once, spanning multiple packets), the decoder is supposed to reject the file.

This is tested by the files:

  invalid-discard_on_multi_blocks.webm
  invalid-excess_discard.webm
  invalid-excess_neg_discard.webm
  invalid-neg_discard.webm

in test_invalid_reject.html.

Since the demuxer now handles those trimming concerns, we simply flag the packet
has needing to be rejected, by making it have an duration that's a
TimeUnit::Invalid(), and letting the AudioTrimmer reject it.

The rest is straightforward.

Differential Revision: https://phabricator.services.mozilla.com/D181523
2023-08-01 12:41:09 +00:00
Bryce Seager van Dyk 4437e99191 Bug 1697641 - Gracefully handle webms with bogus timecodes that conflict other metadata. r=kinetik
This expands on existing checks when getting a webms buffered intervals. The
additional check ensures we don't end up with end < start due to our code that
clamps end at duration.

This patch moves those checks into their own helper function so as to reduce
clutter in GetBuffered.

Differential Revision: https://phabricator.services.mozilla.com/D111152
2021-04-12 16:07:07 +00:00
Simon Giesecke 88ead5d627 Bug 1613985 - Use default for equivalent-to-default constructors/destructors in dom/media. r=padenot
Differential Revision: https://phabricator.services.mozilla.com/D65178

--HG--
extra : moz-landing-system : lando
2020-03-04 15:39:20 +00:00
Simon Giesecke b50347f917 Bug 1611415 - Prefer using std::move over forget. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980

--HG--
extra : moz-landing-system : lando
2020-02-13 14:38:48 +00:00
shindli 91aa0518dd Backed out changeset 0c982bc69cb3 (bug 1611415) for causing build bustages in /builds/worker/workspace/build/src/obj-firefox/dist/include/nsCOMPtr CLOSED TREE 2020-02-12 20:13:29 +02:00
Simon Giesecke f604a47fa5 Bug 1611415 - Applied FixItHints from mozilla-non-std-move. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D60980

--HG--
extra : moz-landing-system : lando
2020-02-12 17:24:41 +00:00
Emilio Cobos Álvarez 4f0e8086f2 Bug 1609996 - Fix some things that the automated replacement didn't catch. r=froydnj
This makes Gecko build again. I'll squash this into the previous commit anyhow.

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

--HG--
extra : moz-landing-system : lando
2020-01-20 16:18:28 +00:00
Emilio Cobos Álvarez 04436b8041 Bug 1599843 - WebMDemuxer::Reset is infallible. r=jya
Depends on D54987

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

--HG--
extra : moz-landing-system : lando
2019-11-28 00:12:11 +00:00
alwu 441473d744 Bug 1563949 - part4 : prevent direct usage of 'AppendElement()' to append sample. r=jya
We should always append sample by using `AppendSample()` to assert whether a sample is valid, so making `mSamples` private can prevent a direct usage of the nsTarry's `AppendElement()`.
Also provide a method to return non-const mSamples which is only used for the move semantics.

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

--HG--
extra : moz-landing-system : lando
2019-07-19 21:11:21 +00:00
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 6aea43ac23 Bug 1497951 - P6. Remove resolution detection in webm demuxer. r=bryce
This is now done in the MediaChangeMonitor.

Depends on D10912

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

--HG--
extra : moz-landing-system : lando
2018-11-07 13:49:53 +00:00
Emilio Cobos Álvarez fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02: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
Gerald Squelart b0442493e5 Bug 1405531 - Remove unused MediaDataDemuxer::HasTrackType - r=jwwang
The only actual code use in MediaSourceDemuxer can trivially be folded into
its caller GetNumberTracks in the same class.

MozReview-Commit-ID: E6zh98zmJwJ

--HG--
extra : rebase_source : 9358dc37523d6cd7c1a4d5ec62a790db6a092063
2017-10-04 11:40:29 +11:00
Jean-Yves Avenard f219b74756 Bug 1393087 - P2. Add methods for range-based loops. r=gerald
MozReview-Commit-ID: 6xvug7AP8jj

--HG--
extra : rebase_source : 539dfe8942062abbf6887eaca8ef9532e6892cb0
2017-09-25 16:43:55 +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
Ralph Giles d785a282a3 Bug 1362107 - Add missing includes to WebMDemuxer. r=jya
This was working because of our unified build, but having
the correct definitions for all types used by the header
helps editor navigation tools.

MozReview-Commit-ID: LuWEeTIikla

--HG--
extra : rebase_source : 0046ec17ac45270adc771bd0cf77c8381f99737b
2017-05-04 09:53:34 -07:00
Ralph Giles 9032567bba Bug 1358662 - Store LastSeenFrame dimensions as an nsIntSize. r=jya
This simplifies the comparison and update logic.

MozReview-Commit-ID: A6YII8tlEUn

--HG--
extra : rebase_source : e225b34f91e12591d5872121e024ef29c63a11e0
2017-04-21 18:05:46 -07:00
Sebastian Hengst 7349ffcf3d Backed out changeset 555b0322f776 (bug 1358662) for failing mda, crashtests and reftests. r=backout
Android 4.3: mda: test_EndedEvent.html, test_FrameSelection.html
OS X 10.10 debug: mda: test_BufferingWait.html

Linux x64 asan&pgo:
crashtest: video-replay-after-audio-end.html
reftest: bug686957.html
2017-04-25 22:36:21 +02:00
Ralph Giles afff134a91 Bug 1358662 - Store LastSeenFrame dimensions as an nsIntSize. r=jya
This simplifies the comparison and update logic.

MozReview-Commit-ID: A6YII8tlEUn

--HG--
extra : rebase_source : ddf4304298209e515eb44962e8bc9ccd38c9956f
2017-04-21 18:05:46 -07:00
Jean-Yves Avenard 10e0910cef Bug 1334508: Treat demuxing errors differently than EOS. r=kinetik
MozReview-Commit-ID: JZTjo8jxfCr

--HG--
extra : rebase_source : abbb3fd9f7733bf4d20f91942eab108462712257
2017-02-19 23:46:16 +01:00
Jean-Yves Avenard 36471a6bc1 Bug 1336431: P4. Rename SharedTrackInfo. r=gerald
into TrackInfoSharedPtr to better indicate what this class is about.
Adding cast operator to allow transparent conversion from TrackInfoSharedPtr to const TrackInfo*

MozReview-Commit-ID: 6RwXl5CG0fG

--HG--
extra : rebase_source : b5a7a0f06793c609e2eab60aacc4f76d96d6ec32
2017-02-13 19:18:05 +01:00
Jean-Yves Avenard 16bf821b42 Bug 1325707: P3. Fix coding style. r=gerald
Fixed coding style of files encountered in P1 and P2.

MozReview-Commit-ID: LApVu9K2oto

--HG--
extra : rebase_source : e3bb296baaec9df2011ff312fec2eda19dd125e6
2017-02-07 09:15:59 +01:00
Gerald Squelart 038cba7f2e Bug 1313497 - Pass TimeUnit by const& in MediaDataDemuxer - r=jya
Thanks to the previous patch, MediaDataDemuxer::Seek and
SkipToNextRandomAccessPoint (and all overrides in derived demuxers) can now
take their TimeUnit parameter by const&.

MozReview-Commit-ID: 6CqfjAXZ7Yk

--HG--
extra : rebase_source : c3453e4432d9e0281cf5eba55217b0c1d6312f5b
2016-11-13 15:13:51 +11:00
Carsten "Tomcat" Book bf5be9e9d9 Backed out changeset 87880c0f7336 (bug 1300703) on request from jya 2016-09-07 14:14:31 +02:00
Jean-Yves Avenard 5d2aa966ca Bug 1300703: [webm] Use default duration if known. r=kinetik
MozReview-Commit-ID: J18IdDGkL62

--HG--
extra : rebase_source : fa1e1fdba214f0a0f70656f0523bc76f2cfe5662
2016-09-06 17:23:38 +10:00
Ralph Giles b9106558db Bug 1282963 - Share CodecDelay prepend code. r=kinetik
Both the WebM and mp4 demuxers need to pack this value into
the the CodecSpecificConfig, so move the shared implementation
to the OpusDecoder, near where it is unpacked so the two can
be kept in sync.

MozReview-Commit-ID: 2pQaruJoAWr
2016-06-29 15:49:04 -07:00
Bryce Van Dyk a35190cc6e Bug 1257727, 1257729 - Update WebM handling to deal with encrypted WebMs. r=jya
- WebMDemuxer will read crypto information from WebM metadata.
- WebMDemumer adds crypto information to samples.
- WebMDemuxer can now return encryption info from GetCrypto().
- WebMDexmuer will not attempt to peek encrypted frames as it
will give back garbage data. This means resolution changes
internal to encrypted WebM files will not work.
- WebMDecoder now exposes a single string version of
CanHandleMediaType. This is done in the same way as the
Mp4Decoder, so that the future update to MediaKeySystemAccess
for WebM handling can maintain the same conventions.

MozReview-Commit-ID: CU3JVi3t7Vn

--HG--
extra : transplant_source : %87gn%5Bm%B5t%EA%9F%5Bh%B4%3B%9D%5E%AE%AB%AF%12%0A
2016-05-27 14:34:54 +12:00
Jean-Yves Avenard 5995268333 Bug 1274445: [webm] P1. Track separately audio track from video track. r=kinetik
Bug 1224973 added a new usage of the MediaDataDemuxer where we would seek only inside the video track. So we can't use a common nestegg context for demuxing both the audio and video.
So instead we now use two different nestegg context.

MozReview-Commit-ID: 4G86Na5abe2

--HG--
extra : rebase_source : 4f296a649f73ef2f37a770db2c8a0f7f0e5c54a2
2016-05-30 15:40:05 +10:00
Jean-Yves Avenard adcff7f912 Bug 1276572: [webm] Fix MediaRawDataQueue::PushFront. r=jwwang
We want to add MediaRawDataQueue aOther at the front, not at the back.

MozReview-Commit-ID: 9icTWzRqS4u

--HG--
extra : rebase_source : 2713cbe952461c520a420925040be2de257f0596
2016-05-30 19:17:03 +10:00
Jean-Yves Avenard ebffea1ce6 Bug 1261900: [MSE/webm] P5. Re-add WebMTrackDemuxer::GetEvictionOffset. r=gerald 2016-04-22 16:37:39 +10:00
Jean-Yves Avenard 778f74db59 Bug 1262727: [webm] Ensure first frame returned after seek is a keyframe. r=kinetik
Same after a reset or the first frame ever returned by the demuxer.

MozReview-Commit-ID: 6b7XlIk5GE4

--HG--
extra : rebase_source : 7e7b92c2ed7ea6973ad3869477b3110925a64525
2016-04-07 17:40:16 +10:00
Bryce Van Dyk a0436efae3 Bug 1232045 - WebMDemuxer handles resolution changes. r=jya
Update the WebMDemuxer to detect changes in resolution. When it does so it
changes the streamID so that we get a new decoder created to handle the
resolution change. The demuxer will also update media info in these cases, so
the new decoder has the correct information. The demuxer will only handle
resolution changes on key frames, files that attempt changes other times are not
considered valid at this stage. If a resolution change cannot be performed
because nest_egg cannot read track info, or because the new resolution is
invalid, a change will not take place.

MozReview-Commit-ID: 1JKz3mGbEvi

--HG--
extra : rebase_source : aebd609651dfbd48d2f6ea3e33986a7e12b1495e
2016-03-15 00:28:47 +13:00
Bryce Van Dyk 939ab2b661 Bug 657791 - Update seekable range handling for cueless WebMs. r=kinetik
MediaDecoder previously had 3 states within GetSeekable(), media is either
seekable, seekable but not supported by transport, or not seekable. Due to
changes to make cueless webms playable, a 4th option is needed: a file that is
not fully seekable, but may support seeking from the transport, such as these
webms, should only be seekable in the buffered range.

MozReview-Commit-ID: ISeFkngtrGU
2016-02-04 17:31:21 +13:00
Jean-Yves Avenard b8299c5f79 Revert "Bug 1240201: [vorbis] P1. Properly determine sample duration and time in webm demuxer. r=kinetik"
This reverts commit c0a4a296
2016-01-23 12:42:02 +11:00
Jean-Yves Avenard 9b20eae811 Bug 1240201: [vorbis] P1. Properly determine sample duration and time in webm demuxer. r=kinetik 2016-01-23 02:50:06 +11:00
Wes Kocher 56d625df80 Backed out 2 changesets (bug 1240201) for Windows wpt bustage
Backed out changeset b06a049cafb7 (bug 1240201)
Backed out changeset 69b695ad6d43 (bug 1240201)

--HG--
extra : commitid : KSF0gTfQB2
2016-01-21 12:28:24 -08:00
Jean-Yves Avenard b20992e3b8 Bug 1240201: [vorbis] P1. Properly determine sample duration and time in webm demuxer. r=kinetik 2016-01-22 00:40:56 +11:00
Jean-Yves Avenard fcaa513106 Bug 1240411: P4. Clean up readers headers. r=cpearce
Remove redundant virtual keyword and add missing override if any.
2016-01-19 19:47:31 +11:00
Nathan Froyd e1dc7934e4 Bug 1190472 - part 3 - optimize pushing an entire queue onto MediaRawDataQueue; r=kinetik
In the one place we push a MediaRawDataQueue onto a MediaRawDataQueue,
we don't use the pushee aftewards.  It's more efficient to indicate that
by using Move(), and we can then save on reference-counting things
needlessly.
2015-10-01 19:06:50 -04:00
Nathan Froyd 0bc5c6fc4d Bug 1190472 - part 2 - delete unused MediaRawDataQueue::Push method; r=kinetik
We don't call it, and it's not particularly efficient anyway.
2015-10-01 19:04:02 -04:00
Nathan Froyd eafdc95974 Bug 1190472 - part 1 - improve MediaRawDataQueue's reference-counting behavior; r=kinetik
Sometimes when we push onto the queue, we don't need to hold a reference
afterwards.  In that case, we can pass the reference in and avoid
unnecessary reference counting.
2015-10-01 19:02:18 -04: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
Jean-Yves Avenard 628247fc4e Bug 1212176: Remove arguments passed to MediaDataDemuxer::NotifyDataArrived API. r=cpearce
Be more explicit on what it does and how it should be used.
2015-10-08 20:47:21 +11:00
Jean-Yves Avenard 33e5945370 Bug 1204407: P2. Remove no longer required MediaDataDemuxer APIs. r=cpearce 2015-09-16 18:14:15 +10:00
Jean-Yves Avenard 71c5c9a7bf Bug 1204419: P4. Remove MediaDataDemuxer API no longer used. r=cpearce 2015-09-16 18:14:12 +10:00
Jean-Yves Avenard b3c3e04b18 Bug 1204419: P1. Fix webm headers. r=kinetik 2015-09-16 18:14:10 +10:00