Lines Matching defs:enccfg

582 static int vpx_ts_param_parse(VPxContext *ctx, struct vpx_codec_enc_cfg *enccfg,
592 enccfg->ts_number_layers = strtoul(value, &value, 10);
595 vp8_ts_parse_int_array(enccfg->ts_target_bitrate, value, value_len, VPX_TS_MAX_LAYERS);
598 vp8_ts_parse_int_array(enccfg->layer_target_bitrate, value, value_len, VPX_TS_MAX_LAYERS);
601 vp8_ts_parse_int_array(enccfg->ts_rate_decimator, value, value_len, VPX_TS_MAX_LAYERS);
603 enccfg->ts_periodicity = strtoul(value, &value, 10);
605 vp8_ts_parse_int_array(enccfg->ts_layer_id, value, value_len, VPX_TS_MAX_PERIODICITY);
612 enccfg->temporal_layering_mode = VP9E_TEMPORAL_LAYERING_MODE_BYPASS; // only bypass mode is supported for now.
613 enccfg->ss_number_layers = 1; // TODO: add spatial scalability support.
619 set_temporal_layer_pattern(ts_layering_mode, enccfg, ctx->ts_layer_flags, &enccfg->ts_periodicity);
707 struct vpx_codec_enc_cfg *enccfg, vpx_codec_flags_t *flags,
712 enccfg->g_bit_depth = enccfg->g_input_bit_depth = desc->comp[0].depth;
716 enccfg->g_profile = 0;
720 enccfg->g_profile = 1;
724 enccfg->g_profile = 1;
730 enccfg->g_profile = 1;
736 enccfg->g_profile = 2;
745 enccfg->g_profile = 3;
754 enccfg->g_profile = 3;
766 enccfg->g_profile = 3;
828 struct vpx_codec_enc_cfg *enccfg)
832 avctx->bit_rate = enccfg->rc_target_bitrate * 1000;
833 if (enccfg->rc_end_usage == VPX_CQ) {
836 enccfg->rc_target_bitrate);
838 enccfg->rc_end_usage = VPX_CQ;
842 ctx->crf, enccfg->rc_target_bitrate);
853 struct vpx_codec_enc_cfg *enccfg)
857 if (enccfg->rc_end_usage != VPX_Q && ctx->lossless < 0) {
858 enccfg->rc_end_usage = VPX_Q;
872 struct vpx_codec_enc_cfg *enccfg)
877 set_vp9_defaults(avctx, enccfg);
881 set_vp8_defaults(avctx, enccfg);
888 struct vpx_codec_enc_cfg enccfg = { 0 };
906 if ((res = vpx_codec_enc_config_default(iface, &enccfg, 0)) != VPX_CODEC_OK) {
914 if (set_pix_fmt(avctx, codec_caps, &enccfg, &flags, &img_fmt))
918 if (enccfg.g_bit_depth > 8 && avctx->color_trc == AVCOL_TRC_SMPTE2084) {
933 dump_enc_cfg(avctx, &enccfg, AV_LOG_DEBUG);
935 enccfg.g_w = avctx->width;
936 enccfg.g_h = avctx->height;
937 enccfg.g_timebase.num = avctx->time_base.num;
938 enccfg.g_timebase.den = avctx->time_base.den;
939 enccfg.g_threads =
941 enccfg.g_lag_in_frames= ctx->lag_in_frames;
944 enccfg.g_pass = VPX_RC_FIRST_PASS;
946 enccfg.g_pass = VPX_RC_LAST_PASS;
948 enccfg.g_pass = VPX_RC_ONE_PASS;
952 enccfg.rc_end_usage = VPX_CBR;
954 enccfg.rc_end_usage = VPX_CQ;
957 enccfg.rc_end_usage = VPX_Q;
962 enccfg.rc_target_bitrate = av_rescale_rnd(avctx->bit_rate, 1, 1000,
965 enccfg.ss_target_bitrate[0] = enccfg.rc_target_bitrate;
969 set_vpx_defaults(avctx, &enccfg);
973 enccfg.rc_min_quantizer =
974 enccfg.rc_max_quantizer = 0;
977 enccfg.rc_min_quantizer = avctx->qmin;
979 enccfg.rc_max_quantizer = avctx->qmax;
982 if (enccfg.rc_end_usage == VPX_CQ
984 || enccfg.rc_end_usage == VPX_Q
987 if (ctx->crf < enccfg.rc_min_quantizer || ctx->crf > enccfg.rc_max_quantizer) {
990 ctx->crf, enccfg.rc_min_quantizer, enccfg.rc_max_quantizer);
995 enccfg.rc_dropframe_thresh = ctx->drop_threshold;
998 enccfg.rc_2pass_vbr_bias_pct = lrint(avctx->qcompress * 100);
1000 enccfg.rc_2pass_vbr_minsection_pct =
1003 enccfg.rc_2pass_vbr_maxsection_pct =
1009 enccfg.rc_2pass_vbr_corpus_complexity = ctx->corpus_complexity;
1015 enccfg.rc_buf_sz =
1018 enccfg.rc_buf_initial_sz =
1020 enccfg.rc_buf_optimal_sz = enccfg.rc_buf_sz * 5 / 6;
1022 enccfg.rc_undershoot_pct = ctx->rc_undershoot_pct;
1024 enccfg.rc_overshoot_pct = ctx->rc_overshoot_pct;
1028 enccfg.kf_min_dist = avctx->keyint_min;
1030 enccfg.kf_max_dist = avctx->gop_size;
1032 if (enccfg.g_pass == VPX_RC_FIRST_PASS)
1033 enccfg.g_lag_in_frames = 0;
1034 else if (enccfg.g_pass == VPX_RC_LAST_PASS) {
1059 enccfg.rc_twopass_stats_in = ctx->twopass_stats;
1066 enccfg.g_profile = avctx->profile;
1068 enccfg.g_error_resilient = ctx->error_resilient || ctx->flags & VP8F_ERROR_RESILIENT;
1071 if (vpx_ts_param_parse(ctx, &enccfg, en->key, en->value, avctx->codec_id) < 0)
1078 res = vpx_codec_enc_init(&ctx->encoder, iface, &enccfg, flags);
1080 dump_enc_cfg(avctx, &enccfg, AV_LOG_WARNING);
1084 dump_enc_cfg(avctx, &enccfg, AV_LOG_DEBUG);
1087 if (avctx->codec_id == AV_CODEC_ID_VP9 && enccfg.ts_number_layers > 1) {
1089 for (int i = 0; i < enccfg.ts_number_layers; ++i) {
1090 svc_params.max_quantizers[i] = enccfg.rc_max_quantizer;
1091 svc_params.min_quantizers[i] = enccfg.rc_min_quantizer;
1093 svc_params.scaling_factor_num[0] = enccfg.g_h;
1094 svc_params.scaling_factor_den[0] = enccfg.g_h;
1102 enccfg_alpha = enccfg;
1186 ctx->rawimg.bit_depth = enccfg.g_bit_depth;
1193 if (enccfg.rc_end_usage == VPX_CBR ||
1194 enccfg.g_pass != VPX_RC_ONE_PASS) {
1609 const struct vpx_codec_enc_cfg *enccfg = ctx->encoder.config.enc;
1613 if (avctx->qmax >= 0 && enccfg->rc_max_quantizer != avctx->qmax) {
1614 struct vpx_codec_enc_cfg cfg = *enccfg;
1675 enccfg->ss_number_layers, en->value);
1721 if (enccfg->ts_number_layers > 1 && ctx->ts_layer_flags) {
1737 layer_id.temporal_layer_id = enccfg->ts_layer_id[ctx->current_temporal_idx];
1801 } else if (enccfg->ts_number_layers > 1 && ctx->ts_layer_flags) {
1802 ctx->current_temporal_idx = (ctx->current_temporal_idx + 1) % enccfg->ts_periodicity;