Edwin Flores
c637986ec6
Bug 945864 - Remove buggy MediaOmxReader::GetBuffered method override r=cpearce
2014-01-14 12:38:40 +13:00
Sotaro Ikeda
6bb9ea150f
Bug 948005 - Release reasources in MediaOmxReader's destructor. r=doublec
2014-01-07 09:44:02 -05:00
Sotaro Ikeda
683dfca3a0
Bug 941274 - Fix ResetDecode in MediaOmxReader. r=doublec
2013-12-02 22:38:16 -05:00
Sotaro Ikeda
2f8ac74186
Bug 932076 - Add check for MediaExtractor creation failure. r=doublec
2013-10-30 15:41:07 -04: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
Sotaro Ikeda
b019369717
Bug 925381 - Fix mpeg4 video seek failure. r=nical, r=doublec
2013-10-17 11:09:15 -04:00
Benjamin Chen
a9ca45668c
Bug 831645 - part2, Rtsp media resource and decoder. r=roc, doublec, sworkman, khuey, gps
2013-09-23 17:53:36 +08:00
Thomas Zimmermann
568572011d
Bug 924678: Explicitly clear OmxDecoder::mDecoder, r=doublec
...
The MediaDecoderStateMachine frees the Decoder during its own
shutdown. If the the MediaDecoderStateMachine for an MP3 file
gets cleaned up before the MP3 frame parser is finished, the
OmxDecoder operates with an invalid Decoder.
With this patch, the MediaDecoderStateMachine informs the
OmxDecoder to clear the decoder field. The MP3 parser logic
detects this case and returns.
--HG--
extra : rebase_source : 0a00de3cf7b95ede77408e5d43cccbcd706750cd
2013-10-14 10:38:17 +02: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
Chris Pearce
5f3cb23252
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
Thomas Zimmermann
b0f7962d2b
Bug 831224: Parse MP3 frame headers in OmxDecoder, r=padenot
...
On FirefoxOS, the Android libraries estimate the duration of MP3 streams
by examining the first MP3 frame header. This only works for streams with
constant bit rate. For streams with variable bit rate, a too short or too
long duration is computed.
This patch adds support for parsing MP3 frame headers. The decoder handles
file streams by reading them at once at the beginning and parsing them
immediately. Network streams are updated when a new fragment arrives.
2013-01-24 13:38:32 +01:00
Ed Morley
2ac38e590a
Backed out changeset e334b3139e2a (bug 831224)
2013-08-08 09:59:45 -07:00
Thomas Zimmermann
04820e6a7e
Bug 831224: Parse MP3 frame headers in OmxDecoder, r=padenot
...
On FirefoxOS, the Android libraries estimate the duration of MP3 streams
by examining the first MP3 frame header. This only works for streams with
constant bit rate. For streams with variable bit rate, a too short or too
long duration is computed.
This patch adds support for parsing MP3 frame headers. The decoder handles
file streams by reading them at once at the beginning and parsing them
immediately. Network streams are updated when a new fragment arrives.
--HG--
extra : rebase_source : bffb9447a5fdba4145e83f5aeb3c2accfb7872d6
2013-01-24 13:38:32 +01:00
Sotaro Ikeda
2d645addc3
Bug 883744 - add pointer null check r=doublec
2013-06-22 08:58:12 -04:00
Robert O'Callahan
4ec5ce6398
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
2d8e4dae08
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
a1197b8439
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
Chris Pearce
c8081a14c7
Bug 862182. r=roc,doublec
2013-05-03 10:59:18 +12:00
Chris Pearce
3262662a85
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
37aa644c0a
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
Diego Wilson
6e5ca76079
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
1ae52b18d9
Bug 837051 - Store less buffers for video playback at MediaOmxReader. r=doublec
2013-04-08 14:35:30 -04:00
Diego Wilson
5e131253f0
Bug 847779 - Abort playback if OMX audio init fails. r=doublec, r=cpearce
2013-04-04 15:33:45 -07:00
Andrea Marchesini
8eaecd7c18
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
Sotaro Ikeda
a4a7b25f49
Bug 840154 - Do not release MediaBuffer during OMXCodec is seeking. r=cdouble
2013-02-15 21:27:18 -05:00
Ehsan Akhgari
c78c1b8384
Bug 792263 - Implement decodeAudioData; r=bzbarsky,cpearce,padenot
2013-02-01 17:13:23 -05: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
Edwin Flores
92700449d1
Bug 812756 - Remove seeking hack from OMX decoder r=cpearce
2012-11-27 17:08:40 +13: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