changeset 848:c075abb7fb3c libavcodec

10l - set pixelfmt (colorspace) _before_ calling get_buffer() callback
author arpi_esp
date Sun, 10 Nov 2002 18:45:36 +0000
parents f3c369b8ddca
children a6ed9b34a650
files dv.c
diffstat 1 files changed, 10 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/dv.c	Sun Nov 10 11:46:59 2002 +0000
+++ b/dv.c	Sun Nov 10 18:45:36 2002 +0000
@@ -531,10 +531,12 @@
     /* init size */
     width = 720;
     if (dsf) {
+        avctx->frame_rate = 25 * FRAME_RATE_BASE;
         packet_size = PAL_FRAME_SIZE;
         height = 576;
         nb_dif_segs = 12;
     } else {
+        avctx->frame_rate = 30 * FRAME_RATE_BASE;
         packet_size = NTSC_FRAME_SIZE;
         height = 480;
         nb_dif_segs = 10;
@@ -546,10 +548,16 @@
     /* XXX: is it correct to assume that 420 is always used in PAL
        mode ? */
     s->sampling_411 = !dsf;
-    if (s->sampling_411)
+    if (s->sampling_411) {
         mb_pos_ptr = dv_place_411;
-    else
+        avctx->pix_fmt = PIX_FMT_YUV411P;
+    } else {
         mb_pos_ptr = dv_place_420;
+        avctx->pix_fmt = PIX_FMT_YUV420P;
+    }
+
+    avctx->width = width;
+    avctx->height = height;
 
     if (avctx->flags & CODEC_FLAG_DR1 && avctx->get_buffer_callback)
     {
@@ -561,7 +569,6 @@
 	}
     }
 
-
     /* (re)alloc picture if needed */
     if (s->width != width || s->height != height) {
 	if (!(avctx->flags & CODEC_FLAG_DR1))
@@ -610,16 +617,6 @@
     emms_c();
 
     /* return image */
-    avctx->width = width;
-    avctx->height = height;
-    if (s->sampling_411)
-        avctx->pix_fmt = PIX_FMT_YUV411P;
-    else
-        avctx->pix_fmt = PIX_FMT_YUV420P;
-    if (dsf)
-        avctx->frame_rate = 25 * FRAME_RATE_BASE;
-    else
-        avctx->frame_rate = 30 * FRAME_RATE_BASE;
     *data_size = sizeof(AVPicture);
     picture = data;
     for(i=0;i<3;i++) {