[FFmpeg-devel] [PATCH] [MXF] - Add jpeg2000 subdescriptor in MXF file (V2).

Cédric Le Barz clebarz at ektacom.com
Fri Dec 22 10:58:31 EET 2023


Le 21/12/2023 à 12:11, Tomas Härdin a écrit :
> ons 2023-12-20 klockan 18:04 +0100 skrev Cédric Le Barz:
>> Le 19/12/2023 à 14:36, Tomas Härdin a écrit :
>>>> +    for ( comp = 0; comp < component_count; comp++ ) {
>>>> +        avio_write(pb, &sc->j2k_info.j2k_comp_desc[3*comp] , 3);
>>>> +    }
>>> Looks like this could be simplified to just
>>>
>>>     avio_write(pb, sc->j2k_info.j2k_comp_desc, 3*component_count);
>>>
>>>> +    if (j2k_ncomponents != component_count) {
>>>> +        av_log(s, AV_LOG_ERROR, "Incoherence about components
>>>> image
>>>> number.\n");
>>>> +    }
>>> I again feel this should be a hard error
>>>
>>>> +    for (comp = 0; comp < j2k_ncomponents; comp++) {
>>>> +        sc->j2k_info.j2k_comp_desc[comp*j2k_ncomponents] =
>>>> bytestream2_get_byteu(&g);   // Bitdepth for each component
>>>> +        sc->j2k_info.j2k_comp_desc[comp*j2k_ncomponents+1] =
>>>> bytestream2_get_byteu(&g); // Horizontal sampling for each
>>>> component
>>>> +        sc->j2k_info.j2k_comp_desc[comp*j2k_ncomponents+2] =
>>>> bytestream2_get_byteu(&g); // Vertical sampling for each
>>>> component
>>>> +    }
>>> Could be simplified to a single avio_read()
>>>
>>> /Tomas
>>> _______________________________________________
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel at ffmpeg.org
>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>
>>> To unsubscribe, visit link above, or email
>>> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>> Here is the new version of the patch taken into account your remarks.
> Looks OK. Does this also work with RGB(A)? Seems to not be hardcoded
> for YUV at least. Higher bitdepths would also be nice, I've been
> working with lossless RGB48 J2K. Doesn't necessarily need to hold up
> this patch, just curious.
>
> /Tomas

Any J2K bitdepth can be handled with this patch (up to 31 bits per 
component).

Concerning RGBA, The JPEG 2000 sub-descriptor can be referenced either 
by the CDCI picture essence descriptor or the RGBA picture essence 
descriptor both of which are defined by SMPTE ST 377-1. In this patch it 
is only referenced by the CDCI as the RGBA essence descriptor is not yet 
implemented in FFmpeg.   Nevertheless, I think it should work too with 
CDCI essence descriptor : if you have such data, you can try.

Cédric





More information about the ffmpeg-devel mailing list