• Matt Wolenetz's avatar
    MSE: refactor mp4 AnnexB validation to also report keyframe-ness · 568cc6a9
    Matt Wolenetz authored
    In preparation for logging when there appears to be a mismatch between
    MSE MP4 keyframe metadata and the encoded video bitstream's keyframe
    metadata, this change incorporates basic analysis of the latter as part
    of the existing Annex-B bitstream validation for MSE MP4 video.
    
    Note that mp4::BitstreamConverter::AnalysisResult contains
    base::Optional<bool> for each of conformance and keyframe-ness fields.
    If a field doesn't have a value, that portion of the result was not
    analyzed.
    
    Note that keyframe analysis is implemented only for AVC currently, but
    even that is skipped if the frame is detected as non-conformant before
    enough indications of whether or not it is a keyframe are detected.
    Neither AVC-DV nor HEVC AnnexB analyses do any actual keyframe analysis,
    since such was either skipped or not yet implemented previously,
    respectively.
    
    A subsequent CL will use the newly reported MSE MP4 video bitstream
    converter's keyframe analysis results, if that analysis was done, in
    reporting to chrome://media-internals when the bitstream keyframe-ness
    mismatches that of the mp4 container for a coded frame.
    
    BUG=860420,584384
    
    Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
    Change-Id: I169c7774070ad232c86658bcd7803160323993ad
    Reviewed-on: https://chromium-review.googlesource.com/1144456
    Commit-Queue: Matthew Wolenetz <wolenetz@chromium.org>
    Reviewed-by: default avatarSergey Volk <servolk@chromium.org>
    Reviewed-by: default avatarDan Sanders <sandersd@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#577717}
    568cc6a9
avc_unittest.cc 18.1 KB