@@ -1131,36 +1131,24 @@ int oapvd_vlc_metadata(oapv_bs_t *bs, u32 pbu_size, oapvm_t mid, int group_id)
11311131 payload_size += t0 ;
11321132 oapv_assert_gv (payload_size <= metadata_size , ret , OAPV_ERR_MALFORMED_BITSTREAM , ERR );
11331133
1134- if (payload_size > 0 ) {
1135- oapv_assert_gv (BSR_GET_LEFT_BYTE (bs ) >= payload_size , ret , OAPV_ERR_MALFORMED_BITSTREAM , ERR );
1136- payload_data = oapv_bsr_sink (bs );
1137-
1138- if (payload_type == OAPV_METADATA_FILLER ) {
1139- for (int i = 0 ; i < payload_size ; i ++ ) {
1140- t0 = oapv_bsr_read (bs , 8 );
1141- DUMP_HLS (payload_data , t0 );
1142- oapv_assert_gv (t0 == 0xFF , ret , OAPV_ERR_MALFORMED_BITSTREAM , ERR );
1143- }
1144- }
1145- else {
1134+ oapv_assert_gv (BSR_GET_LEFT_BYTE (bs ) >= payload_size , ret , OAPV_ERR_MALFORMED_BITSTREAM , ERR );
1135+ payload_data = oapv_bsr_sink (bs );
11461136#if ENC_DEC_DUMP
1147- for (int i = 0 ; i < payload_size ; i ++ ) {
1148- t0 = oapv_bsr_read (bs , 8 );
1149- DUMP_HLS (payload_data , t0 );
1150- }
1151- #else
1152- BSR_MOVE_BYTE_ALIGN (bs , payload_size );
1153- #endif
1154- }
1137+ for (int i = 0 ; i < payload_size ; i ++ ) {
1138+ t0 = bs -> cur [i ];
1139+ DUMP_HLS (payload_data , t0 );
11551140 }
1156- else {
1141+ #endif
1142+ if (payload_size == 0 ) {
11571143 payload_data = NULL ;
11581144 }
1145+ BSR_MOVE_BYTE_ALIGN (bs , payload_size );
11591146 ret = oapvm_set (mid , group_id , payload_type , payload_data , payload_size );
11601147 oapv_assert_g (OAPV_SUCCEEDED (ret ), ERR );
11611148 metadata_size -= payload_size ;
11621149 }
11631150 const u32 target_read_size = (pbu_size - 8 );
1151+ oapv_assert_gv (target_read_size >= (bs -> cur - bs_start_pos ), ret , OAPV_ERR_MALFORMED_BITSTREAM , ERR );
11641152 ret = oapvd_vlc_filler (bs , target_read_size - (bs -> cur - bs_start_pos ));
11651153 oapv_assert_g (OAPV_SUCCEEDED (ret ), ERR );
11661154 return OAPV_OK ;
0 commit comments