Lines Matching refs:ctx

193     VPxContext *ctx = avctx->priv_data;
194 const char *error = vpx_codec_error(&ctx->encoder);
195 const char *detail = vpx_codec_error_detail(&ctx->encoder);
359 VPxContext *ctx = avctx->priv_data;
367 res = vpx_codec_control(&ctx->encoder, id, val);
375 if (ctx->is_alpha) {
376 int res_alpha = vpx_codec_control(&ctx->encoder_alpha, id, val);
392 VPxContext *ctx = avctx->priv_data;
400 res = vpx_codec_control(&ctx->encoder, id, val);
408 if (ctx->is_alpha) {
409 int res_alpha = vpx_codec_control(&ctx->encoder_alpha, id, val);
424 VPxContext *ctx = avctx->priv_data;
427 if (avctx->codec_id == AV_CODEC_ID_VP9 && ctx->level >= 0 &&
435 av_freep(&ctx->ts_layer_flags);
437 vpx_codec_destroy(&ctx->encoder);
438 if (ctx->is_alpha) {
439 vpx_codec_destroy(&ctx->encoder_alpha);
440 av_freep(&ctx->rawimg_alpha.planes[VPX_PLANE_U]);
441 av_freep(&ctx->rawimg_alpha.planes[VPX_PLANE_V]);
443 av_freep(&ctx->twopass_stats.buf);
445 free_frame_list(ctx->coded_frame_list);
446 free_frame_list(ctx->alpha_coded_frame_list);
447 if (ctx->hdr10_plus_fifo)
448 free_hdr10_plus_fifo(&ctx->hdr10_plus_fifo);
582 static int vpx_ts_param_parse(VPxContext *ctx, struct vpx_codec_enc_cfg *enccfg,
618 ctx->ts_layer_flags = av_malloc_array(VPX_TS_MAX_PERIODICITY, sizeof(*ctx->ts_layer_flags));
619 set_temporal_layer_pattern(ts_layering_mode, enccfg, ctx->ts_layer_flags, &enccfg->ts_periodicity);
710 VPxContext av_unused *ctx = avctx->priv_data;
728 ctx->vpx_cs = VPX_CS_SRGB;
762 ctx->vpx_cs = VPX_CS_SRGB;
782 VPxContext *ctx = avctx->priv_data;
784 if (ctx->vpx_cs) {
785 vpx_cs = ctx->vpx_cs;
830 VPxContext *ctx = avctx->priv_data;
839 ctx->crf = 32;
842 ctx->crf, enccfg->rc_target_bitrate);
855 VPxContext *ctx = avctx->priv_data;
857 if (enccfg->rc_end_usage != VPX_Q && ctx->lossless < 0) {
859 ctx->crf = 32;
862 ctx->crf);
887 VPxContext *ctx = avctx->priv_data;
904 ctx->is_alpha = 1;
919 ctx->hdr10_plus_fifo = av_fifo_alloc2(1, sizeof(FrameHDR10Plus),
921 if (!ctx->hdr10_plus_fifo)
941 enccfg.g_lag_in_frames= ctx->lag_in_frames;
953 } else if (ctx->crf >= 0) {
972 if (avctx->codec_id == AV_CODEC_ID_VP9 && ctx->lossless == 1) {
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;
1008 if (ctx->corpus_complexity >= 0)
1009 enccfg.rc_2pass_vbr_corpus_complexity = ctx->corpus_complexity;
1021 if (ctx->rc_undershoot_pct >= 0)
1022 enccfg.rc_undershoot_pct = ctx->rc_undershoot_pct;
1023 if (ctx->rc_overshoot_pct >= 0)
1024 enccfg.rc_overshoot_pct = ctx->rc_overshoot_pct;
1042 ctx->twopass_stats.sz = strlen(avctx->stats_in) * 3 / 4;
1043 ret = av_reallocp(&ctx->twopass_stats.buf, ctx->twopass_stats.sz);
1047 ctx->twopass_stats.sz);
1048 ctx->twopass_stats.sz = 0;
1051 decode_size = av_base64_decode(ctx->twopass_stats.buf, avctx->stats_in,
1052 ctx->twopass_stats.sz);
1058 ctx->twopass_stats.sz = decode_size;
1059 enccfg.rc_twopass_stats_in = ctx->twopass_stats;
1068 enccfg.g_error_resilient = ctx->error_resilient || ctx->flags & VP8F_ERROR_RESILIENT;
1070 while ((en = av_dict_get(ctx->vpx_ts_parameters, "", en, AV_DICT_IGNORE_SUFFIX))) {
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);
1101 if (ctx->is_alpha) {
1103 res = vpx_codec_enc_init(&ctx->encoder_alpha, iface, &enccfg_alpha, flags);
1112 codecctl_int(avctx, VP8E_SET_CPUUSED, ctx->cpu_used);
1113 if (ctx->flags & VP8F_AUTO_ALT_REF)
1114 ctx->auto_alt_ref = 1;
1115 if (ctx->auto_alt_ref >= 0)
1117 avctx->codec_id == AV_CODEC_ID_VP8 ? !!ctx->auto_alt_ref : ctx->auto_alt_ref);
1118 if (ctx->arnr_max_frames >= 0)
1119 codecctl_int(avctx, VP8E_SET_ARNR_MAXFRAMES, ctx->arnr_max_frames);
1120 if (ctx->arnr_strength >= 0)
1121 codecctl_int(avctx, VP8E_SET_ARNR_STRENGTH, ctx->arnr_strength);
1122 if (ctx->arnr_type >= 0)
1123 codecctl_int(avctx, VP8E_SET_ARNR_TYPE, ctx->arnr_type);
1124 if (ctx->tune >= 0)
1125 codecctl_int(avctx, VP8E_SET_TUNING, ctx->tune);
1127 if (ctx->auto_alt_ref && ctx->is_alpha && avctx->codec_id == AV_CODEC_ID_VP8) {
1132 if (ctx->sharpness >= 0)
1133 codecctl_int(avctx, VP8E_SET_SHARPNESS, ctx->sharpness);
1136 codecctl_int(avctx, VP8E_SET_NOISE_SENSITIVITY, ctx->noise_sensitivity);
1139 codecctl_int(avctx, VP8E_SET_STATIC_THRESHOLD, ctx->static_thresh);
1140 if (ctx->crf >= 0)
1141 codecctl_int(avctx, VP8E_SET_CQ_LEVEL, ctx->crf);
1142 if (ctx->max_intra_rate >= 0)
1143 codecctl_int(avctx, VP8E_SET_MAX_INTRA_BITRATE_PCT, ctx->max_intra_rate);
1147 if (ctx->lossless >= 0)
1148 codecctl_int(avctx, VP9E_SET_LOSSLESS, ctx->lossless);
1149 if (ctx->tile_columns >= 0)
1150 codecctl_int(avctx, VP9E_SET_TILE_COLUMNS, ctx->tile_columns);
1151 if (ctx->tile_rows >= 0)
1152 codecctl_int(avctx, VP9E_SET_TILE_ROWS, ctx->tile_rows);
1153 if (ctx->frame_parallel >= 0)
1154 codecctl_int(avctx, VP9E_SET_FRAME_PARALLEL_DECODING, ctx->frame_parallel);
1155 if (ctx->aq_mode >= 0)
1156 codecctl_int(avctx, VP9E_SET_AQ_MODE, ctx->aq_mode);
1162 codecctl_int(avctx, VP9E_SET_TARGET_LEVEL, ctx->level < 0 ? 255 : lrint(ctx->level * 10));
1165 if (ctx->row_mt >= 0)
1166 codecctl_int(avctx, VP9E_SET_ROW_MT, ctx->row_mt);
1169 if (ctx->tune_content >= 0)
1170 codecctl_int(avctx, VP9E_SET_TUNE_CONTENT, ctx->tune_content);
1173 if (ctx->tpl_model >= 0)
1174 codecctl_int(avctx, VP9E_SET_TPL, ctx->tpl_model);
1179 av_log(avctx, AV_LOG_DEBUG, "Using deadline: %d\n", ctx->deadline);
1182 vpx_img_wrap(&ctx->rawimg, img_fmt, avctx->width, avctx->height, 1,
1186 ctx->rawimg.bit_depth = enccfg.g_bit_depth;
1206 VPxContext *ctx)
1216 dst->frame_number = ++ctx->frame_number;
1217 dst->have_sse = ctx->have_sse;
1218 if (ctx->have_sse) {
1220 /* Transfers ownership from ctx to dst. */
1223 memcpy(dst->sse, ctx->sse, sizeof(dst->sse));
1224 ctx->have_sse = 0;
1241 VPxContext *ctx = avctx->priv_data;
1260 ret = vpx_codec_control(&ctx->encoder, VP8E_GET_LAST_QUANTIZER_64, &quality);
1284 if (ctx->hdr10_plus_fifo) {
1285 int err = copy_hdr10_plus_to_pkt(ctx->hdr10_plus_fifo, pkt);
1305 VPxContext *ctx = avctx->priv_data;
1310 if (!ctx->is_alpha && *frame_list) {
1325 if (!ctx->is_alpha && !size) {
1330 av_assert0(!ctx->coded_frame_list);
1331 cx_pktcpy(&cx_frame, pkt, ctx);
1343 cx_pktcpy(cx_frame, pkt, ctx);
1358 struct vpx_fixed_buf *stats = &ctx->twopass_stats;
1377 av_assert0(!ctx->have_sse);
1378 ctx->sse[0] = pkt->data.psnr.sse[0];
1379 ctx->sse[1] = pkt->data.psnr.sse[1];
1380 ctx->sse[2] = pkt->data.psnr.sse[2];
1381 ctx->sse[3] = pkt->data.psnr.sse[3];
1382 ctx->have_sse = 1;
1502 VPxContext *ctx = avctx->priv_data;
1516 if (ctx->aq_mode > 0 || ctx->cpu_used < 5 || ctx->deadline != VPX_DL_REALTIME) {
1517 if (!ctx->roi_warned) {
1518 ctx->roi_warned = 1;
1533 if (vpx_codec_control(&ctx->encoder, VP9E_SET_ROI_MAP, &roi_map)) {
1542 if (!ctx->roi_warned) {
1543 ctx->roi_warned = 1;
1555 VPxContext *ctx = avctx->priv_data;
1563 if (vpx_codec_control(&ctx->encoder, VP8E_SET_ROI_MAP, &roi_map)) {
1574 VPxContext *ctx = avctx->priv_data;
1575 struct vpx_image *rawimg_alpha = &ctx->rawimg_alpha;
1603 VPxContext *ctx = avctx->priv_data;
1609 const struct vpx_codec_enc_cfg *enccfg = ctx->encoder.config.enc;
1616 res = vpx_codec_enc_config_set(&ctx->encoder, &cfg);
1625 rawimg = &ctx->rawimg;
1632 if (ctx->is_alpha) {
1633 rawimg_alpha = &ctx->rawimg_alpha;
1674 int ret = vpx_parse_ref_frame_config(&ctx->ref_frame_config,
1682 codecctl_intp(avctx, VP9E_SET_SVC_REF_FRAME_CONFIG, (int *)&ctx->ref_frame_config);
1699 if (ctx->hdr10_plus_fifo) {
1710 err = av_fifo_write(ctx->hdr10_plus_fifo, &data, 1);
1721 if (enccfg->ts_number_layers > 1 && ctx->ts_layer_flags) {
1724 ctx->current_temporal_idx = 0;
1731 flags |= ctx->ts_layer_flags[ctx->current_temporal_idx];
1737 layer_id.temporal_layer_id = enccfg->ts_layer_id[ctx->current_temporal_idx];
1755 res = vpx_codec_encode(&ctx->encoder, rawimg, timestamp,
1756 avctx->ticks_per_frame, flags, ctx->deadline);
1762 if (ctx->is_alpha) {
1763 res = vpx_codec_encode(&ctx->encoder_alpha, rawimg_alpha, timestamp,
1764 avctx->ticks_per_frame, flags, ctx->deadline);
1771 coded_size = queue_frames(avctx, &ctx->encoder, &ctx->coded_frame_list, pkt);
1772 if (ctx->is_alpha) {
1773 queue_frames(avctx, &ctx->encoder_alpha, &ctx->alpha_coded_frame_list, NULL);
1775 if (ctx->coded_frame_list && ctx->alpha_coded_frame_list) {
1776 struct FrameListData *cx_frame = ctx->coded_frame_list;
1777 struct FrameListData *alpha_cx_frame = ctx->alpha_coded_frame_list;
1783 ctx->coded_frame_list = cx_frame->next;
1784 ctx->alpha_coded_frame_list = alpha_cx_frame->next;
1791 unsigned int b64_size = AV_BASE64_SIZE(ctx->twopass_stats.sz);
1799 av_base64_encode(avctx->stats_out, b64_size, ctx->twopass_stats.buf,
1800 ctx->twopass_stats.sz);
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;