[FFmpeg-cvslog] hevc: set profile based on the profile compatibility flags if needed
Hendrik Leppkes
git at videolan.org
Mon Feb 1 10:45:19 CET 2016
ffmpeg | branch: master | Hendrik Leppkes <h.leppkes at gmail.com> | Sat Jan 30 17:44:34 2016 +0100| [f85cc3bf12236e974403667610b39b802b8651d6] | committer: Hendrik Leppkes
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.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f85cc3bf12236e974403667610b39b802b8651d6
---
libavcodec/hevc_ps.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c
index 14f908e..64d6e2f 100644
--- a/libavcodec/hevc_ps.c
+++ b/libavcodec/hevc_ps.c
@@ -257,8 +257,12 @@ static int 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);
More information about the ffmpeg-cvslog
mailing list