Bug 1304820 - use stagefright instead of rust parser when rust parser fails to parse a file. r=kinetik
MozReview-Commit-ID: 8tjl9MICvWo
--- a/media/libstagefright/binding/MP4Metadata.cpp
+++ b/media/libstagefright/binding/MP4Metadata.cpp
@@ -335,19 +335,20 @@ MP4Metadata::Crypto() const
{
return mStagefright->Crypto();
}
bool
MP4Metadata::ReadTrackIndex(FallibleTArray<Index::Indice>& aDest, mozilla::TrackID aTrackID)
{
#ifdef MOZ_RUST_MP4PARSE
- if (mRust && mPreferRust) {
- return mRust->ReadTrackIndex(aDest, aTrackID);
+ if (mRust && mPreferRust && mRust->ReadTrackIndex(aDest, aTrackID)) {
+ return true;
}
+ aDest.Clear();
#endif
return mStagefright->ReadTrackIndex(aDest, aTrackID);
}
static inline bool
ConvertIndex(FallibleTArray<Index::Indice>& aDest,
const nsTArray<stagefright::MediaSource::Indice>& aIndex,
int64_t aMediaTime)
@@ -834,17 +835,17 @@ MP4MetadataRust::ReadTrackIndex(Fallible
return false;
}
if (fragmented) {
return true;
}
// For non-fragmented mp4.
- MOZ_ASSERT(false, "Not yet implemented");
+ NS_WARNING("Not yet implemented");
return false;
}
/*static*/ bool
MP4MetadataRust::HasCompleteMetadata(Stream* aSource)
{
MOZ_ASSERT(false, "Not yet implemented");