зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1378304. P1 - pass a MediaResource* to DecoderTraits::CreateReader() to reduce the use of AbstractMediaDecoder::GetResource(). r=jya
MozReview-Commit-ID: CKFiqaBznVe --HG-- extra : rebase_source : 2c78850a82ee610e794488bc90e895b8986737da extra : source : a0a827722cc16c7a5070e37497cba6e4d414aba2
This commit is contained in:
Родитель
ac1c695e0d
Коммит
d0a1126090
|
@ -339,7 +339,8 @@ DecoderTraits::CreateDecoder(MediaDecoderInit& aInit,
|
|||
/* static */
|
||||
MediaDecoderReader*
|
||||
DecoderTraits::CreateReader(const MediaContainerType& aType,
|
||||
AbstractMediaDecoder* aDecoder)
|
||||
AbstractMediaDecoder* aDecoder,
|
||||
MediaResource* aResource)
|
||||
{
|
||||
MOZ_ASSERT(NS_IsMainThread());
|
||||
MediaDecoderReader* decoderReader = nullptr;
|
||||
|
@ -351,23 +352,23 @@ DecoderTraits::CreateReader(const MediaContainerType& aType,
|
|||
#ifdef MOZ_FMP4
|
||||
if (MP4Decoder::IsSupportedType(aType,
|
||||
/* DecoderDoctorDiagnostics* */ nullptr)) {
|
||||
decoderReader = new MediaFormatReader(aDecoder, new MP4Demuxer(aDecoder->GetResource()));
|
||||
decoderReader = new MediaFormatReader(aDecoder, new MP4Demuxer(aResource));
|
||||
} else
|
||||
#endif
|
||||
if (MP3Decoder::IsSupportedType(aType)) {
|
||||
decoderReader = new MediaFormatReader(aDecoder, new MP3Demuxer(aDecoder->GetResource()));
|
||||
decoderReader = new MediaFormatReader(aDecoder, new MP3Demuxer(aResource));
|
||||
} else
|
||||
if (ADTSDecoder::IsSupportedType(aType)) {
|
||||
decoderReader = new MediaFormatReader(aDecoder, new ADTSDemuxer(aDecoder->GetResource()));
|
||||
decoderReader = new MediaFormatReader(aDecoder, new ADTSDemuxer(aResource));
|
||||
} else
|
||||
if (WaveDecoder::IsSupportedType(aType)) {
|
||||
decoderReader = new MediaFormatReader(aDecoder, new WAVDemuxer(aDecoder->GetResource()));
|
||||
decoderReader = new MediaFormatReader(aDecoder, new WAVDemuxer(aResource));
|
||||
} else
|
||||
if (FlacDecoder::IsSupportedType(aType)) {
|
||||
decoderReader = new MediaFormatReader(aDecoder, new FlacDemuxer(aDecoder->GetResource()));
|
||||
decoderReader = new MediaFormatReader(aDecoder, new FlacDemuxer(aResource));
|
||||
} else
|
||||
if (OggDecoder::IsSupportedType(aType)) {
|
||||
decoderReader = new MediaFormatReader(aDecoder, new OggDemuxer(aDecoder->GetResource()));
|
||||
decoderReader = new MediaFormatReader(aDecoder, new OggDemuxer(aResource));
|
||||
} else
|
||||
#ifdef MOZ_ANDROID_OMX
|
||||
if (MediaDecoder::IsAndroidMediaPluginEnabled() &&
|
||||
|
@ -376,8 +377,7 @@ DecoderTraits::CreateReader(const MediaContainerType& aType,
|
|||
} else
|
||||
#endif
|
||||
if (WebMDecoder::IsSupportedType(aType)) {
|
||||
decoderReader =
|
||||
new MediaFormatReader(aDecoder, new WebMDemuxer(aDecoder->GetResource()));
|
||||
decoderReader = new MediaFormatReader(aDecoder, new WebMDemuxer(aResource));
|
||||
}
|
||||
|
||||
return decoderReader;
|
||||
|
|
|
@ -21,6 +21,7 @@ class MediaContainerType;
|
|||
struct MediaDecoderInit;
|
||||
class MediaDecoderOwner;
|
||||
class MediaDecoderReader;
|
||||
class MediaResource;
|
||||
|
||||
enum CanPlayStatus {
|
||||
CANPLAY_NO,
|
||||
|
@ -50,7 +51,8 @@ public:
|
|||
// Create a reader for thew given MIME type aType. Returns null
|
||||
// if we were unable to create the reader.
|
||||
static MediaDecoderReader* CreateReader(const MediaContainerType& aType,
|
||||
AbstractMediaDecoder* aDecoder);
|
||||
AbstractMediaDecoder* aDecoder,
|
||||
MediaResource* aResource);
|
||||
|
||||
// Returns true if MIME type aType is supported in video documents,
|
||||
// or false otherwise. Not all platforms support all MIME types, and
|
||||
|
|
|
@ -193,7 +193,8 @@ MediaDecodeTask::CreateReader()
|
|||
// If you change this list to add support for new decoders, please consider
|
||||
// updating HTMLMediaElement::CreateDecoder as well.
|
||||
|
||||
mDecoderReader = DecoderTraits::CreateReader(mContainerType, mBufferDecoder);
|
||||
mDecoderReader =
|
||||
DecoderTraits::CreateReader(mContainerType, mBufferDecoder, resource);
|
||||
|
||||
if (!mDecoderReader) {
|
||||
return false;
|
||||
|
|
Загрузка…
Ссылка в новой задаче