[FFmpeg-devel] [PATCH RFC 0/6] MP4 editlist and HEVC decoder
Zhao Zhili
quinkblack at foxmail.com
Tue Mar 18 14:58:24 EET 2025
From: Zhao Zhili <zhilizhao at tencent.com>
Fix #11510
#11510 revealed multiple issues related to mp4 demuxer, hevc decoder
and videotoolbox.
1. mp4 demuxer output packets have rewind due to editlist,
POC POC
916 -----------> 944
then rewind back to
916 -----------> 944 942
2. Both POC 916 and POC 944 are CRA nalu, so no flush on output.
3. When decoding POC the second time, POC still inside DPB buffer.
Patch 1/6 fix videotoolbox which shouldn't reset when confronted with
ReferenceMissingErr
Patch 2/6 is trial.
Patch 3/6 allow duplicated POC in DPB buffer. I'm not quite sure the
side effect.
Patch 4 to 6 add a flag to indicate the start of a new sequence, so
the decoder can flush on output. I know it looks suspicious, please
comment.
There are more general stream rewind issues to be resolved.
Zhao Zhili (6):
avcodec/vt: Don't restart decoder when confronted with
ReferenceMissingErr
avformat/mov: generalize sgpd_sync index lookup
avcodec/hevc: Don't drop packet with duplicate POC
avcodec/packet: Add AV_PKT_FLAG_NEW_SEQUENCE flag
avformat/mov: Notify new sequence at the start of editlist
avcodec/hevc: Check AV_PKT_FLAG_NEW_SEQUENCE and flush pictures out
libavcodec/hevc/hevcdec.c | 3 +++
libavcodec/hevc/refs.c | 4 ++--
libavcodec/packet.h | 10 ++++++++++
libavcodec/videotoolbox.c | 10 ++++++----
libavformat/avformat.h | 2 ++
libavformat/mov.c | 21 ++++++++++++++-------
6 files changed, 37 insertions(+), 13 deletions(-)
--
2.46.0
More information about the ffmpeg-devel
mailing list