diff options
author | Stefano Sabatini <stefano.sabatini-lala@poste.it> | 2011-05-01 14:02:08 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2011-12-25 16:18:57 +0100 |
commit | 3a2ddf7c2c4d27b595a601c55af23129a5a8be0d (patch) | |
tree | 3ca841a72a9d1c31397aab788ebd6c9325f112ea /libavcodec | |
parent | b58dbb5b031c33cdb88f13cc533f623e82cdbcbd (diff) | |
download | ffmpeg-3a2ddf7c2c4d27b595a601c55af23129a5a8be0d.tar.gz |
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.
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/avcodec.h | 7 | ||||
-rw-r--r-- | libavcodec/pthread.c | 2 | ||||
-rw-r--r-- | libavcodec/utils.c | 2 |
3 files changed, 11 insertions, 0 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h index eb6826bcb0..0204af7df0 100644 --- a/libavcodec/avcodec.h +++ b/libavcodec/avcodec.h @@ -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; diff --git a/libavcodec/pthread.c b/libavcodec/pthread.c index 17dd12da6c..1ec2d1a1f9 100644 --- a/libavcodec/pthread.c +++ b/libavcodec/pthread.c @@ -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, diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 7c1a7aea2a..74932ed71d 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -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; |