On 1/26/2024 6:46 PM, Michael Niedermayer wrote:
It is not possible to encode a index into an empty list. Thus this must be invalid at this point or before. Its likely a broader earlier check can be used here, someone knowing VVC should look at that. Its not immedeatly obvious from the spec by looking for numlayerolss
Can you check if the following fixes it?
diff --git a/libavcodec/cbs_h266_syntax_template.c b/libavcodec/cbs_h266_syntax_template.c index 549d021211..40572dadb5 100644 --- a/libavcodec/cbs_h266_syntax_template.c +++ b/libavcodec/cbs_h266_syntax_template.c @@ -793,6 +793,7 @@ static int FUNC(vps) (CodedBitstreamContext *ctx, RWContext *rw, { //calc NumMultiLayerOlss int m; + int num_layers_in_ols = 0; uint8_t dependency_flag[VVC_MAX_LAYERS][VVC_MAX_LAYERS]; uint16_t num_output_layers_in_ols[VVC_MAX_TOTAL_NUM_OLSS]; uint8_t num_sub_layers_in_layer_in_ols[VVC_MAX_TOTAL_NUM_OLSS][VVC_MAX_TOTAL_NUM_OLSS]; @@ -895,7 +896,6 @@ static int FUNC(vps) (CodedBitstreamContext *ctx, RWContext *rw, return AVERROR_INVALIDDATA; } for (i = 1; i < total_num_olss; i++) { - int num_layers_in_ols = 0; if (current->vps_each_layer_is_an_ols_flag) { num_layers_in_ols = 1; } else if (current->vps_ols_mode_idc == 0 ||
num_layers_in_ols is not meant to be reset on every loop. _______________________________________________ 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".