summaryrefslogtreecommitdiffstats
path: root/libavcodec/hevc_ps.c
diff options
context:
space:
mode:
authorHendrik Leppkes <h.leppkes@gmail.com>2016-01-30 17:44:34 +0100
committerAnton Khirnov <anton@khirnov.net>2016-07-20 16:33:09 +0200
commit1ecb63cd1c1a4ddc5efed4abbc3158b969d8c5e4 (patch)
treef15ecd6e3908ef7a40bef9b0490bc474b2edab3c /libavcodec/hevc_ps.c
parentfca3c3b61952aacc45e9ca54d86a762946c21942 (diff)
downloadffmpeg-streaming-1ecb63cd1c1a4ddc5efed4abbc3158b969d8c5e4.zip
ffmpeg-streaming-1ecb63cd1c1a4ddc5efed4abbc3158b969d8c5e4.tar.gz
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>
Diffstat (limited to 'libavcodec/hevc_ps.c')
-rw-r--r--libavcodec/hevc_ps.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c
index 583fa06..5c249d8 100644
--- a/libavcodec/hevc_ps.c
+++ b/libavcodec/hevc_ps.c
@@ -244,8 +244,12 @@ static void decode_profile_tier_level(GetBitContext *gb, AVCodecContext *avctx,
else
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);
+
+ if (ptl->profile_idc == 0 && i > 0 && ptl->profile_compatibility_flag[i])
+ ptl->profile_idc = i;
+ }
ptl->progressive_source_flag = get_bits1(gb);
ptl->interlaced_source_flag = get_bits1(gb);
ptl->non_packed_constraint_flag = get_bits1(gb);
OpenPOWER on IntegriCloud