mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-20 08:51:04 +00:00
Bug 1240412 - add VP9-in-MP4 support to Rust demuxer. r=rillian
MozReview-Commit-ID: 1Yq8OOV3kvM --HG-- extra : rebase_source : d6ee4404eafef8a476767ebfd17a195f81dcf275
This commit is contained in:
parent
4d6a452635
commit
2488fefb27
@ -28,6 +28,8 @@ static int MimeTypeToCodec(const nsACString& aMimeType)
|
||||
return VPXDecoder::Codec::VP8;
|
||||
} else if (aMimeType.EqualsLiteral("video/webm; codecs=vp9")) {
|
||||
return VPXDecoder::Codec::VP9;
|
||||
} else if (aMimeType.EqualsLiteral("video/vp9")) {
|
||||
return VPXDecoder::Codec::VP9;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
@ -230,7 +232,9 @@ VPXDecoder::IsVPX(const nsACString& aMimeType, uint8_t aCodecMask)
|
||||
return ((aCodecMask & VPXDecoder::VP8) &&
|
||||
aMimeType.EqualsLiteral("video/webm; codecs=vp8")) ||
|
||||
((aCodecMask & VPXDecoder::VP9) &&
|
||||
aMimeType.EqualsLiteral("video/webm; codecs=vp9"));
|
||||
aMimeType.EqualsLiteral("video/webm; codecs=vp9")) ||
|
||||
((aCodecMask & VPXDecoder::VP9) &&
|
||||
aMimeType.EqualsLiteral("video/vp9"));
|
||||
}
|
||||
|
||||
/* static */
|
||||
|
@ -244,6 +244,17 @@ bool MP4Metadata::ShouldPreferRust() const {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
numTracks = mRust->GetNumberTracks(TrackInfo::kVideoTrack);
|
||||
for (auto i = 0; i < numTracks; i++) {
|
||||
auto info = mRust->GetTrackInfo(TrackInfo::kVideoTrack, i);
|
||||
if (!info) {
|
||||
return false;
|
||||
}
|
||||
if (info->mMimeType.EqualsASCII("video/vp9")) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
// Otherwise, fall back.
|
||||
return false;
|
||||
}
|
||||
@ -286,6 +297,11 @@ MP4Metadata::Crypto() const
|
||||
bool
|
||||
MP4Metadata::ReadTrackIndex(FallibleTArray<Index::Indice>& aDest, mozilla::TrackID aTrackID)
|
||||
{
|
||||
#ifdef MOZ_RUST_MP4PARSE
|
||||
if (mRust && mPreferRust) {
|
||||
return mRust->ReadTrackIndex(aDest, aTrackID);
|
||||
}
|
||||
#endif
|
||||
return mStagefright->ReadTrackIndex(aDest, aTrackID);
|
||||
}
|
||||
|
||||
@ -731,7 +747,19 @@ MP4MetadataRust::Crypto() const
|
||||
bool
|
||||
MP4MetadataRust::ReadTrackIndex(FallibleTArray<Index::Indice>& aDest, mozilla::TrackID aTrackID)
|
||||
{
|
||||
uint8_t fragmented = false;
|
||||
int32_t rv = mp4parse_is_fragmented(mRustParser.get(), aTrackID, &fragmented);
|
||||
if (rv != MP4PARSE_OK) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (fragmented) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// For non-fragmented mp4.
|
||||
MOZ_ASSERT(false, "Not yet implemented");
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user