Showing the changes to libavcodec (134 of 303 files). Show all
Unified · Split
| @@ -395,8 +395,8 @@ static uint64_t sniff_channel_order(uint8_t (*layout_map)[3], int tags) · 394 unmodified lines | |||
| 395 | FFSWAP(struct elem_to_channel, e2c_vec[6], e2c_vec[4]); // FLc & FRc fifth (final), SiL & SiR seventh | 395 | FFSWAP(struct elem_to_channel, e2c_vec[6], e2c_vec[4]); // FLc & FRc fifth (final), SiL & SiR seventh |
| 396 | FFSWAP(struct elem_to_channel, e2c_vec[7], e2c_vec[6]); // LFE2 seventh (final), SiL & SiR eight (final) | 396 | FFSWAP(struct elem_to_channel, e2c_vec[7], e2c_vec[6]); // LFE2 seventh (final), SiL & SiR eight (final) |
| 397 | FFSWAP(struct elem_to_channel, e2c_vec[9], e2c_vec[8]); // TpFL & TpFR ninth (final), TFC tenth (final) | 397 | FFSWAP(struct elem_to_channel, e2c_vec[9], e2c_vec[8]); // TpFL & TpFR ninth (final), TFC tenth (final) |
| 398 | FFSWAP(struct elem_to_channel, e2c_vec[11], e2c_vec[10]); // TC eleventh (final), TpSiL & TpSiR twelth | 398 | FFSWAP(struct elem_to_channel, e2c_vec[11], e2c_vec[10]); // TC eleventh (final), TpSiL & TpSiR twelfth |
| 399 | FFSWAP(struct elem_to_channel, e2c_vec[12], e2c_vec[11]); // TpBL & TpBR twelth (final), TpSiL & TpSiR thirteenth (final) | 399 | FFSWAP(struct elem_to_channel, e2c_vec[12], e2c_vec[11]); // TpBL & TpBR twelfth (final), TpSiL & TpSiR thirteenth (final) |
| 400 | } else { | 400 | } else { |
| 401 | // For everything else, utilize the AV channel position define as a | 401 | // For everything else, utilize the AV channel position define as a |
| 402 | // stable sort. | 402 | // stable sort. |
| @@ -1728,7 +1728,7 @@ int ff_aac_decode_ics(AACDecContext *ac, SingleChannelElement *sce, · 1325 unmodified lines | |||
| 1728 | } | 1728 | } |
| 1729 | } | 1729 | } |
| 1730 | // I see no textual basis in the spec for this occurring after SSR gain | 1730 | // I see no textual basis in the spec for this occurring after SSR gain |
| 1731 | // control, but this is what both reference and real implmentations do | 1731 | // control, but this is what both reference and real implementations do |
| 1732 | if (tns->present && er_syntax) { | 1732 | if (tns->present && er_syntax) { |
| 1733 | ret = ff_aac_decode_tns(ac, tns, gb, ics); | 1733 | ret = ff_aac_decode_tns(ac, tns, gb, ics); |
| 1734 | if (ret < 0) | 1734 | if (ret < 0) |
| @@ -311,14 +311,14 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx, · 310 unmodified lines | |||
| 311 | 311 | ||
| 312 | /** | 312 | /** |
| 313 | * Scale uplims to match rate distortion to quality | 313 | * Scale uplims to match rate distortion to quality |
| 314 | * bu applying noisy band depriorization and tonal band priorization. | 314 | * bu applying noisy band depriorization and tonal band prioritization. |
| 315 | * Maxval-energy ratio gives us an idea of how noisy/tonal the band is. | 315 | * Maxval-energy ratio gives us an idea of how noisy/tonal the band is. |
| 316 | * If maxval^2 ~ energy, then that band is mostly noise, and we can relax | 316 | * If maxval^2 ~ energy, then that band is mostly noise, and we can relax |
| 317 | * rate distortion requirements. | 317 | * rate distortion requirements. |
| 318 | */ | 318 | */ |
| 319 | memcpy(euplims, uplims, sizeof(euplims)); | 319 | memcpy(euplims, uplims, sizeof(euplims)); |
| 320 | for (w = 0; w < sce->ics.num_windows; w += sce->ics.group_len[w]) { | 320 | for (w = 0; w < sce->ics.num_windows; w += sce->ics.group_len[w]) { |
| 321 | /** psy already priorizes transients to some extent */ | 321 | /** psy already prioritizes transients to some extent */ |
| 322 | float de_psy_factor = (sce->ics.num_windows > 1) ? 8.0f / sce->ics.group_len[w] : 1.0f; | 322 | float de_psy_factor = (sce->ics.num_windows > 1) ? 8.0f / sce->ics.group_len[w] : 1.0f; |
| 323 | start = w*128; | 323 | start = w*128; |
| 324 | for (g = 0; g < sce->ics.num_swb; g++) { | 324 | for (g = 0; g < sce->ics.num_swb; g++) { |
| @@ -331,7 +331,7 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx, · 6 unmodified lines | |||
| 331 | nzslope * cleanup_factor); | 331 | nzslope * cleanup_factor); |
| 332 | energy2uplim *= de_psy_factor; | 332 | energy2uplim *= de_psy_factor; |
| 333 | if (!(avctx->flags & AV_CODEC_FLAG_QSCALE)) { | 333 | if (!(avctx->flags & AV_CODEC_FLAG_QSCALE)) { |
| 334 | /** In ABR, we need to priorize less and let rate control do its thing */ | 334 | /** In ABR, we need to prioritize less and let rate control do its thing */ |
| 335 | energy2uplim = sqrtf(energy2uplim); | 335 | energy2uplim = sqrtf(energy2uplim); |
| 336 | } | 336 | } |
| 337 | energy2uplim = FFMAX(0.015625f, FFMIN(1.0f, energy2uplim)); | 337 | energy2uplim = FFMAX(0.015625f, FFMIN(1.0f, energy2uplim)); |
| @@ -345,7 +345,7 @@ static void search_for_quantizers_twoloop(AVCodecContext *avctx, · 7 unmodified lines | |||
| 345 | 2.0f); | 345 | 2.0f); |
| 346 | energy2uplim *= de_psy_factor; | 346 | energy2uplim *= de_psy_factor; |
| 347 | if (!(avctx->flags & AV_CODEC_FLAG_QSCALE)) { | 347 | if (!(avctx->flags & AV_CODEC_FLAG_QSCALE)) { |
| 348 | /** In ABR, we need to priorize less and let rate control do its thing */ | 348 | /** In ABR, we need to prioritize less and let rate control do its thing */ |
| 349 | energy2uplim = sqrtf(energy2uplim); | 349 | energy2uplim = sqrtf(energy2uplim); |
| 350 | } | 350 | } |
| 351 | energy2uplim = FFMAX(0.015625f, FFMIN(1.0f, energy2uplim)); | 351 | energy2uplim = FFMAX(0.015625f, FFMIN(1.0f, energy2uplim)); |
| @@ -168,7 +168,7 @@ typedef struct AacPsyContext{ · 167 unmodified lines | |||
| 168 | * LAME psy model preset struct | 168 | * LAME psy model preset struct |
| 169 | */ | 169 | */ |
| 170 | typedef struct PsyLamePreset { | 170 | typedef struct PsyLamePreset { |
| 171 | int quality; ///< Quality to map the rest of the vaules to. | 171 | int quality; ///< Quality to map the rest of the values to. |
| 172 | /* This is overloaded to be both kbps per channel in ABR mode, and | 172 | /* This is overloaded to be both kbps per channel in ABR mode, and |
| 173 | * requested quality in constant quality mode. | 173 | * requested quality in constant quality mode. |
| 174 | */ | 174 | */ |
| @@ -59,7 +59,7 @@ static void sbr_turnoff(SpectralBandReplication *sbr) { · 58 unmodified lines | |||
| 59 | sbr->start = 0; | 59 | sbr->start = 0; |
| 60 | sbr->usac = 0; | 60 | sbr->usac = 0; |
| 61 | sbr->ready_for_dequant = 0; | 61 | sbr->ready_for_dequant = 0; |
| 62 | // Init defults used in pure upsampling mode | 62 | // Init defaults used in pure upsampling mode |
| 63 | sbr->kx[1] = 32; //Typo in spec, kx' inits to 32 | 63 | sbr->kx[1] = 32; //Typo in spec, kx' inits to 32 |
| 64 | sbr->m[1] = 0; | 64 | sbr->m[1] = 0; |
| 65 | // Reset values for first SBR header | 65 | // Reset values for first SBR header |
| @@ -534,7 +534,7 @@ function ff_pix_abs16_y2_neon, export=1 · 533 unmodified lines | |||
| 534 | ld1 {v2.16b}, [x2], x3 // Load pix3 for first iteration | 534 | ld1 {v2.16b}, [x2], x3 // Load pix3 for first iteration |
| 535 | ld1 {v0.16b}, [x1], x3 // Load pix1 for first iteration | 535 | ld1 {v0.16b}, [x1], x3 // Load pix1 for first iteration |
| 536 | urhadd v30.16b, v1.16b, v2.16b // Rounding halving add, first iteration | 536 | urhadd v30.16b, v1.16b, v2.16b // Rounding halving add, first iteration |
| 537 | ld1 {v5.16b}, [x2], x3 // Load pix3 for second iteartion | 537 | ld1 {v5.16b}, [x2], x3 // Load pix3 for second iteration |
| 538 | uabal v29.8h, v0.8b, v30.8b // Absolute difference of lower half, first iteration | 538 | uabal v29.8h, v0.8b, v30.8b // Absolute difference of lower half, first iteration |
| 539 | uabal2 v28.8h, v0.16b, v30.16b // Absolute difference of upper half, first iteration | 539 | uabal2 v28.8h, v0.16b, v30.16b // Absolute difference of upper half, first iteration |
| 540 | ld1 {v3.16b}, [x1], x3 // Load pix1 for second iteration | 540 | ld1 {v3.16b}, [x1], x3 // Load pix1 for second iteration |
| @@ -606,7 +606,7 @@ function sse16_neon, export=1 · 65 unmodified lines | |||
| 606 | uabd v27.16b, v2.16b, v3.16b // Absolute difference, second iteration | 606 | uabd v27.16b, v2.16b, v3.16b // Absolute difference, second iteration |
| 607 | uadalp v17.4s, v29.8h // Pairwise add, first iteration | 607 | uadalp v17.4s, v29.8h // Pairwise add, first iteration |
| 608 | ld1 {v4.16b}, [x1], x3 // Load pix1 for third iteration | 608 | ld1 {v4.16b}, [x1], x3 // Load pix1 for third iteration |
| 609 | umull v26.8h, v27.8b, v27.8b // Mulitply lower half, second iteration | 609 | umull v26.8h, v27.8b, v27.8b // Multiply lower half, second iteration |
| 610 | umull2 v25.8h, v27.16b, v27.16b // Multiply upper half, second iteration | 610 | umull2 v25.8h, v27.16b, v27.16b // Multiply upper half, second iteration |
| 611 | ld1 {v5.16b}, [x2], x3 // Load pix2 for third iteration | 611 | ld1 {v5.16b}, [x2], x3 // Load pix2 for third iteration |
| 612 | uadalp v17.4s, v26.8h // Pairwise add and accumulate, second iteration | 612 | uadalp v17.4s, v26.8h // Pairwise add and accumulate, second iteration |
| @@ -616,7 +616,7 @@ function sse16_neon, export=1 · 3 unmodified lines | |||
| 616 | umull v23.8h, v24.8b, v24.8b // Multiply lower half, third iteration | 616 | umull v23.8h, v24.8b, v24.8b // Multiply lower half, third iteration |
| 617 | umull2 v22.8h, v24.16b, v24.16b // Multiply upper half, third iteration | 617 | umull2 v22.8h, v24.16b, v24.16b // Multiply upper half, third iteration |
| 618 | uadalp v17.4s, v23.8h // Pairwise add and accumulate, third iteration | 618 | uadalp v17.4s, v23.8h // Pairwise add and accumulate, third iteration |
| 619 | ld1 {v7.16b}, [x2], x3 // Load pix2 for fouth iteration | 619 | ld1 {v7.16b}, [x2], x3 // Load pix2 for fourth iteration |
| 620 | uadalp v17.4s, v22.8h // Pairwise add and accumulate, third iteration | 620 | uadalp v17.4s, v22.8h // Pairwise add and accumulate, third iteration |
| 621 | uabd v21.16b, v6.16b, v7.16b // Absolute difference, fourth iteration | 621 | uabd v21.16b, v6.16b, v7.16b // Absolute difference, fourth iteration |
| 622 | uadalp v17.4s, v28.8h // Pairwise add and accumulate, first iteration | 622 | uadalp v17.4s, v28.8h // Pairwise add and accumulate, first iteration |
| @@ -748,7 +748,7 @@ function sse4_neon, export=1 · 125 unmodified lines | |||
| 748 | uabdl v28.8h, v4.8b, v5.8b // Absolute difference, third iteration | 748 | uabdl v28.8h, v4.8b, v5.8b // Absolute difference, third iteration |
| 749 | umlal v16.4s, v29.4h, v29.4h // Multiply and accumulate, second iteration | 749 | umlal v16.4s, v29.4h, v29.4h // Multiply and accumulate, second iteration |
| 750 | sub w4, w4, #4 | 750 | sub w4, w4, #4 |
| 751 | uabdl v27.8h, v6.8b, v7.8b // Absolue difference, fourth iteration | 751 | uabdl v27.8h, v6.8b, v7.8b // Absolute difference, fourth iteration |
| 752 | umlal v16.4s, v28.4h, v28.4h // Multiply and accumulate, third iteration | 752 | umlal v16.4s, v28.4h, v28.4h // Multiply and accumulate, third iteration |
| 753 | cmp w4, #4 | 753 | cmp w4, #4 |
| 754 | umlal v16.4s, v27.4h, v27.4h // Multiply and accumulate, fourth iteration | 754 | umlal v16.4s, v27.4h, v27.4h // Multiply and accumulate, fourth iteration |
| @@ -1593,7 +1593,7 @@ function sse16_neon_dotprod, export=1 · 838 unmodified lines | |||
| 1593 | uabd v24.16b, v4.16b, v5.16b // Absolute difference, third iteration | 1593 | uabd v24.16b, v4.16b, v5.16b // Absolute difference, third iteration |
| 1594 | ld1 {v6.16b}, [x1], x3 // Load pix1 for fourth iteration | 1594 | ld1 {v6.16b}, [x1], x3 // Load pix1 for fourth iteration |
| 1595 | udot v17.4s, v24.16b, v24.16b | 1595 | udot v17.4s, v24.16b, v24.16b |
| 1596 | ld1 {v7.16b}, [x2], x3 // Load pix2 for fouth iteration | 1596 | ld1 {v7.16b}, [x2], x3 // Load pix2 for fourth iteration |
| 1597 | uabd v21.16b, v6.16b, v7.16b // Absolute difference, fourth iteration | 1597 | uabd v21.16b, v6.16b, v7.16b // Absolute difference, fourth iteration |
| 1598 | sub w4, w4, #4 // h -= 4 | 1598 | sub w4, w4, #4 // h -= 4 |
| 1599 | udot v17.4s, v21.16b, v21.16b | 1599 | udot v17.4s, v21.16b, v21.16b |
| @@ -224,7 +224,7 @@ typedef struct ALSDecContext { · 223 unmodified lines | |||
| 224 | int32_t *quant_cof_buffer; ///< contains all quantized parcor coefficients | 224 | int32_t *quant_cof_buffer; ///< contains all quantized parcor coefficients |
| 225 | int32_t **lpc_cof; ///< coefficients of the direct form prediction filter for a channel | 225 | int32_t **lpc_cof; ///< coefficients of the direct form prediction filter for a channel |
| 226 | int32_t *lpc_cof_buffer; ///< contains all coefficients of the direct form prediction filter | 226 | int32_t *lpc_cof_buffer; ///< contains all coefficients of the direct form prediction filter |
| 227 | int32_t *lpc_cof_reversed_buffer; ///< temporary buffer to set up a reversed versio of lpc_cof_buffer | 227 | int32_t *lpc_cof_reversed_buffer; ///< temporary buffer to set up a reversed version of lpc_cof_buffer |
| 228 | ALSChannelData **chan_data; ///< channel data for multi-channel correlation | 228 | ALSChannelData **chan_data; ///< channel data for multi-channel correlation |
| 229 | ALSChannelData *chan_data_buffer; ///< contains channel data for all channels | 229 | ALSChannelData *chan_data_buffer; ///< contains channel data for all channels |
| 230 | int *reverted_channels; ///< stores a flag for each reverted channel | 230 | int *reverted_channels; ///< stores a flag for each reverted channel |
| @@ -1558,7 +1558,7 @@ static int read_diff_float_data(ALSDecContext *ctx, unsigned int ra_frame) { · 1327 unmodified lines | |||
| 1558 | if (highest_byte) { | 1558 | if (highest_byte) { |
| 1559 | for (i = 0; i < frame_length; ++i) { | 1559 | for (i = 0; i < frame_length; ++i) { |
| 1560 | if (ctx->raw_samples[c][i] != 0) { | 1560 | if (ctx->raw_samples[c][i] != 0) { |
| 1561 | //The following logic is taken from Tabel 14.45 and 14.46 from the ISO spec | 1561 | //The following logic is taken from Table 14.45 and 14.46 from the ISO spec |
| 1562 | if (av_cmp_sf_ieee754(acf[c], FLOAT_1)) { | 1562 | if (av_cmp_sf_ieee754(acf[c], FLOAT_1)) { |
| 1563 | nbits[i] = 23 - av_log2(abs(ctx->raw_samples[c][i])); | 1563 | nbits[i] = 23 - av_log2(abs(ctx->raw_samples[c][i])); |
| 1564 | } else { | 1564 | } else { |
| @@ -656,7 +656,7 @@ static int amf_decode_frame(AVCodecContext *avctx, struct AVFrame *frame) · 655 unmodified lines | |||
| 656 | }else | 656 | }else |
| 657 | return AVERROR_EOF; | 657 | return AVERROR_EOF; |
| 658 | } else { | 658 | } else { |
| 659 | av_log(avctx, AV_LOG_ERROR, "Unkown result from QueryOutput %d\n", res); | 659 | av_log(avctx, AV_LOG_ERROR, "Unknown result from QueryOutput %d\n", res); |
| 660 | } | 660 | } |
| 661 | return got_frame ? 0 : AVERROR(EAGAIN); | 661 | return got_frame ? 0 : AVERROR(EAGAIN); |
| 662 | } | 662 | } |
| @@ -32,11 +32,11 @@ static const AVOption options[] = { · 31 unmodified lines | |||
| 32 | 32 | ||
| 33 | { "usage", "Set the encoding usage", OFFSET(usage), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, AMF_VIDEO_ENCODER_AV1_USAGE_LOW_LATENCY_HIGH_QUALITY, VE, .unit = "usage" }, | 33 | { "usage", "Set the encoding usage", OFFSET(usage), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, AMF_VIDEO_ENCODER_AV1_USAGE_LOW_LATENCY_HIGH_QUALITY, VE, .unit = "usage" }, |
| 34 | { "transcoding", "Generic Transcoding", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_USAGE_TRANSCODING }, 0, 0, VE, .unit = "usage" }, | 34 | { "transcoding", "Generic Transcoding", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_USAGE_TRANSCODING }, 0, 0, VE, .unit = "usage" }, |
| 35 | { "ultralowlatency", "ultra low latency trancoding", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_USAGE_ULTRA_LOW_LATENCY }, 0, 0, VE, .unit = "usage" }, | 35 | { "ultralowlatency", "ultra low latency transcoding", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_USAGE_ULTRA_LOW_LATENCY }, 0, 0, VE, .unit = "usage" }, |
| 36 | { "lowlatency", "Low latency usecase", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_USAGE_LOW_LATENCY }, 0, 0, VE, .unit = "usage" }, | 36 | { "lowlatency", "Low latency usecase", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_USAGE_LOW_LATENCY }, 0, 0, VE, .unit = "usage" }, |
| 37 | { "webcam", "Webcam", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_USAGE_WEBCAM }, 0, 0, VE, .unit = "usage" }, | 37 | { "webcam", "Webcam", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_USAGE_WEBCAM }, 0, 0, VE, .unit = "usage" }, |
| 38 | { "high_quality", "high quality trancoding", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_USAGE_HIGH_QUALITY }, 0, 0, VE, .unit = "usage" }, | 38 | { "high_quality", "high quality transcoding", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_USAGE_HIGH_QUALITY }, 0, 0, VE, .unit = "usage" }, |
| 39 | { "lowlatency_high_quality","low latency yet high quality trancoding", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_USAGE_LOW_LATENCY_HIGH_QUALITY }, 0, 0, VE, .unit = "usage" }, | 39 | { "lowlatency_high_quality","low latency yet high quality transcoding", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_USAGE_LOW_LATENCY_HIGH_QUALITY }, 0, 0, VE, .unit = "usage" }, |
| 40 | 40 | ||
| 41 | { "bitdepth", "Set color bit deph", OFFSET(bit_depth), AV_OPT_TYPE_INT, {.i64 = AMF_COLOR_BIT_DEPTH_UNDEFINED }, AMF_COLOR_BIT_DEPTH_UNDEFINED, AMF_COLOR_BIT_DEPTH_10, VE, .unit = "bitdepth" }, | 41 | { "bitdepth", "Set color bit deph", OFFSET(bit_depth), AV_OPT_TYPE_INT, {.i64 = AMF_COLOR_BIT_DEPTH_UNDEFINED }, AMF_COLOR_BIT_DEPTH_UNDEFINED, AMF_COLOR_BIT_DEPTH_10, VE, .unit = "bitdepth" }, |
| 42 | { "8", "8 bit", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_COLOR_BIT_DEPTH_8 }, 0, 0, VE, .unit = "bitdepth" }, | 42 | { "8", "8 bit", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_COLOR_BIT_DEPTH_8 }, 0, 0, VE, .unit = "bitdepth" }, |
| @@ -88,7 +88,7 @@ static const AVOption options[] = { · 45 unmodified lines | |||
| 88 | { "rc", "Set the rate control mode", OFFSET(rate_control_mode), AV_OPT_TYPE_INT, {.i64 = AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_UNKNOWN }, AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_UNKNOWN, AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_HIGH_QUALITY_CBR, VE, .unit = "rc" }, | 88 | { "rc", "Set the rate control mode", OFFSET(rate_control_mode), AV_OPT_TYPE_INT, {.i64 = AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_UNKNOWN }, AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_UNKNOWN, AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_HIGH_QUALITY_CBR, VE, .unit = "rc" }, |
| 89 | { "cqp", "Constant Quantization Parameter", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_CONSTANT_QP }, 0, 0, VE, .unit = "rc" }, | 89 | { "cqp", "Constant Quantization Parameter", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_CONSTANT_QP }, 0, 0, VE, .unit = "rc" }, |
| 90 | { "vbr_latency", "Latency Constrained Variable Bitrate", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_LATENCY_CONSTRAINED_VBR }, 0, 0, VE, .unit = "rc" }, | 90 | { "vbr_latency", "Latency Constrained Variable Bitrate", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_LATENCY_CONSTRAINED_VBR }, 0, 0, VE, .unit = "rc" }, |
| 91 | { "vbr_peak", "Peak Contrained Variable Bitrate", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_PEAK_CONSTRAINED_VBR }, 0, 0, VE, .unit = "rc" }, | 91 | { "vbr_peak", "Peak Constrained Variable Bitrate", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_PEAK_CONSTRAINED_VBR }, 0, 0, VE, .unit = "rc" }, |
| 92 | { "cbr", "Constant Bitrate", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_CBR }, 0, 0, VE, .unit = "rc" }, | 92 | { "cbr", "Constant Bitrate", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_CBR }, 0, 0, VE, .unit = "rc" }, |
| 93 | { "qvbr", "Quality Variable Bitrate", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_QUALITY_VBR }, 0, 0, VE, .unit = "rc" }, | 93 | { "qvbr", "Quality Variable Bitrate", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_QUALITY_VBR }, 0, 0, VE, .unit = "rc" }, |
| 94 | { "hqvbr", "High Quality Variable Bitrate", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_HIGH_QUALITY_VBR }, 0, 0, VE, .unit = "rc" }, | 94 | { "hqvbr", "High Quality Variable Bitrate", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_VIDEO_ENCODER_AV1_RATE_CONTROL_METHOD_HIGH_QUALITY_VBR }, 0, 0, VE, .unit = "rc" }, |
| @@ -148,16 +148,16 @@ static const AVOption options[] = { · 53 unmodified lines | |||
| 148 | { "pa_scene_change_detection_enable", "Enable scene change detection", OFFSET(pa_scene_change_detection), AV_OPT_TYPE_BOOL, {.i64 = -1 }, -1, 1, VE }, | 148 | { "pa_scene_change_detection_enable", "Enable scene change detection", OFFSET(pa_scene_change_detection), AV_OPT_TYPE_BOOL, {.i64 = -1 }, -1, 1, VE }, |
| 149 | 149 | ||
| 150 | { "pa_scene_change_detection_sensitivity", "Set the sensitivity of scene change detection", OFFSET(pa_scene_change_detection_sensitivity), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_HIGH, VE, .unit = "scene_change_sensitivity" }, | 150 | { "pa_scene_change_detection_sensitivity", "Set the sensitivity of scene change detection", OFFSET(pa_scene_change_detection_sensitivity), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_HIGH, VE, .unit = "scene_change_sensitivity" }, |
| 151 | { "low", "low scene change dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_LOW }, 0, 0, VE, .unit = "scene_change_sensitivity" }, | 151 | { "low", "low scene change detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_LOW }, 0, 0, VE, .unit = "scene_change_sensitivity" }, |
| 152 | { "medium", "medium scene change dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_MEDIUM }, 0, 0, VE, .unit = "scene_change_sensitivity" }, | 152 | { "medium", "medium scene change detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_MEDIUM }, 0, 0, VE, .unit = "scene_change_sensitivity" }, |
| 153 | { "high", "high scene change dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_HIGH }, 0, 0, VE, .unit = "scene_change_sensitivity" }, | 153 | { "high", "high scene change detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_HIGH }, 0, 0, VE, .unit = "scene_change_sensitivity" }, |
| 154 | 154 | ||
| 155 | { "pa_static_scene_detection_enable", "Enable static scene detection", OFFSET(pa_static_scene_detection), AV_OPT_TYPE_BOOL, {.i64 = -1 }, -1, 1, VE }, | 155 | { "pa_static_scene_detection_enable", "Enable static scene detection", OFFSET(pa_static_scene_detection), AV_OPT_TYPE_BOOL, {.i64 = -1 }, -1, 1, VE }, |
| 156 | 156 | ||
| 157 | { "pa_static_scene_detection_sensitivity", "Set the sensitivity of static scene detection", OFFSET(pa_static_scene_detection_sensitivity), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_HIGH, VE , .unit = "static_scene_sensitivity" }, | 157 | { "pa_static_scene_detection_sensitivity", "Set the sensitivity of static scene detection", OFFSET(pa_static_scene_detection_sensitivity), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_HIGH, VE , .unit = "static_scene_sensitivity" }, |
| 158 | { "low", "low static scene dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_LOW }, 0, 0, VE, .unit = "static_scene_sensitivity" }, | 158 | { "low", "low static scene detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_LOW }, 0, 0, VE, .unit = "static_scene_sensitivity" }, |
| 159 | { "medium", "medium static scene dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_MEDIUM }, 0, 0, VE, .unit = "static_scene_sensitivity" }, | 159 | { "medium", "medium static scene detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_MEDIUM }, 0, 0, VE, .unit = "static_scene_sensitivity" }, |
| 160 | { "high", "high static scene dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_HIGH }, 0, 0, VE, .unit = "static_scene_sensitivity" }, | 160 | { "high", "high static scene detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_HIGH }, 0, 0, VE, .unit = "static_scene_sensitivity" }, |
| 161 | 161 | ||
| 162 | { "pa_initial_qp_after_scene_change", "The QP value that is used immediately after a scene change", OFFSET(pa_initial_qp), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, 51, VE }, | 162 | { "pa_initial_qp_after_scene_change", "The QP value that is used immediately after a scene change", OFFSET(pa_initial_qp), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, 51, VE }, |
| 163 | { "pa_max_qp_before_force_skip", "The QP threshold to allow a skip frame", OFFSET(pa_max_qp), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, 51, VE }, | 163 | { "pa_max_qp_before_force_skip", "The QP threshold to allow a skip frame", OFFSET(pa_max_qp), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, 51, VE }, |
| @@ -267,7 +267,7 @@ static av_cold int amf_encode_init_av1(AVCodecContext* avctx) · 103 unmodified lines | |||
| 267 | // Color Transfer Characteristics (AMF matches ISO/IEC) | 267 | // Color Transfer Characteristics (AMF matches ISO/IEC) |
| 268 | if(avctx->color_primaries != AVCOL_PRI_UNSPECIFIED && (pix_fmt == AV_PIX_FMT_NV12 || pix_fmt == AV_PIX_FMT_P010)){ | 268 | if(avctx->color_primaries != AVCOL_PRI_UNSPECIFIED && (pix_fmt == AV_PIX_FMT_NV12 || pix_fmt == AV_PIX_FMT_P010)){ |
| 269 | // if input is YUV, color_primaries are for VUI only | 269 | // if input is YUV, color_primaries are for VUI only |
| 270 | // AMF VCN color coversion supports only specifc output primaries BT2020 for 10-bit and BT709 for 8-bit | 270 | // AMF VCN color conversion supports only specific output primaries BT2020 for 10-bit and BT709 for 8-bit |
| 271 | // vpp_amf supports more | 271 | // vpp_amf supports more |
| 272 | AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_TRANSFER_CHARACTERISTIC, avctx->color_trc); | 272 | AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_TRANSFER_CHARACTERISTIC, avctx->color_trc); |
| 273 | } | 273 | } |
| @@ -275,7 +275,7 @@ static av_cold int amf_encode_init_av1(AVCodecContext* avctx) · 1 unmodified line | |||
| 275 | // Color Primaries (AMF matches ISO/IEC) | 275 | // Color Primaries (AMF matches ISO/IEC) |
| 276 | if(avctx->color_primaries != AVCOL_PRI_UNSPECIFIED || pix_fmt == AV_PIX_FMT_NV12 || pix_fmt == AV_PIX_FMT_P010 ) | 276 | if(avctx->color_primaries != AVCOL_PRI_UNSPECIFIED || pix_fmt == AV_PIX_FMT_NV12 || pix_fmt == AV_PIX_FMT_P010 ) |
| 277 | { | 277 | { |
| 278 | // AMF VCN color coversion supports only specifc primaries BT2020 for 10-bit and BT709 for 8-bit | 278 | // AMF VCN color conversion supports only specific primaries BT2020 for 10-bit and BT709 for 8-bit |
| 279 | // vpp_amf supports more | 279 | // vpp_amf supports more |
| 280 | AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_COLOR_PRIMARIES, avctx->color_primaries); | 280 | AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_AV1_OUTPUT_COLOR_PRIMARIES, avctx->color_primaries); |
| 281 | } | 281 | } |
| @@ -657,7 +657,7 @@ static av_cold int amf_encode_init_av1(AVCodecContext* avctx) · 375 unmodified lines | |||
| 657 | buffer->pVtbl->Release(buffer); | 657 | buffer->pVtbl->Release(buffer); |
| 658 | var.pInterface->pVtbl->Release(var.pInterface); | 658 | var.pInterface->pVtbl->Release(var.pInterface); |
| 659 | 659 | ||
| 660 | //processing crop informaiton according to alignment | 660 | //processing crop information according to alignment |
| 661 | if (ctx->encoder->pVtbl->GetProperty(ctx->encoder, AMF_VIDEO_ENCODER_AV1_CAP_WIDTH_ALIGNMENT_FACTOR_LOCAL, &var) != AMF_OK) | 661 | if (ctx->encoder->pVtbl->GetProperty(ctx->encoder, AMF_VIDEO_ENCODER_AV1_CAP_WIDTH_ALIGNMENT_FACTOR_LOCAL, &var) != AMF_OK) |
| 662 | // assume older driver and Navi3x | 662 | // assume older driver and Navi3x |
| 663 | width_alignment_factor = 64; | 663 | width_alignment_factor = 64; |
| @@ -82,7 +82,7 @@ static const AVOption options[] = { · 81 unmodified lines | |||
| 82 | { "rc", "Rate Control Method", OFFSET(rate_control_mode), AV_OPT_TYPE_INT, { .i64 = AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_UNKNOWN }, AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_UNKNOWN, AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_HIGH_QUALITY_CBR, VE, .unit = "rc" }, | 82 | { "rc", "Rate Control Method", OFFSET(rate_control_mode), AV_OPT_TYPE_INT, { .i64 = AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_UNKNOWN }, AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_UNKNOWN, AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_HIGH_QUALITY_CBR, VE, .unit = "rc" }, |
| 83 | { "cqp", "Constant Quantization Parameter", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_CONSTANT_QP }, 0, 0, VE, .unit = "rc" }, | 83 | { "cqp", "Constant Quantization Parameter", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_CONSTANT_QP }, 0, 0, VE, .unit = "rc" }, |
| 84 | { "cbr", "Constant Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_CBR }, 0, 0, VE, .unit = "rc" }, | 84 | { "cbr", "Constant Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_CBR }, 0, 0, VE, .unit = "rc" }, |
| 85 | { "vbr_peak", "Peak Contrained Variable Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_PEAK_CONSTRAINED_VBR }, 0, 0, VE, .unit = "rc" }, | 85 | { "vbr_peak", "Peak Constrained Variable Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_PEAK_CONSTRAINED_VBR }, 0, 0, VE, .unit = "rc" }, |
| 86 | { "vbr_latency", "Latency Constrained Variable Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_LATENCY_CONSTRAINED_VBR }, 0, 0, VE, .unit = "rc" }, | 86 | { "vbr_latency", "Latency Constrained Variable Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_LATENCY_CONSTRAINED_VBR }, 0, 0, VE, .unit = "rc" }, |
| 87 | { "qvbr", "Quality Variable Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_QUALITY_VBR }, 0, 0, VE, .unit = "rc" }, | 87 | { "qvbr", "Quality Variable Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_QUALITY_VBR }, 0, 0, VE, .unit = "rc" }, |
| 88 | { "hqvbr", "High Quality Variable Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_HIGH_QUALITY_VBR }, 0, 0, VE, .unit = "rc" }, | 88 | { "hqvbr", "High Quality Variable Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_RATE_CONTROL_METHOD_HIGH_QUALITY_VBR }, 0, 0, VE, .unit = "rc" }, |
| @@ -151,16 +151,16 @@ static const AVOption options[] = { · 62 unmodified lines | |||
| 151 | { "pa_scene_change_detection_enable", "Enable scene change detection", OFFSET(pa_scene_change_detection), AV_OPT_TYPE_BOOL, {.i64 = -1 }, -1, 1, VE }, | 151 | { "pa_scene_change_detection_enable", "Enable scene change detection", OFFSET(pa_scene_change_detection), AV_OPT_TYPE_BOOL, {.i64 = -1 }, -1, 1, VE }, |
| 152 | 152 | ||
| 153 | { "pa_scene_change_detection_sensitivity", "Set the sensitivity of scene change detection", OFFSET(pa_scene_change_detection_sensitivity), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_HIGH, VE, .unit = "scene_change_sensitivity" }, | 153 | { "pa_scene_change_detection_sensitivity", "Set the sensitivity of scene change detection", OFFSET(pa_scene_change_detection_sensitivity), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_HIGH, VE, .unit = "scene_change_sensitivity" }, |
| 154 | { "low", "low scene change dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_LOW }, 0, 0, VE, .unit = "scene_change_sensitivity" }, | 154 | { "low", "low scene change detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_LOW }, 0, 0, VE, .unit = "scene_change_sensitivity" }, |
| 155 | { "medium", "medium scene change dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_MEDIUM }, 0, 0, VE, .unit = "scene_change_sensitivity" }, | 155 | { "medium", "medium scene change detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_MEDIUM }, 0, 0, VE, .unit = "scene_change_sensitivity" }, |
| 156 | { "high", "high scene change dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_HIGH }, 0, 0, VE, .unit = "scene_change_sensitivity" }, | 156 | { "high", "high scene change detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_HIGH }, 0, 0, VE, .unit = "scene_change_sensitivity" }, |
| 157 | 157 | ||
| 158 | { "pa_static_scene_detection_enable", "Enable static scene detection", OFFSET(pa_static_scene_detection), AV_OPT_TYPE_BOOL, {.i64 = -1 }, -1, 1, VE }, | 158 | { "pa_static_scene_detection_enable", "Enable static scene detection", OFFSET(pa_static_scene_detection), AV_OPT_TYPE_BOOL, {.i64 = -1 }, -1, 1, VE }, |
| 159 | 159 | ||
| 160 | { "pa_static_scene_detection_sensitivity", "Set the sensitivity of static scene detection", OFFSET(pa_static_scene_detection_sensitivity), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_HIGH, VE , .unit = "static_scene_sensitivity" }, | 160 | { "pa_static_scene_detection_sensitivity", "Set the sensitivity of static scene detection", OFFSET(pa_static_scene_detection_sensitivity), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_HIGH, VE , .unit = "static_scene_sensitivity" }, |
| 161 | { "low", "low static scene dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_LOW }, 0, 0, VE, .unit = "static_scene_sensitivity" }, | 161 | { "low", "low static scene detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_LOW }, 0, 0, VE, .unit = "static_scene_sensitivity" }, |
| 162 | { "medium", "medium static scene dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_MEDIUM }, 0, 0, VE, .unit = "static_scene_sensitivity" }, | 162 | { "medium", "medium static scene detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_MEDIUM }, 0, 0, VE, .unit = "static_scene_sensitivity" }, |
| 163 | { "high", "high static scene dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_HIGH }, 0, 0, VE, .unit = "static_scene_sensitivity" }, | 163 | { "high", "high static scene detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_HIGH }, 0, 0, VE, .unit = "static_scene_sensitivity" }, |
| 164 | 164 | ||
| 165 | { "pa_initial_qp_after_scene_change", "The QP value that is used immediately after a scene change", OFFSET(pa_initial_qp), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, 51, VE }, | 165 | { "pa_initial_qp_after_scene_change", "The QP value that is used immediately after a scene change", OFFSET(pa_initial_qp), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, 51, VE }, |
| 166 | { "pa_max_qp_before_force_skip", "The QP threshold to allow a skip frame", OFFSET(pa_max_qp), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, 51, VE }, | 166 | { "pa_max_qp_before_force_skip", "The QP threshold to allow a skip frame", OFFSET(pa_max_qp), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, 51, VE }, |
| @@ -74,7 +74,7 @@ static const AVOption options[] = { · 73 unmodified lines | |||
| 74 | { "rc", "Set the rate control mode", OFFSET(rate_control_mode), AV_OPT_TYPE_INT, { .i64 = AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_UNKNOWN }, AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_UNKNOWN, AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_HIGH_QUALITY_CBR, VE, .unit = "rc" }, | 74 | { "rc", "Set the rate control mode", OFFSET(rate_control_mode), AV_OPT_TYPE_INT, { .i64 = AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_UNKNOWN }, AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_UNKNOWN, AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_HIGH_QUALITY_CBR, VE, .unit = "rc" }, |
| 75 | { "cqp", "Constant Quantization Parameter", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_CONSTANT_QP }, 0, 0, VE, .unit = "rc" }, | 75 | { "cqp", "Constant Quantization Parameter", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_CONSTANT_QP }, 0, 0, VE, .unit = "rc" }, |
| 76 | { "cbr", "Constant Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_CBR }, 0, 0, VE, .unit = "rc" }, | 76 | { "cbr", "Constant Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_CBR }, 0, 0, VE, .unit = "rc" }, |
| 77 | { "vbr_peak", "Peak Contrained Variable Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_PEAK_CONSTRAINED_VBR }, 0, 0, VE, .unit = "rc" }, | 77 | { "vbr_peak", "Peak Constrained Variable Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_PEAK_CONSTRAINED_VBR }, 0, 0, VE, .unit = "rc" }, |
| 78 | { "vbr_latency", "Latency Constrained Variable Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_LATENCY_CONSTRAINED_VBR }, 0, 0, VE, .unit = "rc" }, | 78 | { "vbr_latency", "Latency Constrained Variable Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_LATENCY_CONSTRAINED_VBR }, 0, 0, VE, .unit = "rc" }, |
| 79 | { "qvbr", "Quality Variable Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_QUALITY_VBR }, 0, 0, VE, .unit = "rc" }, | 79 | { "qvbr", "Quality Variable Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_QUALITY_VBR }, 0, 0, VE, .unit = "rc" }, |
| 80 | { "hqvbr", "High Quality Variable Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_HIGH_QUALITY_VBR }, 0, 0, VE, .unit = "rc" }, | 80 | { "hqvbr", "High Quality Variable Bitrate", 0, AV_OPT_TYPE_CONST, { .i64 = AMF_VIDEO_ENCODER_HEVC_RATE_CONTROL_METHOD_HIGH_QUALITY_VBR }, 0, 0, VE, .unit = "rc" }, |
| @@ -121,16 +121,16 @@ static const AVOption options[] = { · 40 unmodified lines | |||
| 121 | { "pa_scene_change_detection_enable", "Enable scene change detection", OFFSET(pa_scene_change_detection), AV_OPT_TYPE_BOOL, {.i64 = -1 }, -1, 1, VE }, | 121 | { "pa_scene_change_detection_enable", "Enable scene change detection", OFFSET(pa_scene_change_detection), AV_OPT_TYPE_BOOL, {.i64 = -1 }, -1, 1, VE }, |
| 122 | 122 | ||
| 123 | { "pa_scene_change_detection_sensitivity", "Set the sensitivity of scene change detection", OFFSET(pa_scene_change_detection_sensitivity), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_HIGH, VE, .unit = "scene_change_sensitivity" }, | 123 | { "pa_scene_change_detection_sensitivity", "Set the sensitivity of scene change detection", OFFSET(pa_scene_change_detection_sensitivity), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_HIGH, VE, .unit = "scene_change_sensitivity" }, |
| 124 | { "low", "low scene change dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_LOW }, 0, 0, VE, .unit = "scene_change_sensitivity" }, | 124 | { "low", "low scene change detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_LOW }, 0, 0, VE, .unit = "scene_change_sensitivity" }, |
| 125 | { "medium", "medium scene change dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_MEDIUM }, 0, 0, VE, .unit = "scene_change_sensitivity" }, | 125 | { "medium", "medium scene change detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_MEDIUM }, 0, 0, VE, .unit = "scene_change_sensitivity" }, |
| 126 | { "high", "high scene change dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_HIGH }, 0, 0, VE, .unit = "scene_change_sensitivity" }, | 126 | { "high", "high scene change detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_SCENE_CHANGE_DETECTION_SENSITIVITY_HIGH }, 0, 0, VE, .unit = "scene_change_sensitivity" }, |
| 127 | 127 | ||
| 128 | { "pa_static_scene_detection_enable", "Enable static scene detection", OFFSET(pa_static_scene_detection), AV_OPT_TYPE_BOOL, {.i64 = -1 }, -1, 1, VE }, | 128 | { "pa_static_scene_detection_enable", "Enable static scene detection", OFFSET(pa_static_scene_detection), AV_OPT_TYPE_BOOL, {.i64 = -1 }, -1, 1, VE }, |
| 129 | 129 | ||
| 130 | { "pa_static_scene_detection_sensitivity", "Set the sensitivity of static scene detection", OFFSET(pa_static_scene_detection_sensitivity), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_HIGH, VE , .unit = "static_scene_sensitivity" }, | 130 | { "pa_static_scene_detection_sensitivity", "Set the sensitivity of static scene detection", OFFSET(pa_static_scene_detection_sensitivity), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_HIGH, VE , .unit = "static_scene_sensitivity" }, |
| 131 | { "low", "low static scene dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_LOW }, 0, 0, VE, .unit = "static_scene_sensitivity" }, | 131 | { "low", "low static scene detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_LOW }, 0, 0, VE, .unit = "static_scene_sensitivity" }, |
| 132 | { "medium", "medium static scene dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_MEDIUM }, 0, 0, VE, .unit = "static_scene_sensitivity" }, | 132 | { "medium", "medium static scene detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_MEDIUM }, 0, 0, VE, .unit = "static_scene_sensitivity" }, |
| 133 | { "high", "high static scene dectection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_HIGH }, 0, 0, VE, .unit = "static_scene_sensitivity" }, | 133 | { "high", "high static scene detection sensitivity", 0, AV_OPT_TYPE_CONST, {.i64 = AMF_PA_STATIC_SCENE_DETECTION_SENSITIVITY_HIGH }, 0, 0, VE, .unit = "static_scene_sensitivity" }, |
| 134 | 134 | ||
| 135 | { "pa_initial_qp_after_scene_change", "The QP value that is used immediately after a scene change", OFFSET(pa_initial_qp), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, 51, VE }, | 135 | { "pa_initial_qp_after_scene_change", "The QP value that is used immediately after a scene change", OFFSET(pa_initial_qp), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, 51, VE }, |
| 136 | { "pa_max_qp_before_force_skip", "The QP threshold to allow a skip frame", OFFSET(pa_max_qp), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, 51, VE }, | 136 | { "pa_max_qp_before_force_skip", "The QP threshold to allow a skip frame", OFFSET(pa_max_qp), AV_OPT_TYPE_INT, {.i64 = -1 }, -1, 51, VE }, |
| @@ -261,7 +261,7 @@ static av_cold int amf_encode_init_hevc(AVCodecContext *avctx) · 124 unmodified lines | |||
| 261 | // Color Transfer Characteristics (AMF matches ISO/IEC) | 261 | // Color Transfer Characteristics (AMF matches ISO/IEC) |
| 262 | if(avctx->color_trc != AVCOL_TRC_UNSPECIFIED && (pix_fmt == AV_PIX_FMT_NV12 || pix_fmt == AV_PIX_FMT_P010)){ | 262 | if(avctx->color_trc != AVCOL_TRC_UNSPECIFIED && (pix_fmt == AV_PIX_FMT_NV12 || pix_fmt == AV_PIX_FMT_P010)){ |
| 263 | // if input is YUV, color_trc is for VUI only - any value | 263 | // if input is YUV, color_trc is for VUI only - any value |
| 264 | // AMF VCN color coversion supports only specifc output transfer characterstic SMPTE2084 for 10-bit and BT709 for 8-bit | 264 | // AMF VCN color conversion supports only specific output transfer characteristic SMPTE2084 for 10-bit and BT709 for 8-bit |
| 265 | // vpp_amf supports more | 265 | // vpp_amf supports more |
| 266 | AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_TRANSFER_CHARACTERISTIC, avctx->color_trc); | 266 | AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_TRANSFER_CHARACTERISTIC, avctx->color_trc); |
| 267 | } | 267 | } |
| @@ -269,7 +269,7 @@ static av_cold int amf_encode_init_hevc(AVCodecContext *avctx) · 1 unmodified line | |||
| 269 | // Color Primaries (AMF matches ISO/IEC) | 269 | // Color Primaries (AMF matches ISO/IEC) |
| 270 | if(avctx->color_primaries != AVCOL_PRI_UNSPECIFIED && (pix_fmt == AV_PIX_FMT_NV12 || pix_fmt == AV_PIX_FMT_P010)){ | 270 | if(avctx->color_primaries != AVCOL_PRI_UNSPECIFIED && (pix_fmt == AV_PIX_FMT_NV12 || pix_fmt == AV_PIX_FMT_P010)){ |
| 271 | // if input is YUV, color_primaries are for VUI only | 271 | // if input is YUV, color_primaries are for VUI only |
| 272 | // AMF VCN color coversion supports only specifc output primaries BT2020 for 10-bit and BT709 for 8-bit | 272 | // AMF VCN color conversion supports only specific output primaries BT2020 for 10-bit and BT709 for 8-bit |
| 273 | // vpp_amf supports more | 273 | // vpp_amf supports more |
| 274 | AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_COLOR_PRIMARIES, avctx->color_primaries); | 274 | AMF_ASSIGN_PROPERTY_INT64(res, ctx->encoder, AMF_VIDEO_ENCODER_HEVC_OUTPUT_COLOR_PRIMARIES, avctx->color_primaries); |
| 275 | } | 275 | } |
| @@ -108,7 +108,7 @@ typedef const struct { · 107 unmodified lines | |||
| 108 | 108 | ||
| 109 | extern ConstTables ff_aptx_quant_tables[2][NB_SUBBANDS]; | 109 | extern ConstTables ff_aptx_quant_tables[2][NB_SUBBANDS]; |
| 110 | 110 | ||
| 111 | /* Rounded right shift with optionnal clipping */ | 111 | /* Rounded right shift with optional clipping */ |
| 112 | #define RSHIFT_SIZE(size) \ | 112 | #define RSHIFT_SIZE(size) \ |
| 113 | av_always_inline \ | 113 | av_always_inline \ |
| 114 | static int##size##_t rshift##size(int##size##_t value, int shift) \ | 114 | static int##size##_t rshift##size(int##size##_t value, int shift) \ |
| @@ -783,7 +783,7 @@ endfunc · 782 unmodified lines | |||
| 783 | transpose8_4x4 d29, d3, d21, d23 | 783 | transpose8_4x4 d29, d3, d21, d23 |
| 784 | store16 d22, d23, d20, d21, d2, d3, d28, d29, r8 | 784 | store16 d22, d23, d20, d21, d2, d3, d28, d29, r8 |
| 785 | 785 | ||
| 786 | @ reload multiplication coefficiens to q1 | 786 | @ reload multiplication coefficients to q1 |
| 787 | vld1.s16 {q1}, [r9, :128] | 787 | vld1.s16 {q1}, [r9, :128] |
| 788 | .endm | 788 | .endm |
| 789 | 789 | ||
| @@ -100,7 +100,7 @@ function ff_hevc_sao_edge_filter_neon_8, export=1 · 99 unmodified lines | |||
| 100 | mov r12, r4 // r12 = height | 100 | mov r12, r4 // r12 = height |
| 101 | mov r6, r0 // r6 = r0 = dst | 101 | mov r6, r0 // r6 = r0 = dst |
| 102 | mov r7, r1 // r7 = r1 = src | 102 | mov r7, r1 // r7 = r1 = src |
| 103 | vld1.8 {d0}, [r11] // edge_idx tabel load in d0 5x8bit | 103 | vld1.8 {d0}, [r11] // edge_idx table load in d0 5x8bit |
| 104 | vld1.16 {q1}, [r10] // sao_offset_val table load in q1, 5x16bit | 104 | vld1.16 {q1}, [r10] // sao_offset_val table load in q1, 5x16bit |
| 105 | vmov.u8 d1, #2 | 105 | vmov.u8 d1, #2 |
| 106 | vmov.u16 q2, #1 | 106 | vmov.u16 q2, #1 |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * SSA/ASS spliting functions | 2 | * SSA/ASS splitting functions |
| 3 | * Copyright (c) 2010 Aurelien Jacobs <aurel@gnuage.org> | 3 | * Copyright (c) 2010 Aurelien Jacobs <aurel@gnuage.org> |
| 4 | * | 4 | * |
| 5 | * This file is part of FFmpeg. | 5 | * This file is part of FFmpeg. |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * SSA/ASS spliting functions | 2 | * SSA/ASS splitting functions |
| 3 | * Copyright (c) 2010 Aurelien Jacobs <aurel@gnuage.org> | 3 | * Copyright (c) 2010 Aurelien Jacobs <aurel@gnuage.org> |
| 4 | * | 4 | * |
| 5 | * This file is part of FFmpeg. | 5 | * This file is part of FFmpeg. |
| @@ -114,7 +114,7 @@ av_cold void ff_atrac3p_init_dsp_static(void) · 113 unmodified lines | |||
| 114 | * @param[in] fdsp ptr to floating-point DSP context | 114 | * @param[in] fdsp ptr to floating-point DSP context |
| 115 | * @param[in] invert_phase flag indicating 180° phase shift | 115 | * @param[in] invert_phase flag indicating 180° phase shift |
| 116 | * @param[in] reg_offset region offset for trimming envelope data | 116 | * @param[in] reg_offset region offset for trimming envelope data |
| 117 | * @param[out] out receives sythesized data | 117 | * @param[out] out receives synthesized data |
| 118 | */ | 118 | */ |
| 119 | static void waves_synth(Atrac3pWaveSynthParams *synth_param, | 119 | static void waves_synth(Atrac3pWaveSynthParams *synth_param, |
| 120 | Atrac3pWavesData *waves_info, | 120 | Atrac3pWavesData *waves_info, |
| @@ -80,7 +80,7 @@ typedef struct ATRAC9BlockData { · 79 unmodified lines | |||
| 80 | int cpe_base_channel; | 80 | int cpe_base_channel; |
| 81 | int is_signs[30]; | 81 | int is_signs[30]; |
| 82 | 82 | ||
| 83 | int reuseable; | 83 | int reusable; |
| 84 | 84 | ||
| 85 | } ATRAC9BlockData; | 85 | } ATRAC9BlockData; |
| 86 | 86 | ||
| @@ -689,7 +689,7 @@ static int atrac9_decode_block(ATRAC9Context *s, GetBitContext *gb, · 602 unmodified lines | |||
| 689 | if (!reuse_params) { | 689 | if (!reuse_params) { |
| 690 | int stereo_band, ext_band; | 690 | int stereo_band, ext_band; |
| 691 | const int min_band_count = s->samplerate_idx > 7 ? 1 : 3; | 691 | const int min_band_count = s->samplerate_idx > 7 ? 1 : 3; |
| 692 | b->reuseable = 0; | 692 | b->reusable = 0; |
| 693 | b->band_count = get_bits(gb, 4) + min_band_count; | 693 | b->band_count = get_bits(gb, 4) + min_band_count; |
| 694 | b->q_unit_cnt = at9_tab_band_q_unit_map[b->band_count]; | 694 | b->q_unit_cnt = at9_tab_band_q_unit_map[b->band_count]; |
| 695 | 695 | ||
| @@ -721,9 +721,9 @@ static int atrac9_decode_block(ATRAC9Context *s, GetBitContext *gb, · 25 unmodified lines | |||
| 721 | } | 721 | } |
| 722 | b->band_ext_q_unit = at9_tab_band_q_unit_map[ext_band]; | 722 | b->band_ext_q_unit = at9_tab_band_q_unit_map[ext_band]; |
| 723 | } | 723 | } |
| 724 | b->reuseable = 1; | 724 | b->reusable = 1; |
| 725 | } | 725 | } |
| 726 | if (!b->reuseable) { | 726 | if (!b->reusable) { |
| 727 | av_log(s->avctx, AV_LOG_ERROR, "invalid block reused!\n"); | 727 | av_log(s->avctx, AV_LOG_ERROR, "invalid block reused!\n"); |
| 728 | return AVERROR_INVALIDDATA; | 728 | return AVERROR_INVALIDDATA; |
| 729 | } | 729 | } |
| @@ -225,7 +225,7 @@ typedef struct RcOverride{ · 224 unmodified lines | |||
| 225 | #define AV_CODEC_FLAG_QPEL (1 << 4) | 225 | #define AV_CODEC_FLAG_QPEL (1 << 4) |
| 226 | /** | 226 | /** |
| 227 | * Request the encoder to output reconstructed frames, i.e.\ frames that would | 227 | * Request the encoder to output reconstructed frames, i.e.\ frames that would |
| 228 | * be produced by decoding the encoded bistream. These frames may be retrieved | 228 | * be produced by decoding the encoded bitstream. These frames may be retrieved |
| 229 | * by calling avcodec_receive_frame() immediately after a successful call to | 229 | * by calling avcodec_receive_frame() immediately after a successful call to |
| 230 | * avcodec_receive_packet(). | 230 | * avcodec_receive_packet(). |
| 231 | * | 231 | * |
| @@ -2900,7 +2900,7 @@ int avcodec_fill_audio_frame(AVFrame *frame, int nb_channels, · 2668 unmodified lines | |||
| 2900 | * | 2900 | * |
| 2901 | * @note for encoders, this function will only do something if the encoder | 2901 | * @note for encoders, this function will only do something if the encoder |
| 2902 | * declares support for AV_CODEC_CAP_ENCODER_FLUSH. When called, the encoder | 2902 | * declares support for AV_CODEC_CAP_ENCODER_FLUSH. When called, the encoder |
| 2903 | * will drain any remaining packets, and can then be re-used for a different | 2903 | * will drain any remaining packets, and can then be reused for a different |
| 2904 | * stream (as opposed to sending a null frame which will leave the encoder | 2904 | * stream (as opposed to sending a null frame which will leave the encoder |
| 2905 | * in a permanent EOF state after draining). This can be desirable if the | 2905 | * in a permanent EOF state after draining). This can be desirable if the |
| 2906 | * cost of tearing down and replacing the encoder instance is high. | 2906 | * cost of tearing down and replacing the encoder instance is high. |
| @@ -80,7 +80,7 @@ static int h266_metadata_update_fragment(AVBSFContext *bsf, AVPacket *pkt, · 79 unmodified lines | |||
| 80 | } | 80 | } |
| 81 | } | 81 | } |
| 82 | if (!ph) { | 82 | if (!ph) { |
| 83 | av_log(bsf, AV_LOG_ERROR, "no avaliable picture header"); | 83 | av_log(bsf, AV_LOG_ERROR, "no available picture header"); |
| 84 | return AVERROR_INVALIDDATA; | 84 | return AVERROR_INVALIDDATA; |
| 85 | } | 85 | } |
| 86 | 86 | ||
| @@ -1184,7 +1184,7 @@ static int decode_seq_header(AVSContext *h) · 1183 unmodified lines | |||
| 1184 | h->profile = get_bits(&h->gb, 8); | 1184 | h->profile = get_bits(&h->gb, 8); |
| 1185 | if (h->profile != 0x20) { | 1185 | if (h->profile != 0x20) { |
| 1186 | avpriv_report_missing_feature(h->avctx, | 1186 | avpriv_report_missing_feature(h->avctx, |
| 1187 | "only supprt JiZhun profile"); | 1187 | "only support JiZhun profile"); |
| 1188 | return AVERROR_PATCHWELCOME; | 1188 | return AVERROR_PATCHWELCOME; |
| 1189 | } | 1189 | } |
| 1190 | h->level = get_bits(&h->gb, 8); | 1190 | h->level = get_bits(&h->gb, 8); |
| @@ -516,7 +516,7 @@ enum CbsDiscardFlags { · 515 unmodified lines | |||
| 516 | }; | 516 | }; |
| 517 | 517 | ||
| 518 | /** | 518 | /** |
| 519 | * Discard units accroding to 'skip'. | 519 | * Discard units according to 'skip'. |
| 520 | */ | 520 | */ |
| 521 | void CBS_FUNC(discard_units)(CodedBitstreamContext *ctx, | 521 | void CBS_FUNC(discard_units)(CodedBitstreamContext *ctx, |
| 522 | CodedBitstreamFragment *frag, | 522 | CodedBitstreamFragment *frag, |
| @@ -1725,7 +1725,7 @@ static int FUNC(pps) (CodedBitstreamContext *ctx, RWContext *rw, · 1724 unmodified lines | |||
| 1725 | current->pps_pic_height_in_luma_samples != | 1725 | current->pps_pic_height_in_luma_samples != |
| 1726 | sps->sps_pic_height_max_in_luma_samples)) { | 1726 | sps->sps_pic_height_max_in_luma_samples)) { |
| 1727 | av_log(ctx->log_ctx, AV_LOG_ERROR, | 1727 | av_log(ctx->log_ctx, AV_LOG_ERROR, |
| 1728 | "Resoltuion change is not allowed, " | 1728 | "Resolution change is not allowed, " |
| 1729 | "in max resolution (%ux%u) mismatched with pps(%ux%u).\n", | 1729 | "in max resolution (%ux%u) mismatched with pps(%ux%u).\n", |
| 1730 | sps->sps_pic_width_max_in_luma_samples, | 1730 | sps->sps_pic_width_max_in_luma_samples, |
| 1731 | sps->sps_pic_height_max_in_luma_samples, | 1731 | sps->sps_pic_height_max_in_luma_samples, |
| @@ -273,7 +273,7 @@ int CBS_FUNC(write_signed)(CodedBitstreamContext *ctx, PutBitContext *pbc, · 272 unmodified lines | |||
| 273 | } while (0) | 273 | } while (0) |
| 274 | 274 | ||
| 275 | // End of a syntax element which is made up of subelements which | 275 | // End of a syntax element which is made up of subelements which |
| 276 | // are aleady traced, so we are only showing the value. | 276 | // are already traced, so we are only showing the value. |
| 277 | #define CBS_TRACE_READ_END_VALUE_ONLY() \ | 277 | #define CBS_TRACE_READ_END_VALUE_ONLY() \ |
| 278 | do { \ | 278 | do { \ |
| 279 | if (ctx->trace_enable) { \ | 279 | if (ctx->trace_enable) { \ |
| @@ -310,7 +310,7 @@ int CBS_FUNC(write_signed)(CodedBitstreamContext *ctx, PutBitContext *pbc, · 30 unmodified lines | |||
| 310 | } while (0) | 310 | } while (0) |
| 311 | 311 | ||
| 312 | // End of a syntax element which is made up of subelements which are | 312 | // End of a syntax element which is made up of subelements which are |
| 313 | // aleady traced, so we are only showing the value. This forges a | 313 | // already traced, so we are only showing the value. This forges a |
| 314 | // PutBitContext to point to the position of the start of the syntax | 314 | // PutBitContext to point to the position of the start of the syntax |
| 315 | // element, but the other state doesn't matter because length is zero. | 315 | // element, but the other state doesn't matter because length is zero. |
| 316 | #define CBS_TRACE_WRITE_END_VALUE_ONLY() \ | 316 | #define CBS_TRACE_WRITE_END_VALUE_ONLY() \ |
| @@ -814,7 +814,7 @@ static int process_cc608(CCaptionSubContext *ctx, uint8_t hi, uint8_t lo) · 813 unmodified lines | |||
| 814 | break; | 814 | break; |
| 815 | case 0x2e: | 815 | case 0x2e: |
| 816 | /* erase buffered (non displayed) memory */ | 816 | /* erase buffered (non displayed) memory */ |
| 817 | // Only in realtime mode. In buffered mode, we re-use the inactive screen | 817 | // Only in realtime mode. In buffered mode, we reuse the inactive screen |
| 818 | // for our own buffering. | 818 | // for our own buffering. |
| 819 | if (ctx->real_time) { | 819 | if (ctx->real_time) { |
| 820 | struct Screen *screen = ctx->screen + !ctx->active_screen; | 820 | struct Screen *screen = ctx->screen + !ctx->active_screen; |
| @@ -148,7 +148,7 @@ typedef struct AVCodecParameters { · 147 unmodified lines | |||
| 148 | * durations. Should be set to { 0, 1 } when some frames have differing | 148 | * durations. Should be set to { 0, 1 } when some frames have differing |
| 149 | * durations or if the value is not known. | 149 | * durations or if the value is not known. |
| 150 | * | 150 | * |
| 151 | * @note This field correponds to values that are stored in codec-level | 151 | * @note This field corresponds to values that are stored in codec-level |
| 152 | * headers and is typically overridden by container/transport-layer | 152 | * headers and is typically overridden by container/transport-layer |
| 153 | * timestamps, when available. It should thus be used only as a last resort, | 153 | * timestamps, when available. It should thus be used only as a last resort, |
| 154 | * when no higher-level timing information is available. | 154 | * when no higher-level timing information is available. |
| @@ -311,7 +311,7 @@ static int chs_parse_header(DCAXllDecoder *s, DCAXllChSet *c, DCAExssAsset *asse · 310 unmodified lines | |||
| 311 | b->highest_pred_order = b->adapt_pred_order[i]; | 311 | b->highest_pred_order = b->adapt_pred_order[i]; |
| 312 | } | 312 | } |
| 313 | if (b->highest_pred_order > s->nsegsamples) { | 313 | if (b->highest_pred_order > s->nsegsamples) { |
| 314 | av_log(s->avctx, AV_LOG_ERROR, "Invalid XLL adaptive predicition order\n"); | 314 | av_log(s->avctx, AV_LOG_ERROR, "Invalid XLL adaptive prediction order\n"); |
| 315 | return AVERROR_INVALIDDATA; | 315 | return AVERROR_INVALIDDATA; |
| 316 | } | 316 | } |
| 317 | 317 | ||
| @@ -666,7 +666,7 @@ static void chs_filter_band_data(DCAXllDecoder *s, DCAXllChSet *c, int band) · 348 unmodified lines | |||
| 666 | } | 666 | } |
| 667 | } | 667 | } |
| 668 | 668 | ||
| 669 | // Inverse pairwise channel decorrellation | 669 | // Inverse pairwise channel decorrelation |
| 670 | if (b->decor_enabled) { | 670 | if (b->decor_enabled) { |
| 671 | int32_t *tmp[DCA_XLL_CHANNELS_MAX]; | 671 | int32_t *tmp[DCA_XLL_CHANNELS_MAX]; |
| 672 | 672 | ||
| @@ -854,7 +854,7 @@ static int init_quantization_noise(DCAEncContext *c, int noise, int forbid_zero) · 853 unmodified lines | |||
| 854 | if (c->lfe_channel) | 854 | if (c->lfe_channel) |
| 855 | c->consumed_bits += 72; | 855 | c->consumed_bits += 72; |
| 856 | 856 | ||
| 857 | /* attempt to guess the bit distribution based on the prevoius frame */ | 857 | /* attempt to guess the bit distribution based on the previous frame */ |
| 858 | for (ch = 0; ch < c->fullband_channels; ch++) { | 858 | for (ch = 0; ch < c->fullband_channels; ch++) { |
| 859 | for (band = 0; band < 32; band++) { | 859 | for (band = 0; band < 32; band++) { |
| 860 | int snr_cb = c->peak_cb[ch][band] - c->band_masking_cb[band] - noise; | 860 | int snr_cb = c->peak_cb[ch][band] - c->band_masking_cb[band] - noise; |
| @@ -826,7 +826,7 @@ static int subband_coeffs(const DiracContext *s, int x, int y, int p, · 825 unmodified lines | |||
| 826 | int level, coef = 0; | 826 | int level, coef = 0; |
| 827 | for (level = 0; level < s->wavelet_depth; level++) { | 827 | for (level = 0; level < s->wavelet_depth; level++) { |
| 828 | SliceCoeffs *o = &c[level]; | 828 | SliceCoeffs *o = &c[level]; |
| 829 | const SubBand *b = &s->plane[p].band[level][3]; /* orientation doens't matter */ | 829 | const SubBand *b = &s->plane[p].band[level][3]; /* orientation doesn't matter */ |
| 830 | o->top = b->height * y / s->num_y; | 830 | o->top = b->height * y / s->num_y; |
| 831 | o->left = b->width * x / s->num_x; | 831 | o->left = b->width * x / s->num_x; |
| 832 | o->tot_h = ((b->width * (x + 1)) / s->num_x) - o->left; | 832 | o->tot_h = ((b->width * (x + 1)) / s->num_x) - o->left; |
| @@ -365,7 +365,7 @@ int ff_dovi_rpu_parse(DOVIContext *s, const uint8_t *rpu, size_t rpu_size, · 364 unmodified lines | |||
| 365 | 365 | ||
| 366 | /* Container */ | 366 | /* Container */ |
| 367 | if (s->cfg.dv_profile == 10 /* dav1.10 */) { | 367 | if (s->cfg.dv_profile == 10 /* dav1.10 */) { |
| 368 | /* DV inside AV1 re-uses an EMDF container skeleton, but with fixed | 368 | /* DV inside AV1 reuses an EMDF container skeleton, but with fixed |
| 369 | * values - so we can effectively treat this as a magic byte sequence. | 369 | * values - so we can effectively treat this as a magic byte sequence. |
| 370 | * | 370 | * |
| 371 | * The exact fields are, as follows: | 371 | * The exact fields are, as follows: |
| @@ -300,7 +300,7 @@ static int cmp_dm_level0(const AVDOVIColorMetadata *dm1, · 299 unmodified lines | |||
| 300 | sizeof(AVDOVIColorMetadata) -offsetof(AVDOVIColorMetadata, signal_eotf)); | 300 | sizeof(AVDOVIColorMetadata) -offsetof(AVDOVIColorMetadata, signal_eotf)); |
| 301 | } | 301 | } |
| 302 | 302 | ||
| 303 | /* Tries to re-use the static ext blocks. May reorder `ext->dm_static` */ | 303 | /* Tries to reuse the static ext blocks. May reorder `ext->dm_static` */ |
| 304 | static int try_reuse_ext(DOVIExt *ext, const AVDOVIMetadata *metadata) | 304 | static int try_reuse_ext(DOVIExt *ext, const AVDOVIMetadata *metadata) |
| 305 | { | 305 | { |
| 306 | int i, j, idx = 0; | 306 | int i, j, idx = 0; |
| @@ -56,7 +56,7 @@ enum EVCNALUnitType { · 55 unmodified lines | |||
| 56 | EVC_RSV_VCL_NUT22 = 22, | 56 | EVC_RSV_VCL_NUT22 = 22, |
| 57 | EVC_RSV_VCL_NUT23 = 23, | 57 | EVC_RSV_VCL_NUT23 = 23, |
| 58 | EVC_SPS_NUT = 24, /* Sequence parameter set */ | 58 | EVC_SPS_NUT = 24, /* Sequence parameter set */ |
| 59 | EVC_PPS_NUT = 25, /* Picture paremeter set */ | 59 | EVC_PPS_NUT = 25, /* Picture parameter set */ |
| 60 | EVC_APS_NUT = 26, /* Adaptation parameter set */ | 60 | EVC_APS_NUT = 26, /* Adaptation parameter set */ |
| 61 | EVC_FD_NUT = 27, /* Filler data */ | 61 | EVC_FD_NUT = 27, /* Filler data */ |
| 62 | EVC_SEI_NUT = 28, /* Supplemental enhancement information */ | 62 | EVC_SEI_NUT = 28, /* Supplemental enhancement information */ |
| @@ -31,7 +31,7 @@ · 30 unmodified lines | |||
| 31 | #include "evc.h" | 31 | #include "evc.h" |
| 32 | #include "evc_ps.h" | 32 | #include "evc_ps.h" |
| 33 | 33 | ||
| 34 | // The sturcture reflects Slice Header RBSP(raw byte sequence payload) layout | 34 | // The structure reflects Slice Header RBSP(raw byte sequence payload) layout |
| 35 | // @see ISO_IEC_23094-1 section 7.3.2.6 | 35 | // @see ISO_IEC_23094-1 section 7.3.2.6 |
| 36 | // | 36 | // |
| 37 | // The following descriptors specify the parsing process of each element | 37 | // The following descriptors specify the parsing process of each element |
| @@ -102,7 +102,7 @@ typedef struct VUIParameters { · 101 unmodified lines | |||
| 102 | HRDParameters hrd_parameters; | 102 | HRDParameters hrd_parameters; |
| 103 | } VUIParameters; | 103 | } VUIParameters; |
| 104 | 104 | ||
| 105 | // The sturcture reflects SPS RBSP(raw byte sequence payload) layout | 105 | // The structure reflects SPS RBSP(raw byte sequence payload) layout |
| 106 | // @see ISO_IEC_23094-1 section 7.3.2.1 | 106 | // @see ISO_IEC_23094-1 section 7.3.2.1 |
| 107 | // | 107 | // |
| 108 | // The following descriptors specify the parsing process of each element | 108 | // The following descriptors specify the parsing process of each element |
| @@ -182,7 +182,7 @@ static evrc_packet_rate buf_size2bitrate(const int buf_size) · 181 unmodified lines | |||
| 182 | * | 182 | * |
| 183 | * @param avctx the AV codec context | 183 | * @param avctx the AV codec context |
| 184 | * @param buf_size length of the buffer | 184 | * @param buf_size length of the buffer |
| 185 | * @param buf the bufffer | 185 | * @param buf the buffer |
| 186 | * | 186 | * |
| 187 | * @return the bitrate on success, | 187 | * @return the bitrate on success, |
| 188 | * RATE_ERRS if the bitrate cannot be satisfactorily determined | 188 | * RATE_ERRS if the bitrate cannot be satisfactorily determined |
| @@ -979,7 +979,7 @@ static av_cold int encode_init_internal(AVCodecContext *avctx) · 978 unmodified lines | |||
| 979 | if ((ret = ff_ffv1_common_init(avctx, s)) < 0) | 979 | if ((ret = ff_ffv1_common_init(avctx, s)) < 0) |
| 980 | return ret; | 980 | return ret; |
| 981 | 981 | ||
| 982 | if (s->ac == 1) // Compatbility with common command line usage | 982 | if (s->ac == 1) // Compatibility with common command line usage |
| 983 | s->ac = AC_RANGE_CUSTOM_TAB; | 983 | s->ac = AC_RANGE_CUSTOM_TAB; |
| 984 | else if (s->ac == AC_RANGE_DEFAULT_TAB_FORCE) | 984 | else if (s->ac == AC_RANGE_DEFAULT_TAB_FORCE) |
| 985 | s->ac = AC_RANGE_DEFAULT_TAB; | 985 | s->ac = AC_RANGE_DEFAULT_TAB; |
| @@ -58,7 +58,7 @@ typedef struct FLACFrameInfo { · 57 unmodified lines | |||
| 58 | * @param[out] s where parsed information is stored | 58 | * @param[out] s where parsed information is stored |
| 59 | * @param[in] buffer pointer to start of 34-byte streaminfo data | 59 | * @param[in] buffer pointer to start of 34-byte streaminfo data |
| 60 | * | 60 | * |
| 61 | * @return negative error code on faiure or >= 0 on success | 61 | * @return negative error code on failure or >= 0 on success |
| 62 | */ | 62 | */ |
| 63 | int ff_flac_parse_streaminfo(AVCodecContext *avctx, struct FLACStreaminfo *s, | 63 | int ff_flac_parse_streaminfo(AVCodecContext *avctx, struct FLACStreaminfo *s, |
| 64 | const uint8_t *buffer); | 64 | const uint8_t *buffer); |
| @@ -211,8 +211,8 @@ static int16_t long_term_filter(AudioDSPContext *adsp, int pitch_delay_int, · 210 unmodified lines | |||
| 211 | /* Compute signals with non-integer delay k (with 1/8 precision), | 211 | /* Compute signals with non-integer delay k (with 1/8 precision), |
| 212 | where k is in [0;6] range. | 212 | where k is in [0;6] range. |
| 213 | Entire delay is qual to best_delay+(k+1)/8 | 213 | Entire delay is qual to best_delay+(k+1)/8 |
| 214 | This is archieved by applying an interpolation filter of | 214 | This is achieved by applying an interpolation filter of |
| 215 | legth 33 to source signal. */ | 215 | length 33 to source signal. */ |
| 216 | for (k = 0; k < ANALYZED_FRAC_DELAYS; k++) { | 216 | for (k = 0; k < ANALYZED_FRAC_DELAYS; k++) { |
| 217 | ff_acelp_interpolate(&delayed_signal[k][0], | 217 | ff_acelp_interpolate(&delayed_signal[k][0], |
| 218 | &sig_scaled[RES_PREV_DATA_SIZE - best_delay_int], | 218 | &sig_scaled[RES_PREV_DATA_SIZE - best_delay_int], |
| @@ -36,7 +36,7 @@ · 35 unmodified lines | |||
| 36 | #define MB_TYPE_REF0 MB_TYPE_CODEC_SPECIFIC | 36 | #define MB_TYPE_REF0 MB_TYPE_CODEC_SPECIFIC |
| 37 | #define MB_TYPE_8x8DCT 0x01000000 | 37 | #define MB_TYPE_8x8DCT 0x01000000 |
| 38 | 38 | ||
| 39 | // This table must be here because scan8[constant] must be known at compiletime | 39 | // This table must be here because scan8[constant] must be known at compile time |
| 40 | static const uint8_t scan8[16 * 3 + 3] = { | 40 | static const uint8_t scan8[16 * 3 + 3] = { |
| 41 | 4 + 1 * 8, 5 + 1 * 8, 4 + 2 * 8, 5 + 2 * 8, | 41 | 4 + 1 * 8, 5 + 1 * 8, 4 + 2 * 8, 5 + 2 * 8, |
| 42 | 6 + 1 * 8, 7 + 1 * 8, 6 + 2 * 8, 7 + 2 * 8, | 42 | 6 + 1 * 8, 7 + 1 * 8, 6 + 2 * 8, 7 + 2 * 8, |
| @@ -754,7 +754,7 @@ static int decode_nal_units(H264Context *h, AVBufferRef *buf_ref, · 753 unmodified lines | |||
| 754 | if (h->cur_pic_ptr->decode_error_flags) { | 754 | if (h->cur_pic_ptr->decode_error_flags) { |
| 755 | /* Frame-threading in use */ | 755 | /* Frame-threading in use */ |
| 756 | atomic_int *decode_error = h->cur_pic_ptr->decode_error_flags; | 756 | atomic_int *decode_error = h->cur_pic_ptr->decode_error_flags; |
| 757 | /* Using atomics here is not supposed to provide syncronisation; | 757 | /* Using atomics here is not supposed to provide synchronisation; |
| 758 | * they are merely used to allow to set decode_error from both | 758 | * they are merely used to allow to set decode_error from both |
| 759 | * decoding threads in case of coded slices. */ | 759 | * decoding threads in case of coded slices. */ |
| 760 | atomic_fetch_or_explicit(decode_error, FF_DECODE_ERROR_DECODE_SLICES, | 760 | atomic_fetch_or_explicit(decode_error, FF_DECODE_ERROR_DECODE_SLICES, |
| @@ -541,7 +541,7 @@ typedef struct H264Context { · 540 unmodified lines | |||
| 541 | * all subsequently output fraames are also marked as recovered | 541 | * all subsequently output fraames are also marked as recovered |
| 542 | * | 542 | * |
| 543 | * In effect, if you want all subsequent DECODED frames marked as recovered, set frame_recovered | 543 | * In effect, if you want all subsequent DECODED frames marked as recovered, set frame_recovered |
| 544 | * If you want all subsequent DISPAYED frames marked as recovered, set the frame->recovered | 544 | * If you want all subsequent DISPLAYED frames marked as recovered, set the frame->recovered |
| 545 | */ | 545 | */ |
| 546 | int frame_recovered; | 546 | int frame_recovered; |
| 547 | 547 | ||
| @@ -96,7 +96,7 @@ static void init_slice_c(int8_t out[64][64], uint8_t h, uint8_t v, · 95 unmodified lines | |||
| 96 | } | 96 | } |
| 97 | } | 97 | } |
| 98 | 98 | ||
| 99 | // Deblock horizontal edges by simple attentuation of values | 99 | // Deblock horizontal edges by simple attenuation of values |
| 100 | for (int y = 0; y < 64; y += 8) { | 100 | for (int y = 0; y < 64; y += 8) { |
| 101 | for (int x = 0; x < 64; x++) { | 101 | for (int x = 0; x < 64; x++) { |
| 102 | out[y + 0][x] = (out[y + 0][x] * deblock_coeff) >> 7; | 102 | out[y + 0][x] = (out[y + 0][x] * deblock_coeff) >> 7; |
| @@ -239,7 +239,7 @@ int ff_h274_apply_film_grain(AVFrame *out_frame, const AVFrame *in_frame, · 136 unmodified lines | |||
| 239 | 239 | ||
| 240 | uint8_t * const out = out_frame->data[c]; | 240 | uint8_t * const out = out_frame->data[c]; |
| 241 | const int out_stride = out_frame->linesize[c]; | 241 | const int out_stride = out_frame->linesize[c]; |
| 242 | int8_t * const grain = out_frame->data[c]; // re-use output buffer for grain | 242 | int8_t * const grain = out_frame->data[c]; // reuse output buffer for grain |
| 243 | const int grain_stride = out_stride; | 243 | const int grain_stride = out_stride; |
| 244 | const uint8_t * const in = in_frame->data[c]; | 244 | const uint8_t * const in = in_frame->data[c]; |
| 245 | const int in_stride = in_frame->linesize[c]; | 245 | const int in_stride = in_frame->linesize[c]; |
| @@ -305,7 +305,7 @@ static av_cold int hap_init(AVCodecContext *avctx) · 304 unmodified lines | |||
| 305 | } | 305 | } |
| 306 | break; | 306 | break; |
| 307 | default: | 307 | default: |
| 308 | av_log(avctx, AV_LOG_ERROR, "Invalid compresor %02X\n", ctx->opt_compressor); | 308 | av_log(avctx, AV_LOG_ERROR, "Invalid compressor %02X\n", ctx->opt_compressor); |
| 309 | return AVERROR_INVALIDDATA; | 309 | return AVERROR_INVALIDDATA; |
| 310 | } | 310 | } |
| 311 | if (corrected_chunk_count != ctx->opt_chunk_count) { | 311 | if (corrected_chunk_count != ctx->opt_chunk_count) { |
| @@ -3544,7 +3544,7 @@ static int decode_slice(HEVCContext *s, unsigned nal_idx, GetBitContext *gb) · 3543 unmodified lines | |||
| 3544 | 3544 | ||
| 3545 | ret = hls_slice_header(&s->sh, s, gb); | 3545 | ret = hls_slice_header(&s->sh, s, gb); |
| 3546 | if (ret < 0) { | 3546 | if (ret < 0) { |
| 3547 | // hls_slice_header() does not cleanup on failure thus the state now is inconsistant so we cannot use it on depandant slices | 3547 | // hls_slice_header() does not cleanup on failure thus the state now is inconsistent so we cannot use it on dependent slices |
| 3548 | s->slice_initialized = 0; | 3548 | s->slice_initialized = 0; |
| 3549 | return ret; | 3549 | return ret; |
| 3550 | } | 3550 | } |
| @@ -4206,7 +4206,7 @@ static void hevc_decode_flush(AVCodecContext *avctx) · 655 unmodified lines | |||
| 4206 | static const AVOption options[] = { | 4206 | static const AVOption options[] = { |
| 4207 | { "apply_defdispwin", "Apply default display window from VUI", OFFSET(apply_defdispwin), | 4207 | { "apply_defdispwin", "Apply default display window from VUI", OFFSET(apply_defdispwin), |
| 4208 | AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, PAR }, | 4208 | AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, PAR }, |
| 4209 | { "strict-displaywin", "stricly apply default display window size", OFFSET(apply_defdispwin), | 4209 | { "strict-displaywin", "strictly apply default display window size", OFFSET(apply_defdispwin), |
| 4210 | AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, PAR }, | 4210 | AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, PAR }, |
| 4211 | { "view_ids", "Array of view IDs that should be decoded and output; a single -1 to decode all views", | 4211 | { "view_ids", "Array of view IDs that should be decoded and output; a single -1 to decode all views", |
| 4212 | .offset = OFFSET(view_ids), .type = AV_OPT_TYPE_INT | AV_OPT_TYPE_FLAG_ARRAY, | 4212 | .offset = OFFSET(view_ids), .type = AV_OPT_TYPE_INT | AV_OPT_TYPE_FLAG_ARRAY, |
| @@ -1097,7 +1097,7 @@ static void do_plc(int16_t *plc_residual, /* (o) concealed residual */ · 1096 unmodified lines | |||
| 1097 | use_gain = 29491; /* 0.9 in Q15 */ | 1097 | use_gain = 29491; /* 0.9 in Q15 */ |
| 1098 | } | 1098 | } |
| 1099 | 1099 | ||
| 1100 | /* Compute mixing factor of picth repeatition and noise: | 1100 | /* Compute mixing factor of picth repetition and noise: |
| 1101 | for max_per>0.7 set periodicity to 1.0 | 1101 | for max_per>0.7 set periodicity to 1.0 |
| 1102 | 0.4<max_per<0.7 set periodicity to (maxper-0.4)/0.7-0.4) | 1102 | 0.4<max_per<0.7 set periodicity to (maxper-0.4)/0.7-0.4) |
| 1103 | max_per<0.4 set periodicity to 0.0 | 1103 | max_per<0.4 set periodicity to 0.0 |
| @@ -1142,7 +1142,7 @@ static void do_plc(int16_t *plc_residual, /* (o) concealed residual */ · 38 unmodified lines | |||
| 1142 | randvec[i] = s->prevResidual[pick]; | 1142 | randvec[i] = s->prevResidual[pick]; |
| 1143 | } | 1143 | } |
| 1144 | 1144 | ||
| 1145 | /* pitch repeatition component */ | 1145 | /* pitch repetition component */ |
| 1146 | pick = i - use_lag; | 1146 | pick = i - use_lag; |
| 1147 | 1147 | ||
| 1148 | if (pick < 0) { | 1148 | if (pick < 0) { |
| @@ -1160,7 +1160,7 @@ static void do_plc(int16_t *plc_residual, /* (o) concealed residual */ · 11 unmodified lines | |||
| 1160 | tot_gain = SPL_MUL_16_16_RSFT(29491, use_gain, 15); /* 0.9*use_gain */ | 1160 | tot_gain = SPL_MUL_16_16_RSFT(29491, use_gain, 15); /* 0.9*use_gain */ |
| 1161 | } | 1161 | } |
| 1162 | 1162 | ||
| 1163 | /* mix noise and pitch repeatition */ | 1163 | /* mix noise and pitch repetition */ |
| 1164 | plc_residual[i] = SPL_MUL_16_16_RSFT(tot_gain, (pitchfact * plc_residual[i] + (32767 - pitchfact) * randvec[i] + 16384) >> 15, 15); | 1164 | plc_residual[i] = SPL_MUL_16_16_RSFT(tot_gain, (pitchfact * plc_residual[i] + (32767 - pitchfact) * randvec[i] + 16384) >> 15, 15); |
| 1165 | 1165 | ||
| 1166 | /* Shifting down the result one step extra to ensure that no overflow | 1166 | /* Shifting down the result one step extra to ensure that no overflow |
| @@ -1802,7 +1802,7 @@ static int j2kenc_destroy(AVCodecContext *avctx) · 1801 unmodified lines | |||
| 1802 | return 0; | 1802 | return 0; |
| 1803 | } | 1803 | } |
| 1804 | 1804 | ||
| 1805 | // taken from the libopenjpeg wraper so it matches | 1805 | // taken from the libopenjpeg wrapper so it matches |
| 1806 | 1806 | ||
| 1807 | #define OFFSET(x) offsetof(Jpeg2000EncoderContext, x) | 1807 | #define OFFSET(x) offsetof(Jpeg2000EncoderContext, x) |
| 1808 | #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM | 1808 | #define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM |
| @@ -1362,7 +1362,7 @@ static int jpeg2000_decode_packet(Jpeg2000DecoderContext *s, Jpeg2000Tile *tile, · 1361 unmodified lines | |||
| 1362 | } | 1362 | } |
| 1363 | bits_to_read = (uint8_t) (bits_to_read + cblk->lblock); | 1363 | bits_to_read = (uint8_t) (bits_to_read + cblk->lblock); |
| 1364 | segment_bytes = get_bits(s, bits_to_read); | 1364 | segment_bytes = get_bits(s, bits_to_read); |
| 1365 | // Write length information for HT Refinment segment | 1365 | // Write length information for HT Refinement segment |
| 1366 | cblk->pass_lengths[1] += segment_bytes; | 1366 | cblk->pass_lengths[1] += segment_bytes; |
| 1367 | } else if (!(cblk->modes & (JPEG2000_CBLK_TERMALL | JPEG2000_CBLK_BYPASS))) { | 1367 | } else if (!(cblk->modes & (JPEG2000_CBLK_TERMALL | JPEG2000_CBLK_BYPASS))) { |
| 1368 | // Common case for non-HT code-blocks; we have only one segment | 1368 | // Common case for non-HT code-blocks; we have only one segment |
| @@ -2814,7 +2814,7 @@ static av_cold int jpeg2000_decode_init(AVCodecContext *avctx) · 1445 unmodified lines | |||
| 2814 | Jpeg2000DecoderContext *s = avctx->priv_data; | 2814 | Jpeg2000DecoderContext *s = avctx->priv_data; |
| 2815 | 2815 | ||
| 2816 | if (avctx->lowres) | 2816 | if (avctx->lowres) |
| 2817 | av_log(avctx, AV_LOG_WARNING, "lowres is overriden by reduction_factor but set anyway\n"); | 2817 | av_log(avctx, AV_LOG_WARNING, "lowres is overridden by reduction_factor but set anyway\n"); |
| 2818 | if (!s->reduction_factor && avctx->lowres < JPEG2000_MAX_RESLEVELS) { | 2818 | if (!s->reduction_factor && avctx->lowres < JPEG2000_MAX_RESLEVELS) { |
| 2819 | s->reduction_factor = avctx->lowres; | 2819 | s->reduction_factor = avctx->lowres; |
| 2820 | } | 2820 | } |
| @@ -250,7 +250,7 @@ static uint8_t clut_pick_or_set(ARIBCaptionContext *ctx, int r, int g, int b, in · 249 unmodified lines | |||
| 250 | return c; | 250 | return c; |
| 251 | } | 251 | } |
| 252 | 252 | ||
| 253 | /* initialiaze CLUT with each character colors */ | 253 | /* initialize CLUT with each character colors */ |
| 254 | static void clut_init(ARIBCaptionContext *ctx, aribcc_caption_region_t *region) | 254 | static void clut_init(ARIBCaptionContext *ctx, aribcc_caption_region_t *region) |
| 255 | { | 255 | { |
| 256 | aribcc_color_t text_color, back_color, stroke_color; | 256 | aribcc_color_t text_color, back_color, stroke_color; |
| @@ -93,7 +93,7 @@ static float quality_to_distance(float quality) · 92 unmodified lines | |||
| 93 | } | 93 | } |
| 94 | 94 | ||
| 95 | /** | 95 | /** |
| 96 | * Initalize the encoder on a per-file basis. All of these need to be set | 96 | * Initialize the encoder on a per-file basis. All of these need to be set |
| 97 | * once each time the encoder is reset, which is each frame for still | 97 | * once each time the encoder is reset, which is each frame for still |
| 98 | * images, to make the image2 muxer work. For animation this is run once. | 98 | * images, to make the image2 muxer work. For animation this is run once. |
| 99 | * | 99 | * |
| @@ -44,7 +44,7 @@ · 43 unmodified lines | |||
| 44 | #define MAX_BS_BUF (128 * 1024 * 1024) | 44 | #define MAX_BS_BUF (128 * 1024 * 1024) |
| 45 | #define MAX_NUM_FRMS (1) // supports only 1-frame in an access unit | 45 | #define MAX_NUM_FRMS (1) // supports only 1-frame in an access unit |
| 46 | #define FRM_IDX (0) // supports only 1-frame in an access unit | 46 | #define FRM_IDX (0) // supports only 1-frame in an access unit |
| 47 | #define MAX_NUM_CC (OAPV_MAX_CC) // Max number of color componets (upto 4:4:4:4) | 47 | #define MAX_NUM_CC (OAPV_MAX_CC) // Max number of color components (upto 4:4:4:4) |
| 48 | 48 | ||
| 49 | /** | 49 | /** |
| 50 | * The structure stores all the states associated with the instance of APV encoder | 50 | * The structure stores all the states associated with the instance of APV encoder |
| @@ -393,7 +393,7 @@ static int liboapve_encode(AVCodecContext *avctx, AVPacket *avpkt, · 342 unmodified lines | |||
| 393 | uint8_t *data = apv->bitb.addr; | 393 | uint8_t *data = apv->bitb.addr; |
| 394 | int size = apv->stat.write; | 394 | int size = apv->stat.write; |
| 395 | 395 | ||
| 396 | // The encoder may return a "Raw bitstream" formated AU, including au_size. | 396 | // The encoder may return a "Raw bitstream" formatted AU, including au_size. |
| 397 | // Discard it as we only need the access_unit() structure. | 397 | // Discard it as we only need the access_unit() structure. |
| 398 | if (size > 4 && AV_RB32(data) != APV_SIGNATURE) { | 398 | if (size > 4 && AV_RB32(data) != APV_SIGNATURE) { |
| 399 | data += 4; | 399 | data += 4; |
| @@ -674,7 +674,7 @@ endfunc · 673 unmodified lines | |||
| 674 | vdp2.h.bu.b \out1, \in1, vr5 | 674 | vdp2.h.bu.b \out1, \in1, vr5 |
| 675 | vdp2.h.bu.b vr12, \in2, vr5 | 675 | vdp2.h.bu.b vr12, \in2, vr5 |
| 676 | vdp2.h.bu.b vr20, \in3, vr5 | 676 | vdp2.h.bu.b vr20, \in3, vr5 |
| 677 | vbsrl.v \in0, \in0, 1 //Back up previous 7 loaded datas, | 677 | vbsrl.v \in0, \in0, 1 //Back up previous 7 loaded data, |
| 678 | vbsrl.v \in1, \in1, 1 //so just need to insert the 8th | 678 | vbsrl.v \in1, \in1, 1 //so just need to insert the 8th |
| 679 | vbsrl.v \in2, \in2, 1 //load in the next loop. | 679 | vbsrl.v \in2, \in2, 1 //load in the next loop. |
| 680 | vbsrl.v \in3, \in3, 1 | 680 | vbsrl.v \in3, \in3, 1 |
| @@ -903,7 +903,7 @@ endfunc · 222 unmodified lines | |||
| 903 | xvhaddw.d.h xr7 | 903 | xvhaddw.d.h xr7 |
| 904 | xvhaddw.d.h xr8 | 904 | xvhaddw.d.h xr8 |
| 905 | xvhaddw.d.h xr9 | 905 | xvhaddw.d.h xr9 |
| 906 | xvbsrl.v xr14, xr14, 1 //Back up previous 7 loaded datas, | 906 | xvbsrl.v xr14, xr14, 1 //Back up previous 7 loaded data, |
| 907 | xvbsrl.v xr15, xr15, 1 //so just need to insert the 8th | 907 | xvbsrl.v xr15, xr15, 1 //so just need to insert the 8th |
| 908 | xvbsrl.v xr16, xr16, 1 //load in next loop. | 908 | xvbsrl.v xr16, xr16, 1 //load in next loop. |
| 909 | xvbsrl.v xr17, xr17, 1 | 909 | xvbsrl.v xr17, xr17, 1 |
| @@ -332,7 +332,7 @@ ASM_PREF\name: ; · 331 unmodified lines | |||
| 332 | 332 | ||
| 333 | /* | 333 | /* |
| 334 | * Description : Store elements of vector | 334 | * Description : Store elements of vector |
| 335 | * vd : Data vector to be stroed | 335 | * vd : Data vector to be stored |
| 336 | * rk : Address of data storage | 336 | * rk : Address of data storage |
| 337 | * ra : Offset of address | 337 | * ra : Offset of address |
| 338 | * si : Index of data in vd | 338 | * si : Index of data in vd |
| @@ -30,7 +30,7 @@ void ff_vc1_inv_trans_8x8_dc_lasx(uint8_t *dest, ptrdiff_t stride, int16_t *bloc · 29 unmodified lines | |||
| 30 | void ff_vc1_inv_trans_8x4_lasx(uint8_t *dest, ptrdiff_t stride, int16_t *block); | 30 | void ff_vc1_inv_trans_8x4_lasx(uint8_t *dest, ptrdiff_t stride, int16_t *block); |
| 31 | void ff_vc1_inv_trans_8x4_dc_lasx(uint8_t *dest, ptrdiff_t stride, int16_t *block); | 31 | void ff_vc1_inv_trans_8x4_dc_lasx(uint8_t *dest, ptrdiff_t stride, int16_t *block); |
| 32 | void ff_vc1_inv_trans_4x8_dc_lasx(uint8_t *dest, ptrdiff_t stride, int16_t *block); | 32 | void ff_vc1_inv_trans_4x8_dc_lasx(uint8_t *dest, ptrdiff_t stride, int16_t *block); |
| 33 | void ff_vc1_inv_trans_4x8_lasx(uint8_t *dest, ptrdiff_t stride, int16_t *blokc); | 33 | void ff_vc1_inv_trans_4x8_lasx(uint8_t *dest, ptrdiff_t stride, int16_t *block); |
| 34 | void ff_vc1_inv_trans_4x4_dc_lasx(uint8_t *dest, ptrdiff_t stride, int16_t *block); | 34 | void ff_vc1_inv_trans_4x4_dc_lasx(uint8_t *dest, ptrdiff_t stride, int16_t *block); |
| 35 | void ff_vc1_inv_trans_4x4_lasx(uint8_t *dest, ptrdiff_t stride, int16_t *block); | 35 | void ff_vc1_inv_trans_4x4_lasx(uint8_t *dest, ptrdiff_t stride, int16_t *block); |
| 36 | 36 | ||
| @@ -50,7 +50,7 @@ typedef struct HuffEntry { · 49 unmodified lines | |||
| 50 | 50 | ||
| 51 | typedef struct PTable { | 51 | typedef struct PTable { |
| 52 | int value; ///< input value | 52 | int value; ///< input value |
| 53 | int64_t prob; ///< number of occurences of this value in input | 53 | int64_t prob; ///< number of occurrences of this value in input |
| 54 | } PTable; | 54 | } PTable; |
| 55 | 55 | ||
| 56 | typedef struct Slice { | 56 | typedef struct Slice { |
| @@ -2124,7 +2124,7 @@ static int mjpeg_decode_app(MJpegDecodeContext *s) · 2123 unmodified lines | |||
| 2124 | av_log(s->avctx, AV_LOG_WARNING, "Invalid number of markers coded in APP2\n"); | 2124 | av_log(s->avctx, AV_LOG_WARNING, "Invalid number of markers coded in APP2\n"); |
| 2125 | goto out; | 2125 | goto out; |
| 2126 | } else if (s->iccnum != 0 && nummarkers != s->iccnum) { | 2126 | } else if (s->iccnum != 0 && nummarkers != s->iccnum) { |
| 2127 | av_log(s->avctx, AV_LOG_WARNING, "Mistmatch in coded number of ICC markers between markers\n"); | 2127 | av_log(s->avctx, AV_LOG_WARNING, "Mismatch in coded number of ICC markers between markers\n"); |
| 2128 | goto out; | 2128 | goto out; |
| 2129 | } else if (seqno > nummarkers) { | 2129 | } else if (seqno > nummarkers) { |
| 2130 | av_log(s->avctx, AV_LOG_WARNING, "Mismatching sequence number and coded number of ICC markers\n"); | 2130 | av_log(s->avctx, AV_LOG_WARNING, "Mismatching sequence number and coded number of ICC markers\n"); |
| @@ -30,7 +30,7 @@ · 29 unmodified lines | |||
| 30 | */ | 30 | */ |
| 31 | typedef struct PTable { | 31 | typedef struct PTable { |
| 32 | int value; ///< input value | 32 | int value; ///< input value |
| 33 | int prob; ///< number of occurences of this value in input | 33 | int prob; ///< number of occurrences of this value in input |
| 34 | } PTable; | 34 | } PTable; |
| 35 | 35 | ||
| 36 | /** | 36 | /** |
| @@ -179,7 +179,7 @@ void ff_mjpeg_encode_huffman_close(MJpegEncHuffmanContext *s, uint8_t bits[17], · 142 unmodified lines | |||
| 179 | 179 | ||
| 180 | // val_counts[0] is the fake element we added earlier. | 180 | // val_counts[0] is the fake element we added earlier. |
| 181 | av_assert1(val_counts[0].prob == 0 && val_counts[0].value == 256); | 181 | av_assert1(val_counts[0].prob == 0 && val_counts[0].value == 256); |
| 182 | // The following loop puts the values with higher occurence first, | 182 | // The following loop puts the values with higher occurrence first, |
| 183 | // ensuring that they get the shorter codes. | 183 | // ensuring that they get the shorter codes. |
| 184 | for (int i = 0; i < nval; ++i) | 184 | for (int i = 0; i < nval; ++i) |
| 185 | val[i] = val_counts[nval - i].value; | 185 | val[i] = val_counts[nval - i].value; |
| @@ -42,7 +42,7 @@ typedef struct MLZDict { · 41 unmodified lines | |||
| 42 | int match_len; | 42 | int match_len; |
| 43 | } MLZDict; | 43 | } MLZDict; |
| 44 | 44 | ||
| 45 | /** MLZ data strucure | 45 | /** MLZ data structure |
| 46 | */ | 46 | */ |
| 47 | typedef struct MLZ { | 47 | typedef struct MLZ { |
| 48 | int dic_code_bit; | 48 | int dic_code_bit; |
| @@ -259,7 +259,7 @@ static int encode_sample_description(AVCodecContext *avctx) · 258 unmodified lines | |||
| 259 | // Build font table | 259 | // Build font table |
| 260 | // We can't build a complete font table since that would require | 260 | // We can't build a complete font table since that would require |
| 261 | // scanning all dialogs first. But we can at least fill in what | 261 | // scanning all dialogs first. But we can at least fill in what |
| 262 | // is avaiable in the ASS header | 262 | // is available in the ASS header |
| 263 | if (style && ass->styles_count) { | 263 | if (style && ass->styles_count) { |
| 264 | // Find unique font names | 264 | // Find unique font names |
| 265 | if (style->font_name) { | 265 | if (style->font_name) { |
| @@ -3592,7 +3592,7 @@ int ff_mpeg4_parse_picture_header(Mpeg4DecContext *ctx, GetBitContext *gb, · 3591 unmodified lines | |||
| 3592 | 3592 | ||
| 3593 | // If we have not switched to studio profile than we also did not switch bps | 3593 | // If we have not switched to studio profile than we also did not switch bps |
| 3594 | // that means something else (like a previous instance) outside set bps which | 3594 | // that means something else (like a previous instance) outside set bps which |
| 3595 | // would be inconsistant with the currect state, thus reset it | 3595 | // would be inconsistent with the correct state, thus reset it |
| 3596 | if (!s->studio_profile && s->avctx->bits_per_raw_sample != 8) | 3596 | if (!s->studio_profile && s->avctx->bits_per_raw_sample != 8) |
| 3597 | s->avctx->bits_per_raw_sample = 0; | 3597 | s->avctx->bits_per_raw_sample = 0; |
| 3598 | 3598 | ||
| @@ -1770,7 +1770,7 @@ static av_cold int decode_init_mp3on4(AVCodecContext * avctx) · 1769 unmodified lines | |||
| 1770 | else | 1770 | else |
| 1771 | s->syncword = 0xfff00000; | 1771 | s->syncword = 0xfff00000; |
| 1772 | 1772 | ||
| 1773 | /* Init the first mp3 decoder in standard way, so that all tables get builded | 1773 | /* Init the first mp3 decoder in standard way, so that all tables get built |
| 1774 | * We replace avctx->priv_data with the context of the first decoder so that | 1774 | * We replace avctx->priv_data with the context of the first decoder so that |
| 1775 | * decode_init() does not have to be changed. | 1775 | * decode_init() does not have to be changed. |
| 1776 | * Other decoders will be initialized here copying data from the first context | 1776 | * Other decoders will be initialized here copying data from the first context |
| @@ -1828,7 +1828,7 @@ static int select_input_picture(MPVMainEncContext *const m) · 1827 unmodified lines | |||
| 1828 | 1828 | ||
| 1829 | if (m->reordered_input_picture[0]->shared || s->c.avctx->rc_buffer_size) { | 1829 | if (m->reordered_input_picture[0]->shared || s->c.avctx->rc_buffer_size) { |
| 1830 | // input is a shared pix, so we can't modify it -> allocate a new | 1830 | // input is a shared pix, so we can't modify it -> allocate a new |
| 1831 | // one & ensure that the shared one is reuseable | 1831 | // one & ensure that the shared one is reusable |
| 1832 | av_frame_move_ref(s->new_pic, m->reordered_input_picture[0]->f); | 1832 | av_frame_move_ref(s->new_pic, m->reordered_input_picture[0]->f); |
| 1833 | 1833 | ||
| 1834 | ret = prepare_picture(s, m->reordered_input_picture[0]->f, s->new_pic); | 1834 | ret = prepare_picture(s, m->reordered_input_picture[0]->f, s->new_pic); |
| @@ -28,7 +28,7 @@ · 27 unmodified lines | |||
| 28 | /** | 28 | /** |
| 29 | * @file | 29 | * @file |
| 30 | * The 3 alphanumeric copyright notices are md5summed they are from the original | 30 | * The 3 alphanumeric copyright notices are md5summed they are from the original |
| 31 | * implementors. The original code is available from http://code.google.com/p/nelly2pcm/ | 31 | * implementers. The original code is available from http://code.google.com/p/nelly2pcm/ |
| 32 | */ | 32 | */ |
| 33 | 33 | ||
| 34 | #include <stdlib.h> | 34 | #include <stdlib.h> |
| @@ -28,7 +28,7 @@ · 27 unmodified lines | |||
| 28 | /** | 28 | /** |
| 29 | * @file | 29 | * @file |
| 30 | * The 3 alphanumeric copyright notices are md5summed they are from the original | 30 | * The 3 alphanumeric copyright notices are md5summed they are from the original |
| 31 | * implementors. The original code is available from http://code.google.com/p/nelly2pcm/ | 31 | * implementers. The original code is available from http://code.google.com/p/nelly2pcm/ |
| 32 | */ | 32 | */ |
| 33 | 33 | ||
| 34 | #ifndef AVCODEC_NELLYMOSER_H | 34 | #ifndef AVCODEC_NELLYMOSER_H |
| @@ -28,7 +28,7 @@ · 27 unmodified lines | |||
| 28 | /** | 28 | /** |
| 29 | * @file | 29 | * @file |
| 30 | * The 3 alphanumeric copyright notices are md5summed they are from the original | 30 | * The 3 alphanumeric copyright notices are md5summed they are from the original |
| 31 | * implementors. The original code is available from http://code.google.com/p/nelly2pcm/ | 31 | * implementers. The original code is available from http://code.google.com/p/nelly2pcm/ |
| 32 | */ | 32 | */ |
| 33 | 33 | ||
| 34 | #include "libavutil/channel_layout.h" | 34 | #include "libavutil/channel_layout.h" |
| @@ -433,7 +433,7 @@ static void celt_encode_frame(OpusEncContext *s, OpusRangeCoder *rc, · 432 unmodified lines | |||
| 433 | 433 | ||
| 434 | if (f->silence) { | 434 | if (f->silence) { |
| 435 | if (f->framebits >= 16) | 435 | if (f->framebits >= 16) |
| 436 | ff_opus_rc_enc_log(rc, 1, 15); /* Silence (if using explicit singalling) */ | 436 | ff_opus_rc_enc_log(rc, 1, 15); /* Silence (if using explicit signalling) */ |
| 437 | for (int ch = 0; ch < s->channels; ch++) | 437 | for (int ch = 0; ch < s->channels; ch++) |
| 438 | memset(s->last_quantized_energy[ch], 0.0f, sizeof(float)*CELT_MAX_BANDS); | 438 | memset(s->last_quantized_energy[ch], 0.0f, sizeof(float)*CELT_MAX_BANDS); |
| 439 | return; | 439 | return; |
| @@ -1155,7 +1155,7 @@ const uint32_t * const ff_celt_pvq_u_row[15] = { · 1154 unmodified lines | |||
| 1155 | }; | 1155 | }; |
| 1156 | 1156 | ||
| 1157 | /* Deemphasis constant (alpha_p), as specified in RFC6716 as 0.8500061035. | 1157 | /* Deemphasis constant (alpha_p), as specified in RFC6716 as 0.8500061035. |
| 1158 | * libopus uses a slighly rounded constant, set to 0.85 exactly, | 1158 | * libopus uses a slightly rounded constant, set to 0.85 exactly, |
| 1159 | * to simplify its fixed-point version, but it's not significant to impact | 1159 | * to simplify its fixed-point version, but it's not significant to impact |
| 1160 | * compliance. */ | 1160 | * compliance. */ |
| 1161 | #define CELT_EMPH_COEFF 0.8500061035 | 1161 | #define CELT_EMPH_COEFF 0.8500061035 |
| @@ -142,7 +142,7 @@ enum AVPacketSideDataType { · 141 unmodified lines | |||
| 142 | AV_PKT_DATA_CPB_PROPERTIES, | 142 | AV_PKT_DATA_CPB_PROPERTIES, |
| 143 | 143 | ||
| 144 | /** | 144 | /** |
| 145 | * Recommmends skipping the specified number of samples | 145 | * Recommends skipping the specified number of samples |
| 146 | * @code | 146 | * @code |
| 147 | * u32le number of samples to skip from start of this packet | 147 | * u32le number of samples to skip from start of this packet |
| 148 | * u32le number of samples to skip from end of this packet | 148 | * u32le number of samples to skip from end of this packet |
| @@ -447,7 +447,7 @@ static int parse_presentation_segment(AVCodecContext *avctx, · 446 unmodified lines | |||
| 447 | PGSSubObjectRef *const object = &ctx->presentation.objects[i]; | 447 | PGSSubObjectRef *const object = &ctx->presentation.objects[i]; |
| 448 | 448 | ||
| 449 | if (buf_end - buf < 8) { | 449 | if (buf_end - buf < 8) { |
| 450 | av_log(avctx, AV_LOG_ERROR, "Insufficent space for object\n"); | 450 | av_log(avctx, AV_LOG_ERROR, "Insufficient space for object\n"); |
| 451 | ctx->presentation.object_count = i; | 451 | ctx->presentation.object_count = i; |
| 452 | return AVERROR_INVALIDDATA; | 452 | return AVERROR_INVALIDDATA; |
| 453 | } | 453 | } |
| @@ -172,7 +172,7 @@ static int decode_frame(AVCodecContext *avctx, AVFrame *frame, · 171 unmodified lines | |||
| 172 | 1 byte run (=0) | 172 | 1 byte run (=0) |
| 173 | 2 bytes run | 173 | 2 bytes run |
| 174 | 1 byte val | 174 | 1 byte val |
| 175 | thats 5 bytes and the maximum run we can code is 65535 | 175 | that's 5 bytes and the maximum run we can code is 65535 |
| 176 | 176 | ||
| 177 | The RLE decoder can exit prematurly but it does not on any image available | 177 | The RLE decoder can exit prematurly but it does not on any image available |
| 178 | Based on this the formula is assumed correct for undamaged images. | 178 | Based on this the formula is assumed correct for undamaged images. |
| @@ -46,7 +46,7 @@ void ff_put_pixels16_altivec(uint8_t *block, const uint8_t *pixels, ptrdiff_t li · 45 unmodified lines | |||
| 46 | register ptrdiff_t line_size_4 = line_size * (1 << 2); | 46 | register ptrdiff_t line_size_4 = line_size * (1 << 2); |
| 47 | 47 | ||
| 48 | // hand-unrolling the loop by 4 gains about 15% | 48 | // hand-unrolling the loop by 4 gains about 15% |
| 49 | // mininum execution time goes from 74 to 60 cycles | 49 | // minimum execution time goes from 74 to 60 cycles |
| 50 | // it's faster than -funroll-loops, but using | 50 | // it's faster than -funroll-loops, but using |
| 51 | // -funroll-loops w/ this is bad - 74 cycles again. | 51 | // -funroll-loops w/ this is bad - 74 cycles again. |
| 52 | // all this is on a 7450, tuning for the 7450 | 52 | // all this is on a 7450, tuning for the 7450 |
| @@ -312,7 +312,7 @@ static void put_vp8_pixels16_altivec(uint8_t *dst, ptrdiff_t dstride, const uint · 311 unmodified lines | |||
| 312 | perm = vec_lvsl(0, src); | 312 | perm = vec_lvsl(0, src); |
| 313 | #endif | 313 | #endif |
| 314 | // hand-unrolling the loop by 4 gains about 15% | 314 | // hand-unrolling the loop by 4 gains about 15% |
| 315 | // mininum execution time goes from 74 to 60 cycles | 315 | // minimum execution time goes from 74 to 60 cycles |
| 316 | // it's faster than -funroll-loops, but using | 316 | // it's faster than -funroll-loops, but using |
| 317 | // -funroll-loops w/ this is bad - 74 cycles again. | 317 | // -funroll-loops w/ this is bad - 74 cycles again. |
| 318 | // all this is on a 7450, tuning for the 7450 | 318 | // all this is on a 7450, tuning for the 7450 |
| @@ -173,10 +173,10 @@ static int decode_header(PSDContext * s) · 172 unmodified lines | |||
| 173 | } | 173 | } |
| 174 | bytestream2_skip(&s->gb, len_section); | 174 | bytestream2_skip(&s->gb, len_section); |
| 175 | 175 | ||
| 176 | /* image ressources */ | 176 | /* image resources */ |
| 177 | len_section = bytestream2_get_be32(&s->gb); | 177 | len_section = bytestream2_get_be32(&s->gb); |
| 178 | if (len_section < 0) { | 178 | if (len_section < 0) { |
| 179 | av_log(s->avctx, AV_LOG_ERROR, "Negative size for image ressources section.\n"); | 179 | av_log(s->avctx, AV_LOG_ERROR, "Negative size for image resources section.\n"); |
| 180 | return AVERROR_INVALIDDATA; | 180 | return AVERROR_INVALIDDATA; |
| 181 | } | 181 | } |
| 182 | 182 | ||
| @@ -696,7 +696,7 @@ static int qsv_export_hdr_side_data(AVCodecContext *avctx, mfxExtMasteringDispla · 695 unmodified lines | |||
| 696 | { | 696 | { |
| 697 | int ret; | 697 | int ret; |
| 698 | 698 | ||
| 699 | // The SDK re-uses this flag for HDR SEI parsing | 699 | // The SDK reuses this flag for HDR SEI parsing |
| 700 | if (mdcv->InsertPayloadToggle) { | 700 | if (mdcv->InsertPayloadToggle) { |
| 701 | AVMasteringDisplayMetadata *mastering; | 701 | AVMasteringDisplayMetadata *mastering; |
| 702 | const int mapping[3] = {2, 0, 1}; | 702 | const int mapping[3] = {2, 0, 1}; |
| @@ -726,7 +726,7 @@ static int qsv_export_hdr_side_data(AVCodecContext *avctx, mfxExtMasteringDispla · 23 unmodified lines | |||
| 726 | } | 726 | } |
| 727 | } | 727 | } |
| 728 | 728 | ||
| 729 | // The SDK re-uses this flag for HDR SEI parsing | 729 | // The SDK reuses this flag for HDR SEI parsing |
| 730 | if (clli->InsertPayloadToggle) { | 730 | if (clli->InsertPayloadToggle) { |
| 731 | AVContentLightMetadata *light; | 731 | AVContentLightMetadata *light; |
| 732 | 732 | ||
| @@ -1002,7 +1002,7 @@ static int qsv_process_data(AVCodecContext *avctx, QSVContext *q, · 269 unmodified lines | |||
| 1002 | 1002 | ||
| 1003 | // sw_pix_fmt, coded_width/height should be set for ff_get_format(), | 1003 | // sw_pix_fmt, coded_width/height should be set for ff_get_format(), |
| 1004 | // assume sw_pix_fmt is NV12 and coded_width/height to be 1280x720, | 1004 | // assume sw_pix_fmt is NV12 and coded_width/height to be 1280x720, |
| 1005 | // the assumption may be not corret but will be updated after header decoded if not true. | 1005 | // the assumption may be not correct but will be updated after header decoded if not true. |
| 1006 | if (q->orig_pix_fmt != AV_PIX_FMT_NONE) | 1006 | if (q->orig_pix_fmt != AV_PIX_FMT_NONE) |
| 1007 | pix_fmt = q->orig_pix_fmt; | 1007 | pix_fmt = q->orig_pix_fmt; |
| 1008 | if (!avctx->coded_width) | 1008 | if (!avctx->coded_width) |
| @@ -2057,7 +2057,7 @@ static int submit_frame(QSVEncContext *q, const AVFrame *frame, · 2056 unmodified lines | |||
| 2057 | } | 2057 | } |
| 2058 | } else { | 2058 | } else { |
| 2059 | /* make a copy if the input is not padded as libmfx requires */ | 2059 | /* make a copy if the input is not padded as libmfx requires */ |
| 2060 | /* and to make allocation continious for data[0]/data[1] */ | 2060 | /* and to make allocation continuous for data[0]/data[1] */ |
| 2061 | if ((frame->height & (q->height_align - 1) || frame->linesize[0] & (q->width_align - 1)) || | 2061 | if ((frame->height & (q->height_align - 1) || frame->linesize[0] & (q->width_align - 1)) || |
| 2062 | ((frame->format == AV_PIX_FMT_NV12 || frame->format == AV_PIX_FMT_P010 || frame->format == AV_PIX_FMT_P012) && | 2062 | ((frame->format == AV_PIX_FMT_NV12 || frame->format == AV_PIX_FMT_P010 || frame->format == AV_PIX_FMT_P012) && |
| 2063 | (frame->data[1] - frame->data[0] != frame->linesize[0] * FFALIGN(qf->frame->height, q->height_align)))) { | 2063 | (frame->data[1] - frame->data[0] != frame->linesize[0] * FFALIGN(qf->frame->height, q->height_align)))) { |
| @@ -1,6 +1,6 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * AAC encoder assembly optimizations | 2 | * AAC encoder assembly optimizations |
| 3 | * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences (ISCAS). | 3 | * Copyright (c) 2023 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 4 | * | 4 | * |
| 5 | * This file is part of FFmpeg. | 5 | * This file is part of FFmpeg. |
| 6 | * | 6 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2023 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * Copyright © 2024 Rémi Denis-Courmont. | 3 | * Copyright © 2024 Rémi Denis-Courmont. |
| 4 | * | 4 | * |
| 5 | * This file is part of FFmpeg. | 5 | * This file is part of FFmpeg. |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2023 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -43,7 +43,7 @@ func ff_h263_h_loop_filter_rvv, zve32x · 42 unmodified lines | |||
| 43 | vsrl.vi v18, v16, 16 - 3 # v18 = (v16 < 0) ? 7 : 0 | 43 | vsrl.vi v18, v16, 16 - 3 # v18 = (v16 < 0) ? 7 : 0 |
| 44 | slli t2, t1, 1 # 2 * strength | 44 | slli t2, t1, 1 # 2 * strength |
| 45 | vadd.vv v16, v16, v18 | 45 | vadd.vv v16, v16, v18 |
| 46 | # v16 (d) is signed 7-bit, but later arithmetics require 9 bits. | 46 | # v16 (d) is signed 7-bit, but later arithmetic require 9 bits. |
| 47 | vsra.vi v16, v16, 3 # d | 47 | vsra.vi v16, v16, 3 # d |
| 48 | vmv.v.x v20, t2 | 48 | vmv.v.x v20, t2 |
| 49 | vmslt.vi v0, v16, 0 | 49 | vmslt.vi v0, v16, 0 |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2023 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2023 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2023 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2023 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * Copyright (c) 2023 Rémi Denis-Courmont | 3 | * Copyright (c) 2023 Rémi Denis-Courmont |
| 4 | * | 4 | * |
| 5 | * This file is part of FFmpeg. | 5 | * This file is part of FFmpeg. |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2023 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2023 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2023 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * Copyright (c) 2024 Rémi Denis-Courmont. | 3 | * Copyright (c) 2024 Rémi Denis-Courmont. |
| 4 | * | 4 | * |
| 5 | * This file is part of FFmpeg. | 5 | * This file is part of FFmpeg. |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * Copyright © 2024 Rémi Denis-Courmont. | 3 | * Copyright © 2024 Rémi Denis-Courmont. |
| 4 | * | 4 | * |
| 5 | * This file is part of FFmpeg. | 5 | * This file is part of FFmpeg. |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | * Copyright (c) 2024 Institue of Software Chinese Academy of Sciences (ISCAS). | 2 | * Copyright (c) 2024 Institute of Software Chinese Academy of Sciences (ISCAS). |
| 3 | * | 3 | * |
| 4 | * This file is part of FFmpeg. | 4 | * This file is part of FFmpeg. |
| 5 | * | 5 | * |
| @@ -619,7 +619,7 @@ static void rpza_encode_stream(RpzaContext *s, const AVFrame *pict) · 618 unmodified lines | |||
| 619 | 619 | ||
| 620 | if (compare_blocks(&prev_pixels[pblock_offset], | 620 | if (compare_blocks(&prev_pixels[pblock_offset], |
| 621 | &src_pixels[block_offset], &bi, s->skip_frame_thresh) != 0) { | 621 | &src_pixels[block_offset], &bi, s->skip_frame_thresh) != 0) { |
| 622 | // write out skipable blocks | 622 | // write out skippable blocks |
| 623 | if (n_blocks) { | 623 | if (n_blocks) { |
| 624 | 624 | ||
| 625 | // write skip opcode | 625 | // write skip opcode |
| @@ -787,7 +787,7 @@ static int get_block_rd(SnowEncContext *enc, int mb_x, int mb_y, · 786 unmodified lines | |||
| 787 | int y1= FFMIN(block_h*2, h-sy); | 787 | int y1= FFMIN(block_h*2, h-sy); |
| 788 | int i,x,y; | 788 | int i,x,y; |
| 789 | 789 | ||
| 790 | av_assert2(s->chroma_h_shift == s->chroma_v_shift); //obmc and square assumtions below chckinhg only block_w | 790 | av_assert2(s->chroma_h_shift == s->chroma_v_shift); //obmc and square assumptions below chckinhg only block_w |
| 791 | 791 | ||
| 792 | ff_snow_pred_block(s, cur, tmp, ref_stride, sx, sy, block_w*2, block_h*2, &s->block[mb_x + mb_y*b_stride], plane_index, w, h); | 792 | ff_snow_pred_block(s, cur, tmp, ref_stride, sx, sy, block_w*2, block_h*2, &s->block[mb_x + mb_y*b_stride], plane_index, w, h); |
| 793 | 793 | ||
| @@ -884,7 +884,7 @@ static int get_4block_rd(SnowEncContext *enc, int mb_x, int mb_y, int plane_inde · 90 unmodified lines | |||
| 884 | int rate= 0; | 884 | int rate= 0; |
| 885 | const int penalty_factor= get_penalty_factor(enc->lambda, enc->lambda2, s->avctx->me_cmp); | 885 | const int penalty_factor= get_penalty_factor(enc->lambda, enc->lambda2, s->avctx->me_cmp); |
| 886 | 886 | ||
| 887 | av_assert2(s->chroma_h_shift == s->chroma_v_shift); //obmc and square assumtions below | 887 | av_assert2(s->chroma_h_shift == s->chroma_v_shift); //obmc and square assumptions below |
| 888 | 888 | ||
| 889 | for(i=0; i<9; i++){ | 889 | for(i=0; i<9; i++){ |
| 890 | int mb_x2= mb_x + (i%3) - 1; | 890 | int mb_x2= mb_x + (i%3) - 1; |
| @@ -2108,7 +2108,7 @@ static const AVOption options[] = { · 1217 unmodified lines | |||
| 2108 | { "iter", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = FF_ME_ITER }, 0, 0, VE, .unit = "motion_est" }, | 2108 | { "iter", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = FF_ME_ITER }, 0, 0, VE, .unit = "motion_est" }, |
| 2109 | { "memc_only", "Only do ME/MC (I frames -> ref, P frame -> ME+MC).", OFFSET(memc_only), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, | 2109 | { "memc_only", "Only do ME/MC (I frames -> ref, P frame -> ME+MC).", OFFSET(memc_only), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, |
| 2110 | { "no_bitstream", "Skip final bitstream writeout.", OFFSET(no_bitstream), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, | 2110 | { "no_bitstream", "Skip final bitstream writeout.", OFFSET(no_bitstream), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, VE }, |
| 2111 | { "intra_penalty", "Penalty for intra blocks in block decission", OFFSET(intra_penalty), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE }, | 2111 | { "intra_penalty", "Penalty for intra blocks in block decision", OFFSET(intra_penalty), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE }, |
| 2112 | { "iterative_dia_size", "Dia size for the iterative ME", OFFSET(iterative_dia_size), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE }, | 2112 | { "iterative_dia_size", "Dia size for the iterative ME", OFFSET(iterative_dia_size), AV_OPT_TYPE_INT, { .i64 = 0 }, 0, INT_MAX, VE }, |
| 2113 | { "sc_threshold", "Scene change threshold", OFFSET(scenechange_threshold), AV_OPT_TYPE_INT, { .i64 = 0 }, INT_MIN, INT_MAX, VE }, | 2113 | { "sc_threshold", "Scene change threshold", OFFSET(scenechange_threshold), AV_OPT_TYPE_INT, { .i64 = 0 }, INT_MIN, INT_MAX, VE }, |
| 2114 | { "pred", "Spatial decomposition type", OFFSET(pred), AV_OPT_TYPE_INT, { .i64 = 0 }, DWT_97, DWT_53, VE, .unit = "pred" }, | 2114 | { "pred", "Spatial decomposition type", OFFSET(pred), AV_OPT_TYPE_INT, { .i64 = 0 }, DWT_97, DWT_53, VE, .unit = "pred" }, |
| @@ -1299,7 +1299,7 @@ static int sb_decode(AVCodecContext *avctx, void *ptr_st, · 1298 unmodified lines | |||
| 1299 | lsp_interpolate(st->old_qlsp, qlsp, interp_qlsp, st->lpc_size, sub, st->nb_subframes, 0.05f); | 1299 | lsp_interpolate(st->old_qlsp, qlsp, interp_qlsp, st->lpc_size, sub, st->nb_subframes, 0.05f); |
| 1300 | lsp_to_lpc(interp_qlsp, ak, st->lpc_size); | 1300 | lsp_to_lpc(interp_qlsp, ak, st->lpc_size); |
| 1301 | 1301 | ||
| 1302 | /* Calculate reponse ratio between the low and high filter in the middle | 1302 | /* Calculate response ratio between the low and high filter in the middle |
| 1303 | of the band (4000 Hz) */ | 1303 | of the band (4000 Hz) */ |
| 1304 | st->pi_gain[sub] = 1.f; | 1304 | st->pi_gain[sub] = 1.f; |
| 1305 | rh = 1.f; | 1305 | rh = 1.f; |
| @@ -285,7 +285,7 @@ static int random_coeff(AVLFG *lfg) · 284 unmodified lines | |||
| 285 | 285 | ||
| 286 | static int random_run(AVLFG *lfg) | 286 | static int random_run(AVLFG *lfg) |
| 287 | { | 287 | { |
| 288 | // Expoenential distrbution of run lengths. | 288 | // Expoenential distribution of run lengths. |
| 289 | unsigned int random = av_lfg_get(lfg); | 289 | unsigned int random = av_lfg_get(lfg); |
| 290 | for (int len = 0;; len++) { | 290 | for (int len = 0;; len++) { |
| 291 | if (random & (1 << len)) | 291 | if (random & (1 << len)) |
| @@ -87,7 +87,7 @@ int main(void) · 86 unmodified lines | |||
| 87 | /* test av_packet_alloc */ | 87 | /* test av_packet_alloc */ |
| 88 | avpkt = av_packet_alloc(); | 88 | avpkt = av_packet_alloc(); |
| 89 | if(!avpkt) { | 89 | if(!avpkt) { |
| 90 | av_log(NULL, AV_LOG_ERROR, "av_packet_alloc failed to allcoate AVPacket\n"); | 90 | av_log(NULL, AV_LOG_ERROR, "av_packet_alloc failed to allocate AVPacket\n"); |
| 91 | return 1; | 91 | return 1; |
| 92 | } | 92 | } |
| 93 | 93 | ||
| @@ -58,7 +58,7 @@ static int test_dwt(int *array, int *ref, int border[2][2], int decomp_levels, i · 57 unmodified lines | |||
| 58 | } | 58 | } |
| 59 | for (j = 0; j<MAX_W * MAX_W; j++) { | 59 | for (j = 0; j<MAX_W * MAX_W; j++) { |
| 60 | if (FFABS(array[j] - (int64_t)ref[j]) > max_diff) { | 60 | if (FFABS(array[j] - (int64_t)ref[j]) > max_diff) { |
| 61 | fprintf(stderr, "missmatch at %d (%d != %d) decomp:%d border %d %d %d %d\n", | 61 | fprintf(stderr, "mismatch at %d (%d != %d) decomp:%d border %d %d %d %d\n", |
| 62 | j, array[j], ref[j],decomp_levels, border[0][0], border[0][1], border[1][0], border[1][1]); | 62 | j, array[j], ref[j],decomp_levels, border[0][0], border[0][1], border[1][0], border[1][1]); |
| 63 | return 2; | 63 | return 2; |
| 64 | } | 64 | } |
| @@ -97,7 +97,7 @@ static int test_dwtf(float *array, float *ref, int border[2][2], int decomp_leve · 32 unmodified lines | |||
| 97 | } | 97 | } |
| 98 | for (j = 0; j<MAX_W * MAX_W; j++) { | 98 | for (j = 0; j<MAX_W * MAX_W; j++) { |
| 99 | if (FFABS(array[j] - ref[j]) > max_diff) { | 99 | if (FFABS(array[j] - ref[j]) > max_diff) { |
| 100 | fprintf(stderr, "missmatch at %d (%f != %f) decomp:%d border %d %d %d %d\n", | 100 | fprintf(stderr, "mismatch at %d (%f != %f) decomp:%d border %d %d %d %d\n", |
| 101 | j, array[j], ref[j],decomp_levels, border[0][0], border[0][1], border[1][0], border[1][1]); | 101 | j, array[j], ref[j],decomp_levels, border[0][0], border[0][1], border[1][0], border[1][1]); |
| 102 | return 2; | 102 | return 2; |
| 103 | } | 103 | } |
| @@ -336,7 +336,7 @@ void avcodec_align_dimensions2(AVCodecContext *s, int *width, int *height, · 335 unmodified lines | |||
| 336 | 336 | ||
| 337 | // H.264 uses edge emulation for out of frame motion vectors, for this | 337 | // H.264 uses edge emulation for out of frame motion vectors, for this |
| 338 | // it requires a temporary area large enough to hold a 21x21 block, | 338 | // it requires a temporary area large enough to hold a 21x21 block, |
| 339 | // increasing witdth ensure that the temporary area is large enough, | 339 | // increasing width ensure that the temporary area is large enough, |
| 340 | // the next rounded up width is 32 | 340 | // the next rounded up width is 32 |
| 341 | *width = FFMAX(*width, 32); | 341 | *width = FFMAX(*width, 32); |
| 342 | } | 342 | } |
| @@ -124,7 +124,7 @@ int ff_v4l2_context_get_format(V4L2Context* ctx, int probe); · 123 unmodified lines | |||
| 124 | * Releases a V4L2Context. | 124 | * Releases a V4L2Context. |
| 125 | * | 125 | * |
| 126 | * @param[in] ctx A pointer to a V4L2Context. | 126 | * @param[in] ctx A pointer to a V4L2Context. |
| 127 | * The caller is reponsible for freeing it. | 127 | * The caller is responsible for freeing it. |
| 128 | * It must not be used after calling this function. | 128 | * It must not be used after calling this function. |
| 129 | */ | 129 | */ |
| 130 | void ff_v4l2_context_release(V4L2Context* ctx); | 130 | void ff_v4l2_context_release(V4L2Context* ctx); |
| @@ -164,7 +164,7 @@ static int v4l2_receive_frame(AVCodecContext *avctx, AVFrame *frame) · 163 unmodified lines | |||
| 164 | if (!s->draining) { | 164 | if (!s->draining) { |
| 165 | ret = v4l2_try_start(avctx); | 165 | ret = v4l2_try_start(avctx); |
| 166 | if (ret) { | 166 | if (ret) { |
| 167 | /* cant recover */ | 167 | /* can't recover */ |
| 168 | if (ret != AVERROR(ENOMEM)) | 168 | if (ret != AVERROR(ENOMEM)) |
| 169 | ret = 0; | 169 | ret = 0; |
| 170 | goto fail; | 170 | goto fail; |
| @@ -187,7 +187,7 @@ static int v4l2_prepare_encoder(V4L2m2mContext *s) · 186 unmodified lines | |||
| 187 | return ret; | 187 | return ret; |
| 188 | 188 | ||
| 189 | /** | 189 | /** |
| 190 | * settingss | 190 | * settings |
| 191 | */ | 191 | */ |
| 192 | if (avctx->framerate.num || avctx->framerate.den) | 192 | if (avctx->framerate.num || avctx->framerate.den) |
| 193 | v4l2_set_timeperframe(s, avctx->framerate.den, avctx->framerate.num); | 193 | v4l2_set_timeperframe(s, avctx->framerate.den, avctx->framerate.num); |
| @@ -526,7 +526,7 @@ static int vaapi_encode_h265_init_picture_params(AVCodecContext *avctx, · 525 unmodified lines | |||
| 526 | priv->sei_needed = 0; | 526 | priv->sei_needed = 0; |
| 527 | 527 | ||
| 528 | // Only look for the metadata on I/IDR frame on the output. We | 528 | // Only look for the metadata on I/IDR frame on the output. We |
| 529 | // may force an IDR frame on the output where the medadata gets | 529 | // may force an IDR frame on the output where the metadata gets |
| 530 | // changed on the input frame. | 530 | // changed on the input frame. |
| 531 | if ((priv->sei & SEI_MASTERING_DISPLAY) && | 531 | if ((priv->sei & SEI_MASTERING_DISPLAY) && |
| 532 | (pic->type == FF_HW_PICTURE_TYPE_I || pic->type == FF_HW_PICTURE_TYPE_IDR)) { | 532 | (pic->type == FF_HW_PICTURE_TYPE_I || pic->type == FF_HW_PICTURE_TYPE_IDR)) { |
| @@ -142,7 +142,7 @@ static int vbn_decode_frame(AVCodecContext *avctx, · 141 unmodified lines | |||
| 142 | return image_len; | 142 | return image_len; |
| 143 | 143 | ||
| 144 | if (image_len < linesize * avctx->coded_height) { | 144 | if (image_len < linesize * avctx->coded_height) { |
| 145 | av_log(avctx, AV_LOG_ERROR, "Insufficent data\n"); | 145 | av_log(avctx, AV_LOG_ERROR, "Insufficient data\n"); |
| 146 | ret = AVERROR_INVALIDDATA; | 146 | ret = AVERROR_INVALIDDATA; |
| 147 | goto out; | 147 | goto out; |
| 148 | } | 148 | } |
| @@ -621,7 +621,7 @@ static int count_hq_slice(SliceArgs *slice, int quant_idx) · 620 unmodified lines | |||
| 621 | return bits; | 621 | return bits; |
| 622 | } | 622 | } |
| 623 | 623 | ||
| 624 | /* Approaches the best possible quantizer asymptotically, its kinda exaustive | 624 | /* Approaches the best possible quantizer asymptotically, its kinda exhaustive |
| 625 | * but we have a LUT to get the coefficient size in bits. Guaranteed to never | 625 | * but we have a LUT to get the coefficient size in bits. Guaranteed to never |
| 626 | * overshoot, which is apparently very important when streaming */ | 626 | * overshoot, which is apparently very important when streaming */ |
| 627 | static int rate_control(AVCodecContext *avctx, void *arg) | 627 | static int rate_control(AVCodecContext *avctx, void *arg) |
| @@ -491,7 +491,7 @@ static int vlc_multi_gen(VLC_MULTI_ELEM *table, const VLC *single, · 490 unmodified lines | |||
| 491 | // We can only add a code that fits with the shortest other code into the table | 491 | // We can only add a code that fits with the shortest other code into the table |
| 492 | // We assume the table is sorted by bits and we skip subtables which from our | 492 | // We assume the table is sorted by bits and we skip subtables which from our |
| 493 | // point of view are basically random corrupted entries | 493 | // point of view are basically random corrupted entries |
| 494 | // If we have not a single useable vlc we end with max = nb_codes | 494 | // If we have not a single usable vlc we end with max = nb_codes |
| 495 | if (buf[max - 1].bits+minbits > numbits) | 495 | if (buf[max - 1].bits+minbits > numbits) |
| 496 | break; | 496 | break; |
| 497 | } | 497 | } |
| @@ -375,13 +375,13 @@ static int vorbis_parse_setup_hdr_codebooks(vorbis_context *vc) · 374 unmodified lines | |||
| 375 | } | 375 | } |
| 376 | ff_dlog(NULL, " We expect %d numbers for building the codevectors. \n", | 376 | ff_dlog(NULL, " We expect %d numbers for building the codevectors. \n", |
| 377 | codebook_lookup_values); | 377 | codebook_lookup_values); |
| 378 | ff_dlog(NULL, " delta %f minmum %f \n", | 378 | ff_dlog(NULL, " delta %f minimum %f \n", |
| 379 | codebook_delta_value, codebook_minimum_value); | 379 | codebook_delta_value, codebook_minimum_value); |
| 380 | 380 | ||
| 381 | for (i = 0; i < codebook_lookup_values; ++i) { | 381 | for (i = 0; i < codebook_lookup_values; ++i) { |
| 382 | codebook_multiplicands[i] = get_bits(gb, codebook_value_bits); | 382 | codebook_multiplicands[i] = get_bits(gb, codebook_value_bits); |
| 383 | 383 | ||
| 384 | ff_dlog(NULL, " multiplicands*delta+minmum : %e \n", | 384 | ff_dlog(NULL, " multiplicands*delta+minimum : %e \n", |
| 385 | (float)codebook_multiplicands[i] * codebook_delta_value + codebook_minimum_value); | 385 | (float)codebook_multiplicands[i] * codebook_delta_value + codebook_minimum_value); |
| 386 | ff_dlog(NULL, " multiplicand %u\n", codebook_multiplicands[i]); | 386 | ff_dlog(NULL, " multiplicand %u\n", codebook_multiplicands[i]); |
| 387 | } | 387 | } |
| @@ -2713,7 +2713,7 @@ static int vp3_decode_frame(AVCodecContext *avctx, AVFrame *frame, · 2712 unmodified lines | |||
| 2713 | mb_height_mul = get_bits(&gb, 5); | 2713 | mb_height_mul = get_bits(&gb, 5); |
| 2714 | mb_height_div = get_bits(&gb, 3); | 2714 | mb_height_div = get_bits(&gb, 3); |
| 2715 | if (mb_width_mul != 1 || mb_width_div != 1 || mb_height_mul != 1 || mb_height_div != 1) | 2715 | if (mb_width_mul != 1 || mb_width_div != 1 || mb_height_mul != 1 || mb_height_div != 1) |
| 2716 | avpriv_request_sample(s->avctx, "unexpected macroblock dimension multipler/divider"); | 2716 | avpriv_request_sample(s->avctx, "unexpected macroblock dimension multiplier/divider"); |
| 2717 | 2717 | ||
| 2718 | if (get_bits(&gb, 2)) | 2718 | if (get_bits(&gb, 2)) |
| 2719 | avpriv_request_sample(s->avctx, "unknown bits"); | 2719 | avpriv_request_sample(s->avctx, "unknown bits"); |
| @@ -733,7 +733,7 @@ static int vp8_decode_frame_header(VP8Context *s, const uint8_t *buf, int buf_si · 732 unmodified lines | |||
| 733 | int height = s->avctx->height; | 733 | int height = s->avctx->height; |
| 734 | 734 | ||
| 735 | if (buf_size < 3) { | 735 | if (buf_size < 3) { |
| 736 | av_log(s->avctx, AV_LOG_ERROR, "Insufficent data (%d) for header\n", buf_size); | 736 | av_log(s->avctx, AV_LOG_ERROR, "Insufficient data (%d) for header\n", buf_size); |
| 737 | return AVERROR_INVALIDDATA; | 737 | return AVERROR_INVALIDDATA; |
| 738 | } | 738 | } |
| 739 | 739 | ||
| @@ -2416,7 +2416,7 @@ static av_always_inline int decode_mb_row_no_filter(AVCodecContext *avctx, void · 1676 unmodified lines | |||
| 2416 | mb = s->macroblocks_base + ((s->mb_width + 1) * (mb_y + 1) + 1); | 2416 | mb = s->macroblocks_base + ((s->mb_width + 1) * (mb_y + 1) + 1); |
| 2417 | else { | 2417 | else { |
| 2418 | // Make sure the previous frame has read its segmentation map, | 2418 | // Make sure the previous frame has read its segmentation map, |
| 2419 | // if we re-use the same map. | 2419 | // if we reuse the same map. |
| 2420 | if (prev_frame && s->segmentation.enabled && | 2420 | if (prev_frame && s->segmentation.enabled && |
| 2421 | !s->segmentation.update_map) | 2421 | !s->segmentation.update_map) |
| 2422 | ff_progress_frame_await(&prev_frame->tf, mb_y); | 2422 | ff_progress_frame_await(&prev_frame->tf, mb_y); |
| @@ -2761,7 +2761,7 @@ int vp78_decode_frame(AVCodecContext *avctx, AVFrame *rframe, int *got_frame, · 338 unmodified lines | |||
| 2761 | 2761 | ||
| 2762 | if (s->mb_layout == 1) { | 2762 | if (s->mb_layout == 1) { |
| 2763 | // Make sure the previous frame has read its segmentation map, | 2763 | // Make sure the previous frame has read its segmentation map, |
| 2764 | // if we re-use the same map. | 2764 | // if we reuse the same map. |
| 2765 | if (prev_frame && s->segmentation.enabled && | 2765 | if (prev_frame && s->segmentation.enabled && |
| 2766 | !s->segmentation.update_map) | 2766 | !s->segmentation.update_map) |
| 2767 | ff_progress_frame_await(&prev_frame->tf, 1); | 2767 | ff_progress_frame_await(&prev_frame->tf, 1); |
| @@ -189,7 +189,7 @@ void rac_init_dec(out RangeCoder r, u8buf data, uint buf_size) · 188 unmodified lines | |||
| 189 | rac_init(r, OFFBUF(u8buf, data, 2), buf_size - 2); | 189 | rac_init(r, OFFBUF(u8buf, data, 2), buf_size - 2); |
| 190 | 190 | ||
| 191 | u8vec2 prime = u8vec2buf(data).v; | 191 | u8vec2 prime = u8vec2buf(data).v; |
| 192 | /* Switch endianess of the priming bytes */ | 192 | /* Switch endianness of the priming bytes */ |
| 193 | r.low = pack16(prime.yx); | 193 | r.low = pack16(prime.yx); |
| 194 | 194 | ||
| 195 | if (r.low >= 0xFF00) { | 195 | if (r.low >= 0xFF00) { |
| @@ -1327,7 +1327,7 @@ int ff_vk_decode_init(AVCodecContext *avctx) · 1326 unmodified lines | |||
| 1327 | 1327 | ||
| 1328 | ff_vk_decode_flush(avctx); | 1328 | ff_vk_decode_flush(avctx); |
| 1329 | 1329 | ||
| 1330 | av_log(avctx, AV_LOG_VERBOSE, "Vulkan decoder initialization sucessful\n"); | 1330 | av_log(avctx, AV_LOG_VERBOSE, "Vulkan decoder initialization successful\n"); |
| 1331 | 1331 | ||
| 1332 | return 0; | 1332 | return 0; |
| 1333 | 1333 | ||
| @@ -207,7 +207,7 @@ static int vk_enc_h265_update_pic_info(AVCodecContext *avctx, · 206 unmodified lines | |||
| 207 | } | 207 | } |
| 208 | 208 | ||
| 209 | // Only look for the metadata on I/IDR frame on the output. We | 209 | // Only look for the metadata on I/IDR frame on the output. We |
| 210 | // may force an IDR frame on the output where the medadata gets | 210 | // may force an IDR frame on the output where the metadata gets |
| 211 | // changed on the input frame. | 211 | // changed on the input frame. |
| 212 | if ((enc->unit_elems & UNIT_SEI_MASTERING_DISPLAY) && | 212 | if ((enc->unit_elems & UNIT_SEI_MASTERING_DISPLAY) && |
| 213 | (pic->type == FF_HW_PICTURE_TYPE_I || pic->type == FF_HW_PICTURE_TYPE_IDR)) { | 213 | (pic->type == FF_HW_PICTURE_TYPE_I || pic->type == FF_HW_PICTURE_TYPE_IDR)) { |
| @@ -193,7 +193,7 @@ int ff_vvc_intra_inv_angle_derive(const int intra_pred_angle) · 192 unmodified lines | |||
| 193 | return -ROUNDED_DIV(32*512, -intra_pred_angle); | 193 | return -ROUNDED_DIV(32*512, -intra_pred_angle); |
| 194 | } | 194 | } |
| 195 | 195 | ||
| 196 | //8.4.5.2.7 Wide angle intra prediction mode mapping proces | 196 | //8.4.5.2.7 Wide angle intra prediction mode mapping process |
| 197 | int ff_vvc_wide_angle_mode_mapping(const CodingUnit *cu, | 197 | int ff_vvc_wide_angle_mode_mapping(const CodingUnit *cu, |
| 198 | const int tb_width, const int tb_height, const int c_idx, int pred_mode_intra) | 198 | const int tb_width, const int tb_height, const int c_idx, int pred_mode_intra) |
| 199 | { | 199 | { |
| @@ -926,7 +926,7 @@ static void affine_cps_from_nb(const VVCLocalContext *lc, · 925 unmodified lines | |||
| 926 | } | 926 | } |
| 927 | } | 927 | } |
| 928 | 928 | ||
| 929 | //derive affine neighbour's postion, width and height, | 929 | //derive affine neighbour's position, width and height, |
| 930 | static int affine_neighbour_cb(const VVCFrameContext *fc, const int x_nb, const int y_nb, int *x_cb, int *y_cb, int *cbw, int *cbh) | 930 | static int affine_neighbour_cb(const VVCFrameContext *fc, const int x_nb, const int y_nb, int *x_cb, int *y_cb, int *cbw, int *cbh) |
| 931 | { | 931 | { |
| 932 | const int log2_min_cb_size = fc->ps.sps->min_cb_log2_size_y; | 932 | const int log2_min_cb_size = fc->ps.sps->min_cb_log2_size_y; |
| @@ -300,14 +300,14 @@ static int get_pu_info(PuInfo *info, const CodedBitstreamH266Context *h266, · 299 unmodified lines | |||
| 300 | } | 300 | } |
| 301 | info->pps = h266->pps[info->ph->ph_pic_parameter_set_id]; | 301 | info->pps = h266->pps[info->ph->ph_pic_parameter_set_id]; |
| 302 | if (!info->pps) { | 302 | if (!info->pps) { |
| 303 | av_log(logctx, AV_LOG_ERROR, "PPS id %d is not avaliable.\n", | 303 | av_log(logctx, AV_LOG_ERROR, "PPS id %d is not available.\n", |
| 304 | info->ph->ph_pic_parameter_set_id); | 304 | info->ph->ph_pic_parameter_set_id); |
| 305 | ret = AVERROR_INVALIDDATA; | 305 | ret = AVERROR_INVALIDDATA; |
| 306 | goto error; | 306 | goto error; |
| 307 | } | 307 | } |
| 308 | info->sps = h266->sps[info->pps->pps_seq_parameter_set_id]; | 308 | info->sps = h266->sps[info->pps->pps_seq_parameter_set_id]; |
| 309 | if (!info->sps) { | 309 | if (!info->sps) { |
| 310 | av_log(logctx, AV_LOG_ERROR, "SPS id %d is not avaliable.\n", | 310 | av_log(logctx, AV_LOG_ERROR, "SPS id %d is not available.\n", |
| 311 | info->pps->pps_seq_parameter_set_id); | 311 | info->pps->pps_seq_parameter_set_id); |
| 312 | ret = AVERROR_INVALIDDATA; | 312 | ret = AVERROR_INVALIDDATA; |
| 313 | goto error; | 313 | goto error; |
| @@ -104,7 +104,7 @@ align 16 · 103 unmodified lines | |||
| 104 | addps m5, m7 ; m5 = Sxy_new = X[i] + Sxy_norm | 104 | addps m5, m7 ; m5 = Sxy_new = X[i] + Sxy_norm |
| 105 | 105 | ||
| 106 | %if USE_APPROXIMATION == 1 | 106 | %if USE_APPROXIMATION == 1 |
| 107 | andps m5, m0 ; if(X[i] == 0) Sxy_new = 0; Prevent aproximation error from setting pulses in array padding. | 107 | andps m5, m0 ; if(X[i] == 0) Sxy_new = 0; Prevent approximation error from setting pulses in array padding. |
| 108 | %endif | 108 | %endif |
| 109 | 109 | ||
| 110 | %else | 110 | %else |
| @@ -1,5 +1,5 @@ | |||
| 1 | ;****************************************************************************** | 1 | ;****************************************************************************** |
| 2 | ;* x86 optimized discrete wavelet trasnform | 2 | ;* x86 optimized discrete wavelet transform |
| 3 | ;* Copyright (c) 2010 David Conrad | 3 | ;* Copyright (c) 2010 David Conrad |
| 4 | ;* | 4 | ;* |
| 5 | ;* This file is part of FFmpeg. | 5 | ;* This file is part of FFmpeg. |
| @@ -532,7 +532,7 @@ cglobal hevc_idct_8x8_%1, 1, 1, 8, coeffs · 531 unmodified lines | |||
| 532 | ; %1, %2 - transform constants | 532 | ; %1, %2 - transform constants |
| 533 | ; %3, %4 - regs with interleaved coeffs | 533 | ; %3, %4 - regs with interleaved coeffs |
| 534 | ; %5 - 1/0 SWAP or add | 534 | ; %5 - 1/0 SWAP or add |
| 535 | ; %6, %7 - registers for intermidiate sums | 535 | ; %6, %7 - registers for intermediate sums |
| 536 | ; %8 - accumulator register | 536 | ; %8 - accumulator register |
| 537 | %macro ADD_ROWS 8 | 537 | %macro ADD_ROWS 8 |
| 538 | pmaddwd %6, %3, %1 | 538 | pmaddwd %6, %3, %1 |
| @@ -26,7 +26,7 @@ · 25 unmodified lines | |||
| 26 | 26 | ||
| 27 | SECTION_RODATA 64 | 27 | SECTION_RODATA 64 |
| 28 | 28 | ||
| 29 | ; Thw following set of constants are ordered to form the | 29 | ; The following set of constants are ordered to form the |
| 30 | ; qword shuffle mask { 0, 2, 4, 6, 1, 3, 5, 7 } | 30 | ; qword shuffle mask { 0, 2, 4, 6, 1, 3, 5, 7 } |
| 31 | %define deintq_perm pd_5520 | 31 | %define deintq_perm pd_5520 |
| 32 | pd_5520: dd 5520 | 32 | pd_5520: dd 5520 |