Lines Matching refs:ctx

215     AOMContext *ctx    = avctx->priv_data;
216 const char *error = aom_codec_error(&ctx->encoder);
217 const char *detail = aom_codec_error_detail(&ctx->encoder);
317 AOMContext *ctx = avctx->priv_data;
325 res = aom_codec_control(&ctx->encoder, id, val);
347 AOMContext *ctx = avctx->priv_data;
355 res = aom_codec_control(&ctx->encoder, id, ptr);
369 AOMContext *ctx = avctx->priv_data;
403 aom_codec_destroy(&ctx->encoder);
404 av_freep(&ctx->twopass_stats.buf);
406 free_frame_list(ctx->coded_frame_list);
407 av_bsf_free(&ctx->bsf);
415 AOMContext av_unused *ctx = avctx->priv_data;
504 AOMContext *ctx = avctx->priv_data;
510 if (ctx->tile_cols_log2 >= 0)
511 ctx->tile_cols = 1 << ctx->tile_cols_log2;
512 if (ctx->tile_rows_log2 >= 0)
513 ctx->tile_rows = 1 << ctx->tile_rows_log2;
515 if (ctx->tile_cols == 0) {
516 ctx->tile_cols = (avctx->width + AV1_MAX_TILE_WIDTH - 1) /
518 if (ctx->tile_cols > 1) {
520 "columns to fill width.\n", ctx->tile_cols);
523 av_assert0(ctx->tile_cols > 0);
524 if (ctx->tile_rows == 0) {
527 ctx->tile_cols - 1) / ctx->tile_cols, 128);
528 ctx->tile_rows =
531 if (ctx->tile_rows > 1) {
533 "rows to fill area.\n", ctx->tile_rows);
536 av_assert0(ctx->tile_rows > 0);
538 if ((avctx->width + 63) / 64 < ctx->tile_cols ||
539 (avctx->height + 63) / 64 < ctx->tile_rows) {
544 if (ctx->tile_cols > AV1_MAX_TILE_COLS ||
545 ctx->tile_rows > AV1_MAX_TILE_ROWS) {
551 if (avctx->width / ctx->tile_cols > AV1_MAX_TILE_WIDTH) {
558 ctx->superblock_size = AOM_SUPERBLOCK_SIZE_DYNAMIC;
560 if (ctx->tile_cols == 1 && ctx->tile_rows == 1) {
566 (avctx->width + 127) / 128 >= ctx->tile_cols &&
567 (avctx->height + 127) / 128 >= ctx->tile_rows;
569 ctx->tile_cols_log2 = ctx->tile_cols == 1 ? 0 :
570 av_log2(ctx->tile_cols - 1) + 1;
571 ctx->tile_rows_log2 = ctx->tile_rows == 1 ? 0 :
572 av_log2(ctx->tile_rows - 1) + 1;
575 64, ctx->tile_cols_log2);
577 64, ctx->tile_rows_log2);
580 uniform_64x64_possible = uniform_cols == ctx->tile_cols &&
581 uniform_rows == ctx->tile_rows;
585 128, ctx->tile_cols_log2);
587 128, ctx->tile_rows_log2);
590 uniform_128x128_possible = uniform_cols == ctx->tile_cols &&
591 uniform_rows == ctx->tile_rows;
597 ctx->uniform_tiles = 1;
601 ctx->tile_cols_log2, ctx->tile_rows_log2);
607 ctx->tile_cols_log2, ctx->tile_rows_log2);
608 ctx->superblock_size = AOM_SUPERBLOCK_SIZE_64X64;
614 ctx->tile_cols_log2, ctx->tile_rows_log2);
615 ctx->superblock_size = AOM_SUPERBLOCK_SIZE_128X128;
618 ctx->uniform_tiles = 0;
622 ctx->superblock_size = AOM_SUPERBLOCK_SIZE_128X128;
625 ctx->superblock_size = AOM_SUPERBLOCK_SIZE_64X64;
629 sb_size, sb_size, ctx->tile_cols, ctx->tile_rows);
631 enccfg->tile_width_count = ctx->tile_cols;
632 enccfg->tile_height_count = ctx->tile_rows;
637 tile_size = sb_width / ctx->tile_cols;
638 rounding = sb_width % ctx->tile_cols;
639 for (i = 0; i < ctx->tile_cols; i++) {
642 i > ctx->tile_cols - 1 - (rounding + 1) / 2);
645 tile_size = sb_height / ctx->tile_rows;
646 rounding = sb_height % ctx->tile_rows;
647 for (i = 0; i < ctx->tile_rows; i++) {
650 i > ctx->tile_rows - 1 - (rounding + 1) / 2);
659 AOMContext *ctx = avctx->priv_data;
676 if ((res = aom_codec_enc_config_default(iface, &enccfg, ctx->usage)) != AOM_CODEC_OK) {
700 if (ctx->lag_in_frames >= 0)
701 enccfg.g_lag_in_frames = ctx->lag_in_frames;
713 } else if (ctx->crf >= 0) {
724 ctx->crf = 32;
727 ctx->crf);
734 } else if (!ctx->crf) {
739 if (ctx->crf < enccfg.rc_min_quantizer || ctx->crf > enccfg.rc_max_quantizer) {
742 ctx->crf, enccfg.rc_min_quantizer, enccfg.rc_max_quantizer);
747 enccfg.rc_dropframe_thresh = ctx->drop_threshold;
751 if (ctx->minsection_pct >= 0)
752 enccfg.rc_2pass_vbr_minsection_pct = ctx->minsection_pct;
756 if (ctx->maxsection_pct >= 0)
757 enccfg.rc_2pass_vbr_maxsection_pct = ctx->maxsection_pct;
770 if (ctx->rc_undershoot_pct >= 0)
771 enccfg.rc_undershoot_pct = ctx->rc_undershoot_pct;
772 if (ctx->rc_overshoot_pct >= 0)
773 enccfg.rc_overshoot_pct = ctx->rc_overshoot_pct;
791 ctx->twopass_stats.sz = strlen(avctx->stats_in) * 3 / 4;
792 ret = av_reallocp(&ctx->twopass_stats.buf, ctx->twopass_stats.sz);
796 ctx->twopass_stats.sz);
797 ctx->twopass_stats.sz = 0;
800 decode_size = av_base64_decode(ctx->twopass_stats.buf, avctx->stats_in,
801 ctx->twopass_stats.sz);
807 ctx->twopass_stats.sz = decode_size;
808 enccfg.rc_twopass_stats_in = ctx->twopass_stats;
817 enccfg.g_error_resilient = ctx->error_resilient;
823 if (ctx->still_picture) {
836 res = aom_codec_enc_init(&ctx->encoder, iface, &enccfg, flags);
846 codecctl_int(avctx, AOME_SET_CPUUSED, ctx->cpu_used);
847 if (ctx->auto_alt_ref >= 0)
848 codecctl_int(avctx, AOME_SET_ENABLEAUTOALTREF, ctx->auto_alt_ref);
849 if (ctx->arnr_max_frames >= 0)
850 codecctl_int(avctx, AOME_SET_ARNR_MAXFRAMES, ctx->arnr_max_frames);
851 if (ctx->arnr_strength >= 0)
852 codecctl_int(avctx, AOME_SET_ARNR_STRENGTH, ctx->arnr_strength);
853 if (ctx->enable_cdef >= 0)
854 codecctl_int(avctx, AV1E_SET_ENABLE_CDEF, ctx->enable_cdef);
855 if (ctx->enable_restoration >= 0)
856 codecctl_int(avctx, AV1E_SET_ENABLE_RESTORATION, ctx->enable_restoration);
858 if (ctx->enable_rect_partitions >= 0)
859 codecctl_int(avctx, AV1E_SET_ENABLE_RECT_PARTITIONS, ctx->enable_rect_partitions);
860 if (ctx->enable_1to4_partitions >= 0)
861 codecctl_int(avctx, AV1E_SET_ENABLE_1TO4_PARTITIONS, ctx->enable_1to4_partitions);
862 if (ctx->enable_ab_partitions >= 0)
863 codecctl_int(avctx, AV1E_SET_ENABLE_AB_PARTITIONS, ctx->enable_ab_partitions);
864 if (ctx->enable_angle_delta >= 0)
865 codecctl_int(avctx, AV1E_SET_ENABLE_ANGLE_DELTA, ctx->enable_angle_delta);
866 if (ctx->enable_cfl_intra >= 0)
867 codecctl_int(avctx, AV1E_SET_ENABLE_CFL_INTRA, ctx->enable_cfl_intra);
868 if (ctx->enable_filter_intra >= 0)
869 codecctl_int(avctx, AV1E_SET_ENABLE_FILTER_INTRA, ctx->enable_filter_intra);
870 if (ctx->enable_intra_edge_filter >= 0)
871 codecctl_int(avctx, AV1E_SET_ENABLE_INTRA_EDGE_FILTER, ctx->enable_intra_edge_filter);
872 if (ctx->enable_paeth_intra >= 0)
873 codecctl_int(avctx, AV1E_SET_ENABLE_PAETH_INTRA, ctx->enable_paeth_intra);
874 if (ctx->enable_smooth_intra >= 0)
875 codecctl_int(avctx, AV1E_SET_ENABLE_SMOOTH_INTRA, ctx->enable_smooth_intra);
876 if (ctx->enable_palette >= 0)
877 codecctl_int(avctx, AV1E_SET_ENABLE_PALETTE, ctx->enable_palette);
878 if (ctx->enable_tx64 >= 0)
879 codecctl_int(avctx, AV1E_SET_ENABLE_TX64, ctx->enable_tx64);
880 if (ctx->enable_flip_idtx >= 0)
881 codecctl_int(avctx, AV1E_SET_ENABLE_FLIP_IDTX, ctx->enable_flip_idtx);
882 if (ctx->use_intra_dct_only >= 0)
883 codecctl_int(avctx, AV1E_SET_INTRA_DCT_ONLY, ctx->use_intra_dct_only);
884 if (ctx->use_inter_dct_only >= 0)
885 codecctl_int(avctx, AV1E_SET_INTER_DCT_ONLY, ctx->use_inter_dct_only);
886 if (ctx->use_intra_default_tx_only >= 0)
887 codecctl_int(avctx, AV1E_SET_INTRA_DEFAULT_TX_ONLY, ctx->use_intra_default_tx_only);
888 if (ctx->reduced_tx_type_set >= 0)
889 codecctl_int(avctx, AV1E_SET_REDUCED_TX_TYPE_SET, ctx->reduced_tx_type_set);
890 if (ctx->enable_ref_frame_mvs >= 0)
891 codecctl_int(avctx, AV1E_SET_ENABLE_REF_FRAME_MVS, ctx->enable_ref_frame_mvs);
892 if (ctx->enable_reduced_reference_set >= 0)
893 codecctl_int(avctx, AV1E_SET_REDUCED_REFERENCE_SET, ctx->enable_reduced_reference_set);
894 if (ctx->enable_diff_wtd_comp >= 0)
895 codecctl_int(avctx, AV1E_SET_ENABLE_DIFF_WTD_COMP, ctx->enable_diff_wtd_comp);
896 if (ctx->enable_dist_wtd_comp >= 0)
897 codecctl_int(avctx, AV1E_SET_ENABLE_DIST_WTD_COMP, ctx->enable_dist_wtd_comp);
898 if (ctx->enable_dual_filter >= 0)
899 codecctl_int(avctx, AV1E_SET_ENABLE_DUAL_FILTER, ctx->enable_dual_filter);
900 if (ctx->enable_interinter_wedge >= 0)
901 codecctl_int(avctx, AV1E_SET_ENABLE_INTERINTER_WEDGE, ctx->enable_interinter_wedge);
902 if (ctx->enable_masked_comp >= 0)
903 codecctl_int(avctx, AV1E_SET_ENABLE_MASKED_COMP, ctx->enable_masked_comp);
904 if (ctx->enable_interintra_comp >= 0)
905 codecctl_int(avctx, AV1E_SET_ENABLE_INTERINTRA_COMP, ctx->enable_interintra_comp);
906 if (ctx->enable_interintra_wedge >= 0)
907 codecctl_int(avctx, AV1E_SET_ENABLE_INTERINTRA_WEDGE, ctx->enable_interintra_wedge);
908 if (ctx->enable_obmc >= 0)
909 codecctl_int(avctx, AV1E_SET_ENABLE_OBMC, ctx->enable_obmc);
910 if (ctx->enable_onesided_comp >= 0)
911 codecctl_int(avctx, AV1E_SET_ENABLE_ONESIDED_COMP, ctx->enable_onesided_comp);
912 if (ctx->enable_smooth_interintra >= 0)
913 codecctl_int(avctx, AV1E_SET_ENABLE_SMOOTH_INTERINTRA, ctx->enable_smooth_interintra);
916 codecctl_int(avctx, AOME_SET_STATIC_THRESHOLD, ctx->static_thresh);
917 if (ctx->crf >= 0)
918 codecctl_int(avctx, AOME_SET_CQ_LEVEL, ctx->crf);
919 if (ctx->tune >= 0)
920 codecctl_int(avctx, AOME_SET_TUNING, ctx->tune);
931 if (ctx->aq_mode >= 0)
932 codecctl_int(avctx, AV1E_SET_AQ_MODE, ctx->aq_mode);
933 if (ctx->frame_parallel >= 0)
934 codecctl_int(avctx, AV1E_SET_FRAME_PARALLEL_DECODING, ctx->frame_parallel);
937 codecctl_int(avctx, AV1E_SET_SUPERBLOCK_SIZE, ctx->superblock_size);
938 if (ctx->uniform_tiles) {
939 codecctl_int(avctx, AV1E_SET_TILE_COLUMNS, ctx->tile_cols_log2);
940 codecctl_int(avctx, AV1E_SET_TILE_ROWS, ctx->tile_rows_log2);
944 if (ctx->denoise_noise_level >= 0)
945 codecctl_int(avctx, AV1E_SET_DENOISE_NOISE_LEVEL, ctx->denoise_noise_level);
948 if (ctx->denoise_block_size >= 0)
949 codecctl_int(avctx, AV1E_SET_DENOISE_BLOCK_SIZE, ctx->denoise_block_size);
952 if (ctx->enable_global_motion >= 0)
953 codecctl_int(avctx, AV1E_SET_ENABLE_GLOBAL_MOTION, ctx->enable_global_motion);
961 if (ctx->row_mt >= 0)
962 codecctl_int(avctx, AV1E_SET_ROW_MT, ctx->row_mt);
965 if (ctx->enable_intrabc >= 0)
966 codecctl_int(avctx, AV1E_SET_ENABLE_INTRABC, ctx->enable_intrabc);
973 while ((en = av_dict_get(ctx->aom_params, "", en, AV_DICT_IGNORE_SUFFIX))) {
974 int ret = aom_codec_set_option(&ctx->encoder, en->key, en->value);
984 aom_img_wrap(&ctx->rawimg, img_fmt, avctx->width, avctx->height, 1,
988 ctx->rawimg.bit_depth = enccfg.g_bit_depth;
1003 ret = av_bsf_alloc(filter, &ctx->bsf);
1007 ret = avcodec_parameters_from_context(ctx->bsf->par_in, avctx);
1011 ret = av_bsf_init(ctx->bsf);
1027 static inline void cx_pktcpy(AOMContext *ctx,
1037 dst->frame_number = ++ctx->frame_number;
1038 dst->have_sse = ctx->have_sse;
1039 if (ctx->have_sse) {
1041 /* Transfers ownership from ctx to dst. */
1042 memcpy(dst->sse, ctx->sse, sizeof(dst->sse));
1043 ctx->have_sse = 0;
1058 AOMContext *ctx = avctx->priv_data;
1092 ret = av_bsf_send_packet(ctx->bsf, pkt);
1098 ret = av_bsf_receive_packet(ctx->bsf, pkt);
1119 AOMContext *ctx = avctx->priv_data;
1124 if (ctx->coded_frame_list) {
1125 struct FrameListData *cx_frame = ctx->coded_frame_list;
1130 ctx->coded_frame_list = cx_frame->next;
1136 while ((pkt = aom_codec_get_cx_data(&ctx->encoder, &iter))) {
1144 av_assert0(!ctx->coded_frame_list);
1145 cx_pktcpy(ctx, &cx_frame, pkt);
1158 cx_pktcpy(ctx, cx_frame, pkt);
1169 coded_frame_add(&ctx->coded_frame_list, cx_frame);
1174 struct aom_fixed_buf *stats = &ctx->twopass_stats;
1191 av_assert0(!ctx->have_sse);
1192 ctx->sse[0] = pkt->data.psnr.sse[0];
1193 ctx->sse[1] = pkt->data.psnr.sse[1];
1194 ctx->sse[2] = pkt->data.psnr.sse[2];
1195 ctx->sse[3] = pkt->data.psnr.sse[3];
1196 ctx->have_sse = 1;
1212 AOMContext *ctx = avctx->priv_data;
1219 rawimg = &ctx->rawimg;
1240 res = aom_codec_encode(&ctx->encoder, rawimg, timestamp,
1249 size_t b64_size = AV_BASE64_SIZE(ctx->twopass_stats.sz);
1257 av_base64_encode(avctx->stats_out, b64_size, ctx->twopass_stats.buf,
1258 ctx->twopass_stats.sz);