|
|
|
@ -92,42 +92,42 @@ int ff_parse_itu_t_t35_to_dynamic_hdr_vivid(AVDynamicHDRVivid *s, const uint8_t |
|
|
|
|
tm_params->base_param_Delta_enable_mode = get_bits(gb, 3); |
|
|
|
|
tm_params->base_param_Delta = (AVRational){get_bits(gb, 7), base_param_Delta_den}; |
|
|
|
|
} |
|
|
|
|
if (get_bits_left(gb) < 1) |
|
|
|
|
if (get_bits_left(gb) < 1) |
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
tm_params->three_Spline_enable_flag = get_bits(gb, 1); |
|
|
|
|
if (tm_params->three_Spline_enable_flag) { |
|
|
|
|
AVHDRVivid3SplineParams *three_spline; |
|
|
|
|
|
|
|
|
|
if (get_bits_left(gb) < 1 + tm_params->three_Spline_num * (2 + 12 + 28 + 1)) |
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
tm_params->three_Spline_num = get_bits(gb, 1) + 1; |
|
|
|
|
if (tm_params->three_Spline_num > FF_ARRAY_ELEMS(tm_params->three_spline)) |
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
tm_params->three_Spline_enable_flag = get_bits(gb, 1); |
|
|
|
|
if (tm_params->three_Spline_enable_flag) { |
|
|
|
|
AVHDRVivid3SplineParams *three_spline; |
|
|
|
|
|
|
|
|
|
if (get_bits_left(gb) < 1 + tm_params->three_Spline_num * (2 + 12 + 28 + 1)) |
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
tm_params->three_Spline_num = get_bits(gb, 1) + 1; |
|
|
|
|
if (tm_params->three_Spline_num > FF_ARRAY_ELEMS(tm_params->three_spline)) |
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
for (int j = 0; j < tm_params->three_Spline_num; j++) { |
|
|
|
|
three_spline = &tm_params->three_spline[j]; |
|
|
|
|
three_spline->th_mode = get_bits(gb, 2); |
|
|
|
|
if (three_spline->th_mode == 0 || three_spline->th_mode == 2) { |
|
|
|
|
if (get_bits_left(gb) < 8) |
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
three_spline->th_enable_mb = (AVRational){get_bits(gb, 8), 255}; |
|
|
|
|
} |
|
|
|
|
three_spline->th_enable = (AVRational){get_bits(gb, 12), 4095}; |
|
|
|
|
three_spline->th_delta1 = (AVRational){get_bits(gb, 10), 1023}; |
|
|
|
|
three_spline->th_delta2 = (AVRational){get_bits(gb, 10), 1023}; |
|
|
|
|
three_spline->enable_strength = (AVRational){get_bits(gb, 8), 255}; |
|
|
|
|
for (int j = 0; j < tm_params->three_Spline_num; j++) { |
|
|
|
|
three_spline = &tm_params->three_spline[j]; |
|
|
|
|
three_spline->th_mode = get_bits(gb, 2); |
|
|
|
|
if (three_spline->th_mode == 0 || three_spline->th_mode == 2) { |
|
|
|
|
if (get_bits_left(gb) < 8) |
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
three_spline->th_enable_mb = (AVRational){get_bits(gb, 8), 255}; |
|
|
|
|
} |
|
|
|
|
three_spline->th_enable = (AVRational){get_bits(gb, 12), 4095}; |
|
|
|
|
three_spline->th_delta1 = (AVRational){get_bits(gb, 10), 1023}; |
|
|
|
|
three_spline->th_delta2 = (AVRational){get_bits(gb, 10), 1023}; |
|
|
|
|
three_spline->enable_strength = (AVRational){get_bits(gb, 8), 255}; |
|
|
|
|
} |
|
|
|
|
#if FF_API_HDR_VIVID_THREE_SPLINE |
|
|
|
|
three_spline = &tm_params->three_spline[0]; |
|
|
|
|
three_spline = &tm_params->three_spline[0]; |
|
|
|
|
FF_DISABLE_DEPRECATION_WARNINGS |
|
|
|
|
tm_params->three_Spline_TH_mode = three_spline->th_mode; |
|
|
|
|
tm_params->three_Spline_TH_enable_MB = three_spline->th_enable_mb; |
|
|
|
|
tm_params->three_Spline_TH_enable = three_spline->th_enable; |
|
|
|
|
tm_params->three_Spline_TH_Delta1 = three_spline->th_delta1; |
|
|
|
|
tm_params->three_Spline_TH_Delta2 = three_spline->th_delta2; |
|
|
|
|
tm_params->three_Spline_enable_Strength = three_spline->enable_strength; |
|
|
|
|
tm_params->three_Spline_TH_mode = three_spline->th_mode; |
|
|
|
|
tm_params->three_Spline_TH_enable_MB = three_spline->th_enable_mb; |
|
|
|
|
tm_params->three_Spline_TH_enable = three_spline->th_enable; |
|
|
|
|
tm_params->three_Spline_TH_Delta1 = three_spline->th_delta1; |
|
|
|
|
tm_params->three_Spline_TH_Delta2 = three_spline->th_delta2; |
|
|
|
|
tm_params->three_Spline_enable_Strength = three_spline->enable_strength; |
|
|
|
|
FF_ENABLE_DEPRECATION_WARNINGS |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|