[FFmpeg-cvslog] dvdec: Move the VSC pack parsing to before avctx->execute()
Tomas Härdin
git at videolan.org
Mon Oct 15 18:54:07 CEST 2012
ffmpeg | branch: master | Tomas Härdin <tomas.hardin at codemill.se> | Mon Oct 15 16:13:18 2012 +0200| [2b4bbd12c2ece58d51b53da7c4db2e0554920ba0] | committer: Michael Niedermayer
dvdec: Move the VSC pack parsing to before avctx->execute()
This allows the next commit to parse the FS flag.
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2b4bbd12c2ece58d51b53da7c4db2e0554920ba0
---
libavcodec/dvdec.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/libavcodec/dvdec.c b/libavcodec/dvdec.c
index a38d409..6306b5a 100644
--- a/libavcodec/dvdec.c
+++ b/libavcodec/dvdec.c
@@ -343,6 +343,14 @@ static int dvvideo_decode_frame(AVCodecContext *avctx,
s->picture.interlaced_frame = 1;
s->picture.top_field_first = 0;
+ /* Determine the codec's sample_aspect ratio from the packet */
+ vsc_pack = buf + 80*5 + 48 + 5;
+ if ( *vsc_pack == dv_video_control ) {
+ apt = buf[4] & 0x07;
+ is16_9 = (vsc_pack[2] & 0x07) == 0x02 || (!apt && (vsc_pack[2] & 0x07) == 0x07);
+ avctx->sample_aspect_ratio = s->sys->sar[is16_9];
+ }
+
s->buf = buf;
avctx->execute(avctx, dv_decode_video_segment, s->sys->work_chunks, NULL,
dv_work_pool_size(s->sys), sizeof(DVwork_chunk));
@@ -353,14 +361,6 @@ static int dvvideo_decode_frame(AVCodecContext *avctx,
*data_size = sizeof(AVFrame);
*(AVFrame*)data = s->picture;
- /* Determine the codec's sample_aspect ratio from the packet */
- vsc_pack = buf + 80*5 + 48 + 5;
- if ( *vsc_pack == dv_video_control ) {
- apt = buf[4] & 0x07;
- is16_9 = (vsc_pack[2] & 0x07) == 0x02 || (!apt && (vsc_pack[2] & 0x07) == 0x07);
- avctx->sample_aspect_ratio = s->sys->sar[is16_9];
- }
-
return s->sys->frame_size;
}
More information about the ffmpeg-cvslog
mailing list