Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problems
I noticed a few issues of MOV and MP4 parsing.
Problem 1: Duration is in wrong format.
Problem 2: This QuickTime video should have 24-bit depth, but it shows 0. Also, Depth always shows Unknown (*).
Problem 3: [QuickTime Video] Frame Rate tag is missing. Error at the end of [QuickTime Video] section.
Problem 4: [MP4 Video] Vendor, Temporal Quality and [MP4 Sound] Format tags have wrong values.
Problem 5: 'JVT/AVC Coding' should be Compressor Name, and 'H.264' should be Compression Type.
Solutions
getDurationDescription()
is called onTAG_DURATION_SECONDS
, not onTAG_DURATION
.The Compressor Name value was read as a variable length string, so the offsets for the following values were wrong. This was fixed. Also, the description for Depth tag was improved.
TimeToSampleAtom
was wrongly parsed. Removed extra reads, and fix the frame rate calculation.Some tag IDs in
Mp4VideoDirectory
andMp4SoundDirectory
conflicted with ones inMp4MediaDirectory
. This was a problem because they are subclasses ofMp4MediaDirectory
. Shifted IDs in these directories.Added
Mp4SoundDirectory.TAG_AUDIO_FORMAT
andMp4VideoDirectory.TAG_COMPRESSION_TYPE
parsing. Also, added empty checking ofTAG_COMPRESSOR_NAME
.Here is the output of the fixed code.