Lines Matching defs:avctx
68 static int vaapi_encode_mpeg2_write_fragment(AVCodecContext *avctx,
72 VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
77 av_log(avctx, AV_LOG_ERROR, "Failed to write packed header.\n");
82 av_log(avctx, AV_LOG_ERROR, "Access unit too large: "
94 static int vaapi_encode_mpeg2_add_header(AVCodecContext *avctx,
102 av_log(avctx, AV_LOG_ERROR, "Failed to add header: "
110 static int vaapi_encode_mpeg2_write_sequence_header(AVCodecContext *avctx,
113 VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
117 err = vaapi_encode_mpeg2_add_header(avctx, frag, MPEG2_START_SEQUENCE_HEADER,
122 err = vaapi_encode_mpeg2_add_header(avctx, frag, MPEG2_START_EXTENSION,
127 err = vaapi_encode_mpeg2_add_header(avctx, frag, MPEG2_START_EXTENSION,
132 err = vaapi_encode_mpeg2_add_header(avctx, frag, MPEG2_START_GROUP,
137 err = vaapi_encode_mpeg2_write_fragment(avctx, data, data_len, frag);
143 static int vaapi_encode_mpeg2_write_picture_header(AVCodecContext *avctx,
147 VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
151 err = vaapi_encode_mpeg2_add_header(avctx, frag, MPEG2_START_PICTURE,
156 err = vaapi_encode_mpeg2_add_header(avctx, frag, MPEG2_START_EXTENSION,
161 err = vaapi_encode_mpeg2_write_fragment(avctx, data, data_len, frag);
167 static int vaapi_encode_mpeg2_init_sequence_params(AVCodecContext *avctx)
169 VAAPIEncodeContext *ctx = avctx->priv_data;
170 VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
196 if (avctx->rc_buffer_size > 0) {
197 priv->vbv_buffer_size = (avctx->rc_buffer_size + (1 << 14) - 1) >> 14;
203 switch (avctx->level) {
225 sh->horizontal_size_value = avctx->width & 0xfff;
226 sh->vertical_size_value = avctx->height & 0xfff;
228 if (avctx->sample_aspect_ratio.num != 0 &&
229 avctx->sample_aspect_ratio.den != 0) {
230 AVRational dar = av_div_q(avctx->sample_aspect_ratio,
231 (AVRational) { avctx->width, avctx->height });
233 if (av_cmp_q(avctx->sample_aspect_ratio, (AVRational) { 1, 1 }) == 0) {
242 av_log(avctx, AV_LOG_WARNING, "Sample aspect ratio %d:%d is not "
244 avctx->sample_aspect_ratio.num,
245 avctx->sample_aspect_ratio.den);
253 if (avctx->framerate.num > 0 && avctx->framerate.den > 0)
254 priv->frame_rate = avctx->framerate;
256 priv->frame_rate = av_inv_q(avctx->time_base);
275 se->profile_and_level_indication = avctx->profile << 4 | avctx->level;
279 se->horizontal_size_extension = avctx->width >> 12;
280 se->vertical_size_extension = avctx->height >> 12;
300 sde->colour_primaries = avctx->color_primaries;
301 sde->transfer_characteristics = avctx->color_trc;
302 sde->matrix_coefficients = avctx->colorspace;
304 avctx->color_primaries != AVCOL_PRI_UNSPECIFIED ||
305 avctx->color_trc != AVCOL_TRC_UNSPECIFIED ||
306 avctx->colorspace != AVCOL_SPC_UNSPECIFIED;
308 sde->display_horizontal_size = avctx->width;
309 sde->display_vertical_size = avctx->height;
359 .picture_width = avctx->width,
360 .picture_height = avctx->height,
419 static int vaapi_encode_mpeg2_init_picture_params(AVCodecContext *avctx,
422 VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
481 static int vaapi_encode_mpeg2_init_slice_params(AVCodecContext *avctx,
485 VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
514 static av_cold int vaapi_encode_mpeg2_configure(AVCodecContext *avctx)
516 VAAPIEncodeContext *ctx = avctx->priv_data;
517 VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
520 err = ff_cbs_init(&priv->cbc, AV_CODEC_ID_MPEG2VIDEO, avctx);
526 if (avctx->i_quant_factor > 0.0)
528 av_clip((avctx->i_quant_factor * priv->quant_p +
529 avctx->i_quant_offset) + 0.5, 1, 31);
532 if (avctx->b_quant_factor > 0.0)
534 av_clip((avctx->b_quant_factor * priv->quant_p +
535 avctx->b_quant_offset) + 0.5, 1, 31);
539 av_log(avctx, AV_LOG_DEBUG, "Using fixed quantiser "
549 ctx->slice_block_rows = FFALIGN(avctx->height, 16) / 16;
550 ctx->slice_block_cols = FFALIGN(avctx->width, 16) / 16;
591 static av_cold int vaapi_encode_mpeg2_init(AVCodecContext *avctx)
593 VAAPIEncodeContext *ctx = avctx->priv_data;
594 VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
598 if (avctx->profile == FF_PROFILE_UNKNOWN)
599 avctx->profile = priv->profile;
600 if (avctx->level == FF_LEVEL_UNKNOWN)
601 avctx->level = priv->level;
605 switch (avctx->level) {
612 av_log(avctx, AV_LOG_ERROR, "Unknown MPEG-2 level %d.\n",
613 avctx->level);
617 if (avctx->height % 4096 == 0 || avctx->width % 4096 == 0) {
618 av_log(avctx, AV_LOG_ERROR, "MPEG-2 does not support picture "
626 return ff_vaapi_encode_init(avctx);
629 static av_cold int vaapi_encode_mpeg2_close(AVCodecContext *avctx)
631 VAAPIEncodeMPEG2Context *priv = avctx->priv_data;
636 return ff_vaapi_encode_close(avctx);