Bug 1304254 - Use fragment_duration as track duration. r=rillian
MozReview-Commit-ID: 6Y8kFiDmE1y
--- a/media/libstagefright/binding/MP4Metadata.cpp
+++ b/media/libstagefright/binding/MP4Metadata.cpp
@@ -800,16 +800,25 @@ MP4MetadataRust::GetTrackInfo(mozilla::T
}
break;
default:
MOZ_LOG(sLog, LogLevel::Warning, ("unhandled track type %d", aType));
return nullptr;
break;
}
+ // No duration in track, use fragment_duration.
+ if (e && !e->mDuration) {
+ mp4parse_fragment_info info;
+ auto rv = mp4parse_get_fragment_info(mRustParser.get(), &info);
+ if (rv == MP4PARSE_OK) {
+ e->mDuration = info.fragment_duration;
+ }
+ }
+
if (e && e->IsValid()) {
return e;
}
MOZ_LOG(sLog, LogLevel::Debug, ("TrackInfo didn't validate"));
return nullptr;
}