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

57 Коммитов

Автор SHA1 Сообщение Дата
Sotaro Ikeda cd5b455001 Bug 884654 - Fix deadlock come from OmxDecoder::statusChanged(). r=doublec 2013-06-26 09:36:22 -04:00
Sotaro Ikeda b4c019463a Bug 883744 - add pointer null check r=doublec 2013-06-22 08:58:12 -04:00
Sotaro Ikeda 5080be29cf Bug 884440 - Remove item correctly from vector. r=doublec 2013-06-19 13:40:31 -04:00
Robert O'Callahan ced3f085a3 Bug 880601. Emulate a form of keyframe skipping by allowing MediaOmxReader::DecodeVideoFrame to decode more than one video frame if video decoding is falling behind. r=cpearce
If we don't support this in any way, then we get into trouble when there is
plenty of compressed data buffered but for some reason video decoding falls
behind (maybe there was a short period where the video data wasn't available).
Audio playback continues normally, but MediaOmxReader keeps making one call
to ReadAudio and one to ReadVideo, and if each call to ReadAudio decodes at
least as much as the calls to ReadVideo, video decoding can never catch up
to the current audio playback position. So video never plays. And when the
video decoding point gets far enough away from the audio decoding point,
horrible things start to happen, such as video and audio reading completely
different parts of the media cache and interfering with the caching mechanism
(which assumes audio and video reads are close together).

This patch approximates keyframe skipping, and is basically just a way for
MediaOmxReader::DecodeVideoFrame to decode more than one frame at a time
if we need video decoding to catch up.

To prevent pathological situations, we cap both the maximum number of frames
decoded per DecodeVideoFrame and the amount of time we spend in the method
(excluding the time for the last frame).

--HG--
extra : rebase_source : cba95c537fe97df5b696581be8233b6e9cffb70b
2013-06-15 23:51:56 +12:00
Sotaro Ikeda 357c151486 Bug 871485 - Share hw codec between applications/tasks. r=mwu, r=doublec, r=roc 2013-06-10 08:22:05 -04:00
Robert O'Callahan 7383c1b363 Bug 877461. Part 3: Retry libstagefright audio/video decoding if it fails due to a timeout. r=sotaro
--HG--
extra : rebase_source : 2ccd8afaca1e4055eb0105f25754176b0ff37034
2013-06-06 11:43:43 +12:00
Robert O'Callahan 75b26ed79a Bug 877461. Part 2: Initialize VideoFrame members to 0. r=doublec
--HG--
extra : rebase_source : d447561e74bc760c2ccbcba925e54579e3a15088
2013-06-06 10:48:25 +12:00
Vladimir Vukicevic 020a93e885 b=843599; use gralloc buffers for WebGL streaming on B2G; r=nical,jgilbert,jrmuizel 2013-05-27 10:12:13 -04:00
Sotaro Ikeda 2e8825ec27 Bug 874325 - Add lock to MediaStreamSource::readAt(). r=doublec 2013-06-03 10:41:54 -04:00
Mike Shal 5169c0a913 Bug 864774 - Part 2: Move CPPSRCS to moz.build as CPP_SOURCES; r=joey CLOSED TREE
From 9e0ba7f425143f545eb6c4b26a9a96b5ade4d8e9 Mon Sep 17 00:00:00 2001
2013-04-23 17:54:15 -04:00
Sotaro Ikeda 7a601bfbd5 Bug 871753 Part1 - fix deadlock during youtube video playback. r=doublec 2013-05-16 17:24:13 -07:00
Sotaro Ikeda f2ceae4c0d Bug 868806 - Handle OMXCodec's error. r=doublec 2013-05-15 21:35:34 -04:00
Patrick Wang 4be181127d Bug 871463 - allow to fallback to software codec in emulator. r=doublec 2013-05-13 17:38:49 +08:00
Sotaro Ikeda bd9bed909c Bug 863441 - Increment GetAmpleVideoFrames() to 3. r=doublec 2013-05-07 10:53:42 -04:00
Sotaro Ikeda eb98c9411e Bug 864180 - Move audio software decoder to app's process. r=doublec 2013-05-06 08:43:18 -04:00
Ed Morley 5c4d749c4e Merge mozilla-central and birch 2013-05-03 13:35:02 +01:00
Chris Pearce 01b2b87eff Bug 862182. r=roc,doublec 2013-05-03 10:59:18 +12:00
Michael Wu 5ac9873f58 Bug 868065 - Move GraphicBuffer.h include out of ImageContainer.h, r=vlad 2013-05-02 12:56:09 -04:00
Chris Pearce c40495db60 Bug 862182 - Revert bug 862183 due to frequent orange in 459439 crashtest. CLOSED TREE. r=philor 2013-05-01 13:33:33 +12:00
Chris Pearce 601260f1a0 Bug 862182 - Hold references to MediaResource in nsRefPtrs (content/media/omx), and fix some omx compiler warnings. r=doublec 2013-05-01 11:23:46 +12:00
Ryan VanderMeulen c2c22c6cba Merge m-c to inbound. 2013-04-16 16:04:20 -04:00
Mike Shal df7deac25b Bug 846634 - Part 2: Move EXPORTS to moz.build; r=joey 2013-04-16 15:24:43 -04:00
Diego Wilson 2d313efb2c Bug 860760 - Pause OMX media sources when playback is paused. r=sotaro, r=cdouble
OMXCodec needs to now when the stream is paused. Otherwise it will
prevent the device from lowering its power state when idle.
2013-04-10 17:58:25 -07:00
Sotaro Ikeda 09b09313c5 Bug 837051 - Store less buffers for video playback at MediaOmxReader. r=doublec 2013-04-08 14:35:30 -04:00
Diego Wilson 0488ab61c9 Bug 847779 - Abort playback if OMX audio init fails. r=doublec, r=cpearce 2013-04-04 15:33:45 -07:00
Kyle Machulis 72a717a860 Bug 855465 - Add emacs python mode comments to moz.build files; r=gps 2013-04-01 11:36:59 -07:00
Kyle Machulis 43628a7867 Backout for changeset 03452b187c14 (Bug 855465) due to bustage on a CLOSED TREE; r=qdot 2013-03-29 15:12:58 -07:00
Kyle Machulis 334c0800cf Bug 855465 - Add emacs python mode comments to moz.build files; r=gps
--HG--
extra : rebase_source : 004a756492323e1a049586e85b3be5037159df20
2013-03-29 13:56:18 -07:00
Sotaro Ikeda 97d75b663a Bug 850566 - Part 3: Set video size to SurfaceDescriptorGralloc. r=doublec 2013-03-28 09:59:48 -04:00
Mike Shal 7ecea60097 Bug 844654 - Part 2: Move MODULE to moz.build; rs=gps 2013-03-19 11:47:00 -07:00
Sotaro Ikeda ecebfc145e Bug 803471 - Part 5b - Change OmxDecode to use GonkNativeWindowClient. r=cdouble 2013-03-08 14:43:33 -05:00
Sotaro Ikeda 4d3c927c6e Bug 803471 - Part 2 - Use OmxClient in OmxDecoder. r=cdouble 2013-03-08 14:43:32 -05:00
Andrea Marchesini 2de1d7cad4 Bug 841014 - Rename nsTimeRanges.h to TimeRanges.h. r=Ms2ger
--HG--
rename : content/html/content/src/nsTimeRanges.cpp => content/html/content/src/TimeRanges.cpp
rename : content/html/content/src/nsTimeRanges.h => content/html/content/src/TimeRanges.h
2013-03-02 14:14:44 -05:00
Gregory Szorc 72ed2beb7b Bug 784841 - Part 18g: Convert /content; r=glandium 2013-02-25 12:47:19 -08:00
Sotaro Ikeda 4968afff3b Bug 840154 - Do not release MediaBuffer during OMXCodec is seeking. r=cdouble 2013-02-15 21:27:18 -05:00
Ehsan Akhgari 47b2a30d20 Bug 792263 - Implement decodeAudioData; r=bzbarsky,cpearce,padenot 2013-02-01 17:13:23 -05:00
Chris Jones 5fc9bf313e Bug 834150: Just Say No to the fallback SW decoder. r=doublec a=blocking-b2g 2013-01-30 15:06:28 -08:00
Chris Double 391466a49e Bug 825485 - AAC files don't play on B2G - r=cjones 2013-01-07 12:55:50 +00:00
Chris Jones 772a6743c1 Bug 824230: Handle UNKNOWN_ERROR in OmxDecoder. r=doublec 2012-12-24 15:43:10 -08:00
Chris Jones 74dfa6d566 Bug 819609: Don't try to send too-large videos to hardware video decoders. r=doublec a=blocking-basecamp 2012-12-10 23:48:58 -08:00
Paul Adenot 37399b1143 Bug 816949 - Remove IsSeekableInBufferedRange() methods as they are not needed anymore. r=cpearce 2012-12-07 14:30:03 +01:00
Paul Adenot 3650da83a5 Bug 815194 - Remove more ns prefixes on content/media classes + whitespace fixes. r=cpearce 2012-11-28 20:40:07 +01:00
Edwin Flores 4d5425e49e Bug 812756 - Set AmpleVideoFrames to the minimum to win a race when shutting down OMX.qcom.video.decoder.mpeg4 decoder r=doublec 2012-11-28 15:34:53 +13:00
Edwin Flores ad69bc93e8 Bug 812756 - Remove seeking hack from OMX decoder r=cpearce 2012-11-27 17:08:40 +13:00
Ehsan Akhgari ece376f0ad Bug 814757 - Export all decoder reader headers; r=cpearce 2012-11-23 14:52:39 -05:00
Thinker K.F. Li c0bc8ca514 Bug 805711 - check EOS against audio source for OmxDecoder. r=doublec 2012-11-24 20:25:02 +13:00
Thinker K.F. Li 33076029f1 Bug 810734 - Check EOF to avoid infinite looping when parsing MP4. r=doublec 2012-11-21 22:45:42 -05:00
Ehsan Akhgari 2389e2ea97 Bug 812032 - Refactor the media reader classes to not access MediaDecoder directly; r=cpearce 2012-11-19 10:11:21 -05:00
Chris Pearce ddedecabd0 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
Chris Pearce 5ac4df2ef3 Bug 811381 - Move media code into mozilla namespace. r=roc 2012-11-14 11:45:33 -08:00