[FFmpeg-devel] [PATCH 2/3] avcodec/j2kenc: Add alpha support

Leo Izen leo.izen at gmail.com
Thu Apr 6 17:15:48 EEST 2023



On 4/2/23 17:34, Michael Niedermayer wrote:
> On Fri, Mar 31, 2023 at 01:14:40AM +0200, Michael Niedermayer wrote:
>> Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
>> ---
>>   libavcodec/j2kenc.c | 28 ++++++++++++++++++----------
>>   1 file changed, 18 insertions(+), 10 deletions(-)
>>
>> diff --git a/libavcodec/j2kenc.c b/libavcodec/j2kenc.c
>> index 97b0da1c976..b23fb73770a 100644
>> --- a/libavcodec/j2kenc.c
>> +++ b/libavcodec/j2kenc.c
>> @@ -320,8 +320,8 @@ static int put_siz(Jpeg2000EncoderContext *s)
>>   
>>       for (i = 0; i < s->ncomponents; i++){ // Ssiz_i XRsiz_i, YRsiz_i
>>           bytestream_put_byte(&s->buf, s->cbps[i] - 1);
>> -        bytestream_put_byte(&s->buf, i?1<<s->chroma_shift[0]:1);
>> -        bytestream_put_byte(&s->buf, i?1<<s->chroma_shift[1]:1);
>> +        bytestream_put_byte(&s->buf, (i%3)?1<<s->chroma_shift[0]:1);
>> +        bytestream_put_byte(&s->buf, (i%3)?1<<s->chroma_shift[1]:1);
> 
> i will replace the %3 by +1&2 to avoid slow modulo before applying
> 
> 

(i % 3) and (i + 1) & 2 aren't the same tho, and won't be nonzero at the 
same time. `(i + 1) & 2` is equivalent to `(i + 1) % 4`.

- Leo Izen (thebombzen)



More information about the ffmpeg-devel mailing list