[FFmpeg-devel] [PATCH 6/7] ffv1: use standard syntax for indexing state

Lynne dev at lynne.ee
Sun Nov 10 09:46:07 EET 2024


On 11/10/24 02:36, Michael Niedermayer wrote:
> On Sat, Nov 09, 2024 at 08:22:25AM +0100, Lynne via ffmpeg-devel wrote:
>> It isn't immediately obvious what indexing this array does.
>> Use standard syntax instead.
>> ---
>>   libavcodec/ffv1.h             | 2 +-
>>   libavcodec/ffv1dec_template.c | 2 +-
>>   libavcodec/ffv1enc_template.c | 4 ++--
>>   3 files changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/libavcodec/ffv1.h b/libavcodec/ffv1.h
>> index 2af457be27..ed71e238e0 100644
>> --- a/libavcodec/ffv1.h
>> +++ b/libavcodec/ffv1.h
>> @@ -63,7 +63,7 @@ typedef struct VlcState {
>>   typedef struct PlaneContext {
>>       int quant_table_index;
>>       int context_count;
>> -    uint8_t (*state)[CONTEXT_SIZE];
>> +    uint8_t *state;
>>       VlcState *vlc_state;
>>   } PlaneContext;
>>   
>> diff --git a/libavcodec/ffv1dec_template.c b/libavcodec/ffv1dec_template.c
>> index 2da6bd935d..3c95741b32 100644
>> --- a/libavcodec/ffv1dec_template.c
>> +++ b/libavcodec/ffv1dec_template.c
>> @@ -71,7 +71,7 @@ RENAME(decode_line)(FFV1Context *f, FFV1SliceContext *sc,
>>           av_assert2(context < p->context_count);
>>   
>>           if (ac != AC_GOLOMB_RICE) {
>> -            diff = get_symbol_inline(c, p->state[context], 1);
>> +            diff = get_symbol_inline(c, &p->state[32*context], 1);
>>           } else {
>>               if (context == 0 && run_mode == 0)
>>                   run_mode = 1;
>> diff --git a/libavcodec/ffv1enc_template.c b/libavcodec/ffv1enc_template.c
>> index bc14926ab9..e17e40a327 100644
>> --- a/libavcodec/ffv1enc_template.c
>> +++ b/libavcodec/ffv1enc_template.c
>> @@ -75,10 +75,10 @@ RENAME(encode_line)(FFV1Context *f, FFV1SliceContext *sc,
>>   
>>           if (ac != AC_GOLOMB_RICE) {
>>               if (pass1) {
>> -                put_symbol_inline(c, p->state[context], diff, 1, sc->rc_stat,
>> +                put_symbol_inline(c, &p->state[32*context], diff, 1, sc->rc_stat,
>>                                     sc->rc_stat2[p->quant_table_index][context]);
>>               } else {
>> -                put_symbol_inline(c, p->state[context], diff, 1, NULL, NULL);
>> +                put_symbol_inline(c, &p->state[32*context], diff, 1, NULL, NULL);
> I would prefer that a comment is added to "uint8_t (*state)[CONTEXT_SIZE];"
> if its unclear what it represents.
>
> Also the "32" is hardcoded and duplicates in the patch which is bad if it
> needs to be changed
>
> thx
>
> [...]


Yeah, it was just not syntax I had encountered before.

Consider this patch dropped.


More information about the ffmpeg-devel mailing list