switch (avctx->codec->type) {
case AVMEDIA_TYPE_VIDEO:
- if (frame->format < 0)
- frame->format = avctx->pix_fmt;
+ frame->format = avctx->pix_fmt;
if (!frame->sample_aspect_ratio.num)
frame->sample_aspect_ratio = avctx->sample_aspect_ratio;
if (av_frame_get_colorspace(frame) == AVCOL_SPC_UNSPECIFIED)
static int reget_buffer_internal(AVCodecContext *avctx, AVFrame *frame)
{
- AVFrame tmp;
+ AVFrame *tmp;
int ret;
av_assert0(avctx->codec_type == AVMEDIA_TYPE_VIDEO);
return 0;
}
- av_frame_move_ref(&tmp, frame);
+ tmp = av_frame_alloc();
+ if (!tmp)
+ return AVERROR(ENOMEM);
+
+ av_frame_move_ref(tmp, frame);
ret = ff_get_buffer(avctx, frame, AV_GET_BUFFER_FLAG_REF);
if (ret < 0) {
- av_frame_unref(&tmp);
+ av_frame_free(&tmp);
return ret;
}
- av_image_copy(frame->data, frame->linesize, tmp.data, tmp.linesize,
- frame->format, frame->width, frame->height);
-
- av_frame_unref(&tmp);
+ av_frame_copy(frame, tmp);
+ av_frame_free(&tmp);
return 0;
}
MAKE_ACCESSORS(AVCodecContext, codec, const AVCodecDescriptor *, codec_descriptor)
MAKE_ACCESSORS(AVCodecContext, codec, int, lowres)
MAKE_ACCESSORS(AVCodecContext, codec, int, seek_preroll)
+MAKE_ACCESSORS(AVCodecContext, codec, uint16_t*, chroma_intra_matrix)
int av_codec_get_max_lowres(const AVCodec *codec)
{