Cosmetic change in preparation for the following patches. Signed-off-by: James Almer <jamrial@gmail.com>tags/n4.4
| @@ -130,6 +130,38 @@ typedef struct AV1RawSequenceHeader { | |||
| uint8_t film_grain_params_present; | |||
| } AV1RawSequenceHeader; | |||
| typedef struct AV1RawFilmGrainParams { | |||
| uint8_t apply_grain; | |||
| uint16_t grain_seed; | |||
| uint8_t update_grain; | |||
| uint8_t film_grain_params_ref_idx; | |||
| uint8_t num_y_points; | |||
| uint8_t point_y_value[14]; | |||
| uint8_t point_y_scaling[14]; | |||
| uint8_t chroma_scaling_from_luma; | |||
| uint8_t num_cb_points; | |||
| uint8_t point_cb_value[10]; | |||
| uint8_t point_cb_scaling[10]; | |||
| uint8_t num_cr_points; | |||
| uint8_t point_cr_value[10]; | |||
| uint8_t point_cr_scaling[10]; | |||
| uint8_t grain_scaling_minus_8; | |||
| uint8_t ar_coeff_lag; | |||
| uint8_t ar_coeffs_y_plus_128[24]; | |||
| uint8_t ar_coeffs_cb_plus_128[25]; | |||
| uint8_t ar_coeffs_cr_plus_128[25]; | |||
| uint8_t ar_coeff_shift_minus_6; | |||
| uint8_t grain_scale_shift; | |||
| uint8_t cb_mult; | |||
| uint8_t cb_luma_mult; | |||
| uint16_t cb_offset; | |||
| uint8_t cr_mult; | |||
| uint8_t cr_luma_mult; | |||
| uint16_t cr_offset; | |||
| uint8_t overlap_flag; | |||
| uint8_t clip_to_restricted_range; | |||
| } AV1RawFilmGrainParams; | |||
| typedef struct AV1RawFrameHeader { | |||
| uint8_t show_existing_frame; | |||
| uint8_t frame_to_show_map_idx; | |||
| @@ -251,35 +283,7 @@ typedef struct AV1RawFrameHeader { | |||
| //AV1RawSubexp gm_params[AV1_TOTAL_REFS_PER_FRAME][6]; | |||
| uint32_t gm_params[AV1_TOTAL_REFS_PER_FRAME][6]; | |||
| uint8_t apply_grain; | |||
| uint16_t grain_seed; | |||
| uint8_t update_grain; | |||
| uint8_t film_grain_params_ref_idx; | |||
| uint8_t num_y_points; | |||
| uint8_t point_y_value[14]; | |||
| uint8_t point_y_scaling[14]; | |||
| uint8_t chroma_scaling_from_luma; | |||
| uint8_t num_cb_points; | |||
| uint8_t point_cb_value[10]; | |||
| uint8_t point_cb_scaling[10]; | |||
| uint8_t num_cr_points; | |||
| uint8_t point_cr_value[10]; | |||
| uint8_t point_cr_scaling[10]; | |||
| uint8_t grain_scaling_minus_8; | |||
| uint8_t ar_coeff_lag; | |||
| uint8_t ar_coeffs_y_plus_128[24]; | |||
| uint8_t ar_coeffs_cb_plus_128[25]; | |||
| uint8_t ar_coeffs_cr_plus_128[25]; | |||
| uint8_t ar_coeff_shift_minus_6; | |||
| uint8_t grain_scale_shift; | |||
| uint8_t cb_mult; | |||
| uint8_t cb_luma_mult; | |||
| uint16_t cb_offset; | |||
| uint8_t cr_mult; | |||
| uint8_t cr_luma_mult; | |||
| uint16_t cr_offset; | |||
| uint8_t overlap_flag; | |||
| uint8_t clip_to_restricted_range; | |||
| AV1RawFilmGrainParams film_grain; | |||
| } AV1RawFrameHeader; | |||
| typedef struct AV1RawTileData { | |||
| @@ -1194,7 +1194,8 @@ static int FUNC(global_motion_params)(CodedBitstreamContext *ctx, RWContext *rw, | |||
| } | |||
| static int FUNC(film_grain_params)(CodedBitstreamContext *ctx, RWContext *rw, | |||
| AV1RawFrameHeader *current) | |||
| AV1RawFilmGrainParams *current, | |||
| AV1RawFrameHeader *frame_header) | |||
| { | |||
| CodedBitstreamAV1Context *priv = ctx->priv_data; | |||
| const AV1RawSequenceHeader *seq = priv->sequence_header; | |||
| @@ -1202,7 +1203,7 @@ static int FUNC(film_grain_params)(CodedBitstreamContext *ctx, RWContext *rw, | |||
| int i, err; | |||
| if (!seq->film_grain_params_present || | |||
| (!current->show_frame && !current->showable_frame)) | |||
| (!frame_header->show_frame && !frame_header->showable_frame)) | |||
| return 0; | |||
| flag(apply_grain); | |||
| @@ -1212,7 +1213,7 @@ static int FUNC(film_grain_params)(CodedBitstreamContext *ctx, RWContext *rw, | |||
| fb(16, grain_seed); | |||
| if (current->frame_type == AV1_FRAME_INTER) | |||
| if (frame_header->frame_type == AV1_FRAME_INTER) | |||
| flag(update_grain); | |||
| else | |||
| infer(update_grain, 1); | |||
| @@ -1635,7 +1636,7 @@ static int FUNC(uncompressed_header)(CodedBitstreamContext *ctx, RWContext *rw, | |||
| CHECK(FUNC(global_motion_params)(ctx, rw, current)); | |||
| CHECK(FUNC(film_grain_params)(ctx, rw, current)); | |||
| CHECK(FUNC(film_grain_params)(ctx, rw, ¤t->film_grain, current)); | |||
| av_log(ctx->log_ctx, AV_LOG_DEBUG, "Frame %d: size %dx%d " | |||
| "upscaled %d render %dx%d subsample %dx%d " | |||
| @@ -42,6 +42,7 @@ static int nvdec_av1_start_frame(AVCodecContext *avctx, const uint8_t *buffer, u | |||
| const AV1DecContext *s = avctx->priv_data; | |||
| const AV1RawSequenceHeader *seq = s->raw_seq; | |||
| const AV1RawFrameHeader *frame_header = s->raw_frame_header; | |||
| const AV1RawFilmGrainParams *film_grain = &frame_header->film_grain; | |||
| NVDECContext *ctx = avctx->internal->hwaccel_priv_data; | |||
| CUVIDPICPARAMS *pp = &ctx->pic_params; | |||
| @@ -54,7 +55,7 @@ static int nvdec_av1_start_frame(AVCodecContext *avctx, const uint8_t *buffer, u | |||
| int ret, i, j; | |||
| ret = ff_nvdec_start_frame_sep_ref(avctx, cur_frame, frame_header->apply_grain); | |||
| ret = ff_nvdec_start_frame_sep_ref(avctx, cur_frame, film_grain->apply_grain); | |||
| if (ret < 0) | |||
| return ret; | |||
| @@ -181,24 +182,24 @@ static int nvdec_av1_start_frame(AVCodecContext *avctx, const uint8_t *buffer, u | |||
| .spatial_layer_id = s->cur_frame.spatial_id, | |||
| /* Film Grain Params */ | |||
| .apply_grain = frame_header->apply_grain, | |||
| .overlap_flag = frame_header->overlap_flag, | |||
| .scaling_shift_minus8 = frame_header->grain_scaling_minus_8, | |||
| .chroma_scaling_from_luma = frame_header->chroma_scaling_from_luma, | |||
| .ar_coeff_lag = frame_header->ar_coeff_lag, | |||
| .ar_coeff_shift_minus6 = frame_header->ar_coeff_shift_minus_6, | |||
| .grain_scale_shift = frame_header->grain_scale_shift, | |||
| .clip_to_restricted_range = frame_header->clip_to_restricted_range, | |||
| .num_y_points = frame_header->num_y_points, | |||
| .num_cb_points = frame_header->num_cb_points, | |||
| .num_cr_points = frame_header->num_cr_points, | |||
| .random_seed = frame_header->grain_seed, | |||
| .cb_mult = frame_header->cb_mult, | |||
| .cb_luma_mult = frame_header->cb_luma_mult, | |||
| .cb_offset = frame_header->cb_offset, | |||
| .cr_mult = frame_header->cr_mult, | |||
| .cr_luma_mult = frame_header->cr_luma_mult, | |||
| .cr_offset = frame_header->cr_offset | |||
| .apply_grain = film_grain->apply_grain, | |||
| .overlap_flag = film_grain->overlap_flag, | |||
| .scaling_shift_minus8 = film_grain->grain_scaling_minus_8, | |||
| .chroma_scaling_from_luma = film_grain->chroma_scaling_from_luma, | |||
| .ar_coeff_lag = film_grain->ar_coeff_lag, | |||
| .ar_coeff_shift_minus6 = film_grain->ar_coeff_shift_minus_6, | |||
| .grain_scale_shift = film_grain->grain_scale_shift, | |||
| .clip_to_restricted_range = film_grain->clip_to_restricted_range, | |||
| .num_y_points = film_grain->num_y_points, | |||
| .num_cb_points = film_grain->num_cb_points, | |||
| .num_cr_points = film_grain->num_cr_points, | |||
| .random_seed = film_grain->grain_seed, | |||
| .cb_mult = film_grain->cb_mult, | |||
| .cb_luma_mult = film_grain->cb_luma_mult, | |||
| .cb_offset = film_grain->cb_offset, | |||
| .cr_mult = film_grain->cr_mult, | |||
| .cr_luma_mult = film_grain->cr_luma_mult, | |||
| .cr_offset = film_grain->cr_offset | |||
| } | |||
| }; | |||
| @@ -258,23 +259,23 @@ static int nvdec_av1_start_frame(AVCodecContext *avctx, const uint8_t *buffer, u | |||
| } | |||
| /* Film Grain Params */ | |||
| if (frame_header->apply_grain) { | |||
| if (film_grain->apply_grain) { | |||
| for (i = 0; i < 14; ++i) { | |||
| ppc->scaling_points_y[i][0] = frame_header->point_y_value[i]; | |||
| ppc->scaling_points_y[i][1] = frame_header->point_y_scaling[i]; | |||
| ppc->scaling_points_y[i][0] = film_grain->point_y_value[i]; | |||
| ppc->scaling_points_y[i][1] = film_grain->point_y_scaling[i]; | |||
| } | |||
| for (i = 0; i < 10; ++i) { | |||
| ppc->scaling_points_cb[i][0] = frame_header->point_cb_value[i]; | |||
| ppc->scaling_points_cb[i][1] = frame_header->point_cb_scaling[i]; | |||
| ppc->scaling_points_cr[i][0] = frame_header->point_cr_value[i]; | |||
| ppc->scaling_points_cr[i][1] = frame_header->point_cr_scaling[i]; | |||
| ppc->scaling_points_cb[i][0] = film_grain->point_cb_value[i]; | |||
| ppc->scaling_points_cb[i][1] = film_grain->point_cb_scaling[i]; | |||
| ppc->scaling_points_cr[i][0] = film_grain->point_cr_value[i]; | |||
| ppc->scaling_points_cr[i][1] = film_grain->point_cr_scaling[i]; | |||
| } | |||
| for (i = 0; i < 24; ++i) { | |||
| ppc->ar_coeffs_y[i] = (short)frame_header->ar_coeffs_y_plus_128[i] - 128; | |||
| ppc->ar_coeffs_y[i] = (short)film_grain->ar_coeffs_y_plus_128[i] - 128; | |||
| } | |||
| for (i = 0; i < 25; ++i) { | |||
| ppc->ar_coeffs_cb[i] = (short)frame_header->ar_coeffs_cb_plus_128[i] - 128; | |||
| ppc->ar_coeffs_cr[i] = (short)frame_header->ar_coeffs_cr_plus_128[i] - 128; | |||
| ppc->ar_coeffs_cb[i] = (short)film_grain->ar_coeffs_cb_plus_128[i] - 128; | |||
| ppc->ar_coeffs_cr[i] = (short)film_grain->ar_coeffs_cr_plus_128[i] - 128; | |||
| } | |||
| } | |||
| @@ -56,6 +56,7 @@ static int vaapi_av1_start_frame(AVCodecContext *avctx, | |||
| AV1DecContext *s = avctx->priv_data; | |||
| const AV1RawSequenceHeader *seq = s->raw_seq; | |||
| const AV1RawFrameHeader *frame_header = s->raw_frame_header; | |||
| const AV1RawFilmGrainParams *film_grain = &frame_header->film_grain; | |||
| VAAPIDecodePicture *pic = s->cur_frame.hwaccel_picture_private; | |||
| VADecPictureParameterBufferAV1 pic_param; | |||
| int8_t bit_depth_idx; | |||
| @@ -115,14 +116,14 @@ static int vaapi_av1_start_frame(AVCodecContext *avctx, | |||
| .update_data = frame_header->segmentation_update_data, | |||
| }, | |||
| .film_grain_info.film_grain_info_fields.bits = { | |||
| .apply_grain = frame_header->apply_grain, | |||
| .chroma_scaling_from_luma = frame_header->chroma_scaling_from_luma, | |||
| .grain_scaling_minus_8 = frame_header->grain_scaling_minus_8, | |||
| .ar_coeff_lag = frame_header->ar_coeff_lag, | |||
| .ar_coeff_shift_minus_6 = frame_header->ar_coeff_shift_minus_6, | |||
| .grain_scale_shift = frame_header->grain_scale_shift, | |||
| .overlap_flag = frame_header->overlap_flag, | |||
| .clip_to_restricted_range = frame_header->clip_to_restricted_range, | |||
| .apply_grain = film_grain->apply_grain, | |||
| .chroma_scaling_from_luma = film_grain->chroma_scaling_from_luma, | |||
| .grain_scaling_minus_8 = film_grain->grain_scaling_minus_8, | |||
| .ar_coeff_lag = film_grain->ar_coeff_lag, | |||
| .ar_coeff_shift_minus_6 = film_grain->ar_coeff_shift_minus_6, | |||
| .grain_scale_shift = film_grain->grain_scale_shift, | |||
| .overlap_flag = film_grain->overlap_flag, | |||
| .clip_to_restricted_range = film_grain->clip_to_restricted_range, | |||
| }, | |||
| .pic_info_fields.bits = { | |||
| .frame_type = frame_header->frame_type, | |||