Andreas Rheinhardt <andreas.rheinha...@outlook.com>:
> 发送时间: 2025年4月25日 15:11
> 收件人: ffmpeg-devel@ffmpeg.org <ffmpeg-devel@ffmpeg.org>
> 主题: Re: [FFmpeg-devel] [PATCH v1 03/19] avcodec/vvc/sei: add 
> decode_film_grain_characteristics
>
> toq...@gmail.com:
>> From: Wu Jianhua <toq...@outlook.com>
>>
>> Signed-off-by: Wu Jianhua <toq...@outlook.com>
>> ---
>>  libavcodec/vvc/sei.c | 66 ++++++++++++++++++++++++++++++++++++++++++++
>>  1 file changed, 66 insertions(+)
>>
>> diff --git a/libavcodec/vvc/sei.c b/libavcodec/vvc/sei.c
>> index 2842862a36..365f815950 100644
>> --- a/libavcodec/vvc/sei.c
>> +++ b/libavcodec/vvc/sei.c
>> @@ -24,15 +24,81 @@
>>  #include "dec.h"
>>  #include "libavutil/refstruct.h"
>>
>> +static int 
>> decode_film_grain_characteristics(H2645SEIFilmGrainCharacteristics *h, const 
>> SEIRawFilmGrainCharacteristics *s, const VVCFrameContext *fc)
>> +{
>> +    const VVCSPS *sps = fc->ps.sps;
>> +
>> +    h->present = !s->fg_characteristics_cancel_flag;
>> +    if (h->present) {
>> +        h->model_id                                 = s->fg_model_id;
>> +        h->separate_colour_description_present_flag = 
>> s->fg_separate_colour_description_present_flag;
>> +        if (h->separate_colour_description_present_flag) {
>> +            h->bit_depth_luma           =  s->fg_bit_depth_luma_minus8 + 8;
>> +            h->bit_depth_chroma         =  s->fg_bit_depth_chroma_minus8 + 
>> 8;
>> +            h->full_range               =  s->fg_full_range_flag;
>> +            h->color_primaries          =  s->fg_colour_primaries;
>> +            h->transfer_characteristics =  s->fg_transfer_characteristics;
>> +            h->matrix_coeffs            =  s->fg_matrix_coeffs;
>> +        }  else {
>> +            if (!sps) {
>> +                av_log(fc->log_ctx, AV_LOG_ERROR,
>> +                    "No active SPS for film_grain_characteristics.\n");
>> +                return AVERROR_INVALIDDATA;
>> +            }
>> +            h->bit_depth_luma           = sps->bit_depth;
>> +            h->bit_depth_chroma         = sps->bit_depth;
>> +            h->full_range               = sps->r->vui.vui_full_range_flag;
>> +            h->color_primaries          = sps->r->vui.vui_colour_primaries;
>> +            h->transfer_characteristics = 
>> sps->r->vui.vui_transfer_characteristics;
>> +            h->matrix_coeffs            = sps->r->vui.vui_matrix_coeffs ;
>> +        }
>> +
>> +        h->blending_mode_id  =  s->fg_blending_mode_id;
>> +        h->log2_scale_factor =  s->fg_log2_scale_factor;
>> +
>> +        for (int c = 0; c < 3; c++) {
>> +            h->comp_model_present_flag[c] = 
>> s->fg_comp_model_present_flag[c];
>> +            if (h->comp_model_present_flag[c]) {
>> +                h->num_intensity_intervals[c] = 
>> s->fg_num_intensity_intervals_minus1[c] + 1;
>> +                h->num_model_values[c]        = 
>> s->fg_num_model_values_minus1[c] + 1;
>> +
>> +                if (h->num_model_values[c] > 6)
>> +                    return AVERROR_INVALIDDATA;
>> +
>> +                for (int i = 0; i < h->num_intensity_intervals[c]; i++) {
>> +                    h->intensity_interval_lower_bound[c][i] = 
>> s->fg_intensity_interval_lower_bound[c][i];
>> +                    h->intensity_interval_upper_bound[c][i] = 
>> s->fg_intensity_interval_upper_bound[c][i];
>> +                    for (int j = 0; j < h->num_model_values[c]; j++)
>> +                        h->comp_model_value[c][i][j] = 
>> s->fg_comp_model_value[c][i][j];
>> +                }
>> +            }
>> +        }
>> +
>> +        h->persistence_flag = s->fg_characteristics_persistence_flag;
>> +    }
>> +
>> +    return 0;
>> +}
>> +
>
> This is a gigantic translation from CBS to h2645_sei. Several of the
> latter patches do likewise. Is it really beneficial to use h2645_sei,
> given that you do not use it for parsing?
>

Hi Andreas,

Yeah. The VVC decoder used the cbs to parse the sei message. The reason why
we need to translate the cbs to h2645 sei is that we want to use 
ff_h2645_sei_to_frame
to export the side data so the user can use the film grain sei or other sei, 
the same
as hevc/h264.

Thanks,
Jianhua
_______________________________________________
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".

Reply via email to