Commit Graph

56 Commits

Author SHA1 Message Date
Edwin Flores
aed4cd05ba Bug 977089 - Don't pass ID3 headers to GStreamer r=cpearce 2014-05-08 15:49:31 +12:00
Chris Pearce
223e397746 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
05dcbf9506 Backed out changeset 00fa39c23b44 (bug 778077) for reftest failures 2014-03-28 12:31:29 +00:00
Chris Pearce
dac6ce38ba 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
e21145ad4a 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
fc3fc91d79 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
Nathan Froyd
af496ca80d Bug 978105 - convert content/ to use Endian.h; r=smaug 2014-02-26 20:20:15 -05:00
Alfredo Yang
057236b5ee Bug 976510 - Calculate display size according to pixel aspect-ratio. r=cpearce 2014-03-05 08:47:45 -05:00
Chris Pearce
fb9c0cbaaf Bug 975928 - Use our estimate for MP3 duration rather than GStreamer's for buffered range end when fully buffered in MP3/GStreamer. r=alessandro.d 2014-02-26 13:36:54 +13:00
JW Wang
0651a3a720 Bug 949346 - 1. print this pointer in nspr logs for debugging when there are 2 GStreamerReader running concurrently 2. Parse MP3 headers before kicking off the gstreamer pipeline such that there are no concurrent stream operations which could screw the state machine of gstreamer. r=alessandro.d 2014-02-20 08:32:19 +08:00
Ryan VanderMeulen
240c843834 Backed out changeset 183380b99514 (bug 874806) for frequent mochitest asserts.
CLOSED TREE
2014-02-19 14:15:19 -05:00
Alessandro Decina
de531bfc91 Bug 973744 - Remove matroska seek hack in the gstreamer media backend. r=edwin 2014-02-19 11:30:09 -05:00
Alessandro Decina
5b7fd8a1d9 Bug 874806 - GStreamerReader::PlayBinSourceSetupCb() doesn't need to do a bogus read anymore. r=cpearce 2014-02-18 08:59:32 -05:00
Alessandro Decina
5f078f28f2 Bug 973379 - GStreamerReader::ReadMetadata()'s element config loop should break on error to avoid timeout. r=edwin 2014-02-18 11:28:04 +13:00
Chris Pearce
2112c71d2f Bug 973139 - Don't treat EOS of one stream as EOS of all streams when decoding with GStreamer. r=alessandro.d 2014-02-15 22:32:12 +13:00
Alessandro Decina
c227f421a5 Bug 806917 - Add support for GStreamer 1.0. r=edwin, r=gps 2014-02-11 09:22:45 -05:00
Ms2ger
f79d93ff0a Bug 952033 - Part c: Use IntSize and IntRect in VideoData; r=roc 2014-02-09 09:04:38 +01:00
Ben Kelly
bfdee09390 Bug 960873: Part 5: Make gstreamer use AudioCompactor. r=cpearce 2014-02-05 18:11:25 -05:00
Alessandro Decina
bcedc6fe80 Bug 959007 - Firefox crashes when starting html5 web player. r=cpearce, r=edwin 2014-02-05 17:46:04 -05:00
Phil Ringnalda
fe6c4959d1 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
24bfd36b75 Bug 960873: Part 5: Make gstreamer use AudioCompactor. r=cpearce 2014-02-04 23:10:43 -05:00
Benoit Jacob
3991287fb7 Bug 964442 - Make CreateImage just take a plain format parameter - r=jrmuizel 2014-01-30 17:58:51 -05:00
Benoit Jacob
e6d46b061f 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
Edwin Flores
740ce45445 Bug 918135 - Use MP3FrameParser in GStreamer backend for MP3 duration estimation r=cpearce
This patch adds support for our home-grown MP3 frame parser to the GStreamer
backend so that our duration estimation is consistent across all platforms.
2013-12-03 10:25:28 +13:00
Matthew Gregan
6dcb5015db Bug 939662 - Remove "using namespace mozilla::dom;" from MediaDecoder.h and fix fallout. r=cpearce 2013-11-18 17:22:47 +13:00
Phil Ringnalda
102ba52e3d Back out 4fd2bf2ec8db (bug 939662) for Windows build bustage
CLOSED TREE
2013-11-18 21:34:48 -08:00
Matthew Gregan
f9db1edec7 Bug 939662 - Remove "using namespace mozilla::dom;" from MediaDecoder.h and fix fallout. r=cpearce
--HG--
extra : rebase_source : 922db8de8e9103e3001c26f23ed7402efa8237f5
2013-11-18 17:22:47 +13:00
Chris Pearce
2744117b84 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
Birunthan Mohanathas
872802570b Bug 784739 - Switch from NULL to nullptr in content/; r=ehsan
--HG--
extra : rebase_source : 9237726507e8002479616a98a82646a763932507
2013-10-23 16:34:10 -04:00
Matthew Gregan
e1f44d3688 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
Chris Pearce
7fb506d1f8 Bug 915957 - Move MediaDecoder::NotifyBytesConsumed() calls into MediaResource, so we don't need to remember to do them in all decoder backends. r=kinetik 2013-09-18 15:37:23 +12:00
Chris Pearce
6745dba042 Bug 915958 - Automatically Finish() MediaQueues, so that each backend doesn't need to remember to do it. r=edwin 2013-09-13 14:33:54 +12:00
Edwin Flores
0101780c06 Bug 884651 - Stop gstreamer from trying to sync video and audio for us r=cpearce 2013-09-06 15:14:48 +12:00
Phil Ringnalda
95e183841c Back out 0e276ed2d7c3 (bug 884651) for Linux test_streams_element_capture.html timeouts
CLOSED TREE
2013-06-24 18:29:34 -07:00
Edwin Flores
06fd8a817c Bug 884651 - Stop gstreamer from trying to sync video and audio for us r=cpearce 2013-06-25 10:41:22 +12:00
Edwin Flores
3ce75d8a3f Bug 882567 - Handle fatal gstreamer errors by aborting playback r=alessandro.d 2013-06-22 11:16:53 +12:00
Edwin Flores
1a9df949b5 Bug 876305 - Pass the media mimetype on to the gstreamer backend r=alessandro.d 2013-06-11 14:13:10 +12:00
Edwin Flores
72fbb7c75d Bug 876305 - Cap the max number of audio buffers gstreamer can use r=alessandro.d 2013-06-11 14:13:10 +12:00
Edwin Flores
d7bc68c284 Bug 879995 - Fix assertion failure in gstreamer backend with fragmented mp4 videos r=alessandro.d 2013-06-11 14:13:09 +12:00
Edwin Flores
fa70337842 Bug 859199 - Load GStreamer libraries at runtime r=doublec 2013-06-11 14:13:09 +12:00
Ivaylo Dimitrov
90b6f694ef Bug 880029 - gstreamer - high CPU usage after patch for Bug 856562 landed. r=alessandro.d 2013-06-08 20:53:10 +01:00
Edwin Flores
57bdc4503a Bug 856562 - Fix decode race in gstreamer backend r=alessandro.d 2013-05-16 14:35:16 +12:00
Ivaylo Dimitrov
bff0518f5b Bug 856308 - Enable GStreamer video buffer handling optimization for gstreamer versions older than 0.10.36. DONTBUILD because NPOTB r=alessandro.d,padenot 2013-05-03 16:44:54 +02:00
Chris Pearce
41bbe80170 Bug 860978 - Fix compile error due to warnings as errors in gstreamer backend on Fedora 16, GCC4.6.3. r=edwin 2013-04-12 12:28:53 +12:00
Alessandro Decina
c0db923166 Bug 853325 - Improve buffered time ranges accuracy with the GStreamer media backend r=doublec 2013-04-11 20:46:47 +12:00
Alessandro Decina
38fc3c583a Bug 853306 - Make the GStreamer backend play whitelisted codecs only r=doublec 2013-04-11 20:46:46 +12:00
Alessandro Decina
0c608b57f4 Bug 851906 - Restore compatibility with older GStreamer versions. r=doublec 2013-03-17 07:33:00 -07:00
Alessandro Decina
f1f8c03a5d Bug 761018 - GStreamer video buffer handling optimization; r=cdouble 2013-03-13 16:11:15 -04:00
Alessandro Decina
b31fa67829 Bug 833628 - GStreamer backend has shutdown hang in content/media mochitests; r=cdouble
Fix stream length detection so that we don't report size=-1 to gst. Fixes issues
with qtdemux not liking unknown upstream byte size.
2013-03-13 16:09:20 -04:00
Alessandro Decina
71733bb192 Bug 808319 - Fix some GCC warnings in GStreamerReader.cpp r=rillian,alessandro.d 2013-03-03 23:56:00 -08:00