lavc: add width and height fields to AVFrame

width and height are per-frame properties, setting these values in
AVFrame simplify the operation of extraction of that information,
since avoids the need to check the codec/stream context.
pull/3/head
Stefano Sabatini 14 years ago committed by Anton Khirnov
parent b58dbb5b03
commit 3a2ddf7c2c
  1. 7
      libavcodec/avcodec.h
  2. 2
      libavcodec/pthread.c
  3. 2
      libavcodec/utils.c

@ -1265,6 +1265,13 @@ typedef struct AVFrame {
* - decoding: Read by user.
*/
AVRational sample_aspect_ratio;
/**
* width and height of the video frame
* - encoding: unused
* - decoding: Read by user.
*/
int width, height;
} AVFrame;
struct AVCodecInternal;

@ -600,6 +600,8 @@ int ff_thread_decode_frame(AVCodecContext *avctx,
*got_picture_ptr = p->got_frame;
picture->pkt_dts = p->avpkt.dts;
picture->sample_aspect_ratio = avctx->sample_aspect_ratio;
picture->width = avctx->width;
picture->height = avctx->height;
/*
* A later call with avkpt->size == 0 may loop over all threads,

@ -860,6 +860,8 @@ int attribute_align_arg avcodec_decode_video2(AVCodecContext *avctx, AVFrame *pi
avpkt);
picture->pkt_dts= avpkt->dts;
picture->sample_aspect_ratio = avctx->sample_aspect_ratio;
picture->width = avctx->width;
picture->height = avctx->height;
}
emms_c(); //needed to avoid an emms_c() call before every return;

Loading…
Cancel
Save