Changes since v1: - Added a flag to force sps, pps, iraq to appear in order; - Modified score where pps, iraq appeared in the wrong position; - Set a smaller score for incomplete sps, pps, iraq to deal with situations that may look like vvc format
Signed-off-by: xiongweixiao <xiongweixiao...@gmail.com> --- libavformat/vvcdec.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/libavformat/vvcdec.c b/libavformat/vvcdec.c index 573b352f41..1d7be17258 100644 --- a/libavformat/vvcdec.c +++ b/libavformat/vvcdec.c @@ -44,6 +44,7 @@ static int vvc_probe(const AVProbeData *p) { uint32_t code = -1; int sps = 0, pps = 0, irap = 0; + int valid_pps = 0, valid_irap = 0; int i; for (i = 0; i < p->buf_size - 1; i++) { @@ -60,17 +61,29 @@ static int vvc_probe(const AVProbeData *p) switch (type) { case VVC_SPS_NUT: sps++; break; - case VVC_PPS_NUT: if (sps) pps++; break; + case VVC_PPS_NUT: + pps++; + if (sps) + valid_pps++; + break; case VVC_IDR_N_LP: case VVC_IDR_W_RADL: case VVC_CRA_NUT: - case VVC_GDR_NUT: if (pps) irap++; break; + case VVC_GDR_NUT: + irap++; + if (valid_pps) + valid_irap++; + break; } } } - if (sps && pps && irap) + if (valid_irap) return AVPROBE_SCORE_EXTENSION + 1; // 1 more than .mpg + if (sps && pps && irap) + return AVPROBE_SCORE_EXTENSION / 2; + if (sps || pps || irap) + return AVPROBE_SCORE_EXTENSION / 4; return 0; } -- 2.34.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".