On Thu, Aug 21, 2014 at 02:06:39AM +0200, Christophe Gisquet wrote: > Hi, > > ticket #3872 is about a regression on decoding of hevc: > https://trac.ffmpeg.org/ticket/3872 > > The reason is a stricter validation is now performed since 5ec85c97. > > The sequence seems invalid to me, as it seems the SPS was truncated or > corrupted somewhere in the VUI. But if we ignore the a priori invalid > SPS, the sequence actually decodes fine. > > It seems impossible to detect when this occurs: > - A local test by remuxing hevc ES streams into mkv with mkvtoolnix > 7.1.0 yielded valid streams, so this muxer is maybe not responsible > (the file may have actually been transmuxed); > - I don't see any obvious extra/userdata or anything allowing to > identify the encoder (is it x265? the information has been stripped so > it may be another encoder). > > The metadata (I bet irrelevant here) of this file, as found on > ffmpeg's stdout, can be seen in the attached metadata.txt file >
> I'm trying to dig more information to see how narrow a fix could be. > H.264 in that case simply rejects the data. heres a narrower solution for this file not sure its better i can apply whichever you prefer, probably we wont find out which is the best solution before pushing something and waiting for more bug reports diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c index 2ccce5f..64fb04b 100644 --- a/libavcodec/hevc_ps.c +++ b/libavcodec/hevc_ps.c @@ -552,6 +552,13 @@ static void decode_vui(HEVCContext *s, HEVCSPS *sps) vui->vui_timing_info_present_flag = get_bits1(gb); if (vui->vui_timing_info_present_flag) { + if (get_bits_left(gb) < 66) { + av_log(s->avctx, AV_LOG_WARNING, + "VUI timing information truncated, %d bits left\n", + get_bits_left(gb) + ); + return; + } vui->vui_num_units_in_tick = get_bits_long(gb, 32); vui->vui_time_scale = get_bits_long(gb, 32); vui->vui_poc_proportional_to_timing_flag = get_bits1(gb); [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB The real ebay dictionary, page 2 "100% positive feedback" - "All either got their money back or didnt complain" "Best seller ever, very honest" - "Seller refunded buyer after failed scam"
signature.asc
Description: Digital signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel