Chris Pearce
a8e52798ff
Bug 778077 - Implement HTMLMediaElement.fastSeek(time). r=cajbir
...
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.
Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...
I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.
We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.
Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).
Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2
* * *
Bug 778077 - Fix up MediaOMXReader fastseek to ensure audio stream stays in sync with video stream. r=cajbir
2014-04-01 16:39:04 +13:00
Ed Morley
9d7a5cff30
Backed out changeset 00fa39c23b44 (bug 778077) for reftest failures
2014-03-28 12:31:29 +00:00
Chris Pearce
c9cd61eb5d
Bug 778077 - Implement HTMLMediaElement.fastSeek(time). r=cajbir
...
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.
Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...
I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.
We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.
Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).
Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2
2014-03-28 22:36:10 +13:00
Phil Ringnalda
1a6280a756
Backed out 2 changesets (bug 778077, bug 631058)
...
CLOSED TREE
Backed out changeset dda301682977 (bug 631058)
Backed out changeset 25b633e7dcd5 (bug 778077)
2014-03-27 21:50:02 -07:00
Chris Pearce
b26d467d58
Bug 778077 - Implement HTMLMediaElement.fastSeek(time). r=cajbir
...
Implement HTMLMediaElement.fastSeek(), basically by changing all the
MediaDecoderReader::Seek() overrides to not call
MediaDecoderReader::DecodeToTarget(), and have MediaDecoderReader::DecodeSeek()
call DecodeToTarget() if we're doing an accurate (non-fast) seek.
Update gizmo.mp4 to have a keyframe every second, instead of only 1 keyframe at
the start of stream. This makes the unit test I added more useful for mp4...
I pushed most of the seek target clamping logic in MediaDecoder up into
HTMLMediaElement, so that we're clamping in fewer places. Note
MediaDecoderStateMachine::Seek() still sanity checks the seek target.
We have to update the currentTime/MediaDecoder playback position after a seek
completes now, rather than assuming the seek always got it exactly right.
Removed those pesky assertions about seek target lying in the first frame after
seek, since actually sometimes the media doesn't have samples for all streams
after a seek (either due to the media being encoded like that, or because of a
bug in the platform's decoder, not entirely sure).
Green: https://tbpl.mozilla.org/?tree=Try&rev=b028258565e2
2014-03-28 15:50:28 +13:00
Eric Rahm
4c96c88496
Bug 962154 - Use MallocSizeOf to report decoded-video memory. r=cpearce,njn
2014-03-19 14:33:12 -07:00
Chris Pearce
93f42ad1bf
Bug 634747 - Set MediaQueue's to Finished() when we reach end of stream while decoding after seeking and while finding first frame. r=kinetik
2014-02-25 18:45:03 +13:00
Ben Kelly
110ff07411
Bug 960873: Part 2: Create AudioCompactor class to minimize allocation slop. r=cpearce
...
Based on original patch written by :gal.
2014-02-05 18:11:25 -05:00
Phil Ringnalda
1af4f7e752
Backed out 6 changesets (bug 960873) for Win64 build bustage
...
Backed out changeset 33d8989841ac (bug 960873)
Backed out changeset 6c9e404aeb3f (bug 960873)
Backed out changeset 36c8b10b0a31 (bug 960873)
Backed out changeset 29c36a7acfb0 (bug 960873)
Backed out changeset 6e3966e0eb40 (bug 960873)
Backed out changeset 612db692256b (bug 960873)
2014-02-05 09:28:14 -08:00
Ben Kelly
ceb8a27ae2
Bug 960873: Part 2: Create AudioCompactor class to minimize allocation slop. r=cpearce
...
Based on original patch written by :gal.
2014-02-04 23:10:43 -05:00
Ben Kelly
1f1ea86463
Bug 960873: Part 1: Refactor MediaDecoderReader.h into separate headers. r=cpearce
2014-02-03 20:49:21 -05:00
Benoit Jacob
4703621d85
Bug 964442 - Make CreateImage just take a plain format parameter - r=jrmuizel
2014-01-30 17:58:51 -05:00
Benoit Jacob
3ee7a2d643
Bug 962784 - Convert ImageTypes.h to typed enums - r=jrmuizel
...
find content/media media/webrtc gfx/layers gfx/tests dom/camera dom/plugins image/src layout/base -type f | grep -v 'gfx/layers/ImageTypes.h' | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)\(GRALLOC_PLANAR_YCBCR\|PLANAR_YCBCR\|SHARED_RGB\|CAIRO_SURFACE\|MAC_IOSURFACE\|REMOTE_IMAGE_BITMAP\|SHARED_TEXTURE\|REMOTE_IMAGE_DXGI_TEXTURE\|D3D9_RGB32_TEXTURE\)\($\|[^A-Za-z0-9_]\)/\1ImageFormat::\2\3/g'
find content/media media/webrtc gfx/layers gfx/tests dom/camera dom/plugins image/src layout/base -type f | grep -v 'gfx/layers/ImageTypes.h' | xargs sed -i 's|ImageFormat\:\:ImageFormat|ImageFormat|g'
find content/media media/webrtc gfx/layers gfx/tests dom/camera dom/plugins image/src layout/base -type f | xargs sed -i 's/\(^\|[^A-Za-z0-9_]\)STEREO_MODE_\(MONO\|LEFT_RIGHT\|RIGHT_LEFT\|BOTTOM_TOP\|TOP_BOTTOM\)\($\|[^A-Za-z0-9_]\)/\1StereoMode::\2\3/g'
find content/media media/webrtc gfx/layers gfx/tests dom/camera dom/plugins image/src layout/base -type f | grep -v 'gfx/layers/ImageTypes.h' | xargs sed -i 's|StereoMode\:\:StereoMode|StereoMode|g'
2014-01-30 17:58:49 -05:00
Ms2ger
98586cdbc1
Bug 950143 - Remove the implicit conversion operator from nsIntSize to IntSize; r=roc
2013-12-31 10:06:12 +01:00
Ehsan Akhgari
8ab03a33ee
Bug 939582 - Part 1: Rework the NSPR logging in content/media to use different macro names for different logs; r=doublec
2013-11-20 22:02:42 -05:00
Ehsan Akhgari
7092b111ba
Backed out 2 changesets (bug 939582) because of build bustage
...
Backed out changeset 2079c828645a (bug 939582)
Backed out changeset af472e590088 (bug 939582)
2013-11-20 21:41:40 -05:00
Ehsan Akhgari
258944b4d5
Bug 939582 - Part 1: Rework the NSPR logging in content/media to use different macro names for different logs; r=doublec
2013-11-20 21:11:54 -05:00
Chris Pearce
e02a05ef89
Bug 886196 - Implement WMF platform decoder for FMP4 demuxer. r=padenot
2013-11-21 10:04:33 +13:00
Ms2ger
18114993ff
Bug 928741 - Stop using PR_STATIC_ASSERT in content; r=jst
2013-11-11 09:03:59 +01:00
Chris Pearce
3f98cc2f01
Bug 930829 - Add MediaData class as base for VideoData and AudioData to simplify writing a generic stream decoder. r=kinetik
2013-10-25 15:44:58 +13:00
Chris Pearce
9b05726bb3
Bug 928765 - Create MediaDecoderReader::GetBuffered() base implementation that estimates buffered ranges, so that subclasses do have to keep reimplementing the estimation. r=doublec
2013-10-21 16:31:05 +13:00
Nicolas Silva
1df67b87cd
Bug 922202 - Make PlanarYCbCrImage::Data forward-declarable and remove some header includes. r=bjacob
2013-10-01 17:57:50 -07:00
Matthew Gregan
8d51f7a552
Bug 920867 - Split VideoInfo into Video and Audio objects, then encapsulate in new MediaInfo object. r=cpearce
2013-09-27 17:22:38 +12:00
Ehsan Akhgari
3b48889d78
Bug 912702 - Minimize the #includes in content/media; r=roc
2013-09-05 16:25:17 -04:00
Ehsan Akhgari
22fac42fb0
Backed out changeset 2f15518f566e (bug 912702) because of B2G JB Emulator build bustage
...
--HG--
extra : rebase_source : 6c01ad3bc2f91b0e7e3edab84aedbfe064310a8b
2013-09-05 13:29:38 -04:00
Ehsan Akhgari
2ce2ec0cdb
Bug 912702 - Minimize the #includes in content/media; r=roc
2013-09-04 17:58:14 -04:00
Paul Adenot
3358457bfc
Bug 881092 - Allow decoding files we know we can't play, in the context of WebAudio. r=kinetik,rillian
...
--HG--
extra : rebase_source : ebad931aede2f8225404625e90a5f3228c4a31c0
2013-08-29 11:43:44 +02:00
Chris Pearce
d265de7ebd
Bug 861693 - DirectShow MP3 decoder HTML5 audio backend for Windows. r=padenot
2013-08-13 16:49:25 +12:00
Ehsan Akhgari
3717325909
Bug 872127 - Part 2: Replace mozilla/StandardInteger.h with stdint.h; r=Waldo,ted
2013-07-30 10:25:31 -04:00
Peter Chang
1dcb6e83b0
Bug 894262 - Merge GonkIOSurfaceImage to GrallocImage, r=nical, kanru
2013-07-25 10:13:35 +08:00
Sotaro Ikeda
4fb77bcb31
Bug 887968 - Cast to PlanarYCbCrImage only when image format is PLANAR_YCBCR. r=roc
2013-07-07 16:33:56 -04:00
Michael Wu
d59dd9ac0f
Bug 869251 - Disable omx decoder and camera on gonk-JB, r=doublec,glandium
2013-05-02 17:21:22 -04:00
Alessandro Decina
e91a9e993c
Bug 761018 - GStreamer video buffer handling optimization; r=cdouble
2013-03-13 16:11:15 -04:00
Mats Palmgren
d5826be6d7
Bug 786533 - Replace NS_MIN/NS_MAX with std::min/std::max and #include <algorithm> where needed. r=ehsan
2013-01-15 13:22:03 +01:00
Edwin Flores
b3e660b855
Bug 803394 - Provide a callback to media plugins to request video buffers owned by gecko r=doublec
...
--HG--
extra : rebase_source : e3cb97f3307b603bcdfcdbaeffd05a6e2af14097
2012-12-13 11:53:58 +13:00
Steve Workman
d954a4dc17
Bug 792404 - Add code to enable adaptive decoder and reader switching for DASH-WebM r=cpearce
2012-12-06 15:27:08 -08:00
Paul Adenot
556b71143b
Bug 815194 - Remove more ns prefixes on content/media classes + whitespace fixes. r=cpearce
2012-11-28 20:40:07 +01:00
Ehsan Akhgari
f69801b25f
Bug 812032 - Refactor the media reader classes to not access MediaDecoder directly; r=cpearce
2012-11-19 10:11:21 -05:00
Chris Pearce
216fe28466
Bug 811381 - Remove ns prefix from media code. r=roc
...
--HG--
rename : content/media/nsAudioAvailableEventManager.cpp => content/media/AudioAvailableEventManager.cpp
rename : content/media/nsAudioAvailableEventManager.h => content/media/AudioAvailableEventManager.h
rename : content/media/nsAudioStream.cpp => content/media/AudioStream.cpp
rename : content/media/nsAudioStream.h => content/media/AudioStream.h
rename : content/media/nsMediaCache.cpp => content/media/MediaCache.cpp
rename : content/media/nsMediaCache.h => content/media/MediaCache.h
rename : content/media/nsBuiltinDecoder.cpp => content/media/MediaDecoder.cpp
rename : content/media/nsBuiltinDecoder.h => content/media/MediaDecoder.h
rename : content/media/nsBuiltinDecoderReader.cpp => content/media/MediaDecoderReader.cpp
rename : content/media/nsBuiltinDecoderReader.h => content/media/MediaDecoderReader.h
rename : content/media/nsBuiltinDecoderStateMachine.cpp => content/media/MediaDecoderStateMachine.cpp
rename : content/media/nsBuiltinDecoderStateMachine.h => content/media/MediaDecoderStateMachine.h
rename : content/media/dash/nsDASHDecoder.cpp => content/media/dash/DASHDecoder.cpp
rename : content/media/dash/nsDASHDecoder.h => content/media/dash/DASHDecoder.h
rename : content/media/dash/nsDASHReader.cpp => content/media/dash/DASHReader.cpp
rename : content/media/dash/nsDASHReader.h => content/media/dash/DASHReader.h
rename : content/media/dash/nsDASHRepDecoder.cpp => content/media/dash/DASHRepDecoder.cpp
rename : content/media/dash/nsDASHRepDecoder.h => content/media/dash/DASHRepDecoder.h
rename : content/media/gstreamer/nsGStreamerDecoder.cpp => content/media/gstreamer/GStreamerDecoder.cpp
rename : content/media/gstreamer/nsGStreamerDecoder.h => content/media/gstreamer/GStreamerDecoder.h
rename : content/media/gstreamer/nsGStreamerReader.cpp => content/media/gstreamer/GStreamerReader.cpp
rename : content/media/gstreamer/nsGStreamerReader.h => content/media/gstreamer/GStreamerReader.h
rename : content/media/ogg/nsOggCodecState.cpp => content/media/ogg/OggCodecState.cpp
rename : content/media/ogg/nsOggCodecState.h => content/media/ogg/OggCodecState.h
rename : content/media/ogg/nsOggDecoder.cpp => content/media/ogg/OggDecoder.cpp
rename : content/media/ogg/nsOggDecoder.h => content/media/ogg/OggDecoder.h
rename : content/media/ogg/nsOggReader.cpp => content/media/ogg/OggReader.cpp
rename : content/media/ogg/nsOggReader.h => content/media/ogg/OggReader.h
rename : content/media/omx/nsMediaOmxDecoder.cpp => content/media/omx/MediaOmxDecoder.cpp
rename : content/media/omx/nsMediaOmxDecoder.h => content/media/omx/MediaOmxDecoder.h
rename : content/media/omx/nsMediaOmxReader.cpp => content/media/omx/MediaOmxReader.cpp
rename : content/media/omx/nsMediaOmxReader.h => content/media/omx/MediaOmxReader.h
rename : content/media/plugins/nsMediaPluginDecoder.cpp => content/media/plugins/MediaPluginDecoder.cpp
rename : content/media/plugins/nsMediaPluginDecoder.h => content/media/plugins/MediaPluginDecoder.h
rename : content/media/plugins/nsMediaPluginHost.cpp => content/media/plugins/MediaPluginHost.cpp
rename : content/media/plugins/nsMediaPluginHost.h => content/media/plugins/MediaPluginHost.h
rename : content/media/plugins/nsMediaPluginReader.cpp => content/media/plugins/MediaPluginReader.cpp
rename : content/media/plugins/nsMediaPluginReader.h => content/media/plugins/MediaPluginReader.h
rename : content/media/raw/nsRawDecoder.cpp => content/media/raw/RawDecoder.cpp
rename : content/media/raw/nsRawDecoder.h => content/media/raw/RawDecoder.h
rename : content/media/raw/nsRawReader.cpp => content/media/raw/RawReader.cpp
rename : content/media/raw/nsRawReader.h => content/media/raw/RawReader.h
rename : content/media/raw/nsRawStructs.h => content/media/raw/RawStructs.h
rename : content/media/wave/nsWaveDecoder.cpp => content/media/wave/WaveDecoder.cpp
rename : content/media/wave/nsWaveDecoder.h => content/media/wave/WaveDecoder.h
rename : content/media/wave/nsWaveReader.cpp => content/media/wave/WaveReader.cpp
rename : content/media/wave/nsWaveReader.h => content/media/wave/WaveReader.h
rename : content/media/webm/nsWebMBufferedParser.cpp => content/media/webm/WebMBufferedParser.cpp
rename : content/media/webm/nsWebMBufferedParser.h => content/media/webm/WebMBufferedParser.h
rename : content/media/webm/nsWebMDecoder.cpp => content/media/webm/WebMDecoder.cpp
rename : content/media/webm/nsWebMDecoder.h => content/media/webm/WebMDecoder.h
rename : content/media/webm/nsWebMReader.cpp => content/media/webm/WebMReader.cpp
rename : content/media/webm/nsWebMReader.h => content/media/webm/WebMReader.h
2012-11-14 11:46:40 -08:00