hevc: set profile based on the profile compatibility flags if needed

This fixes retrieving a valid profile for many of the FATE conformance samples,
allowing them to be properly decoded by the HWAccel after adding a profile check.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
pull/249/merge
Hendrik Leppkes 9 years ago committed by Anton Khirnov
parent fca3c3b619
commit 1ecb63cd1c
  1. 6
      libavcodec/hevc_ps.c

@ -244,8 +244,12 @@ static void decode_profile_tier_level(GetBitContext *gb, AVCodecContext *avctx,
else else
av_log(avctx, AV_LOG_WARNING, "Unknown HEVC profile: %d\n", ptl->profile_idc); av_log(avctx, AV_LOG_WARNING, "Unknown HEVC profile: %d\n", ptl->profile_idc);
for (i = 0; i < 32; i++) for (i = 0; i < 32; i++) {
ptl->profile_compatibility_flag[i] = get_bits1(gb); ptl->profile_compatibility_flag[i] = get_bits1(gb);
if (ptl->profile_idc == 0 && i > 0 && ptl->profile_compatibility_flag[i])
ptl->profile_idc = i;
}
ptl->progressive_source_flag = get_bits1(gb); ptl->progressive_source_flag = get_bits1(gb);
ptl->interlaced_source_flag = get_bits1(gb); ptl->interlaced_source_flag = get_bits1(gb);
ptl->non_packed_constraint_flag = get_bits1(gb); ptl->non_packed_constraint_flag = get_bits1(gb);

Loading…
Cancel
Save