viddec: use the right pointers
authorWim Taymans <wim.taymans@collabora.co.uk>
Fri, 10 Aug 2012 15:03:26 +0000 (17:03 +0200)
committerWim Taymans <wim.taymans@collabora.co.uk>
Fri, 10 Aug 2012 15:03:26 +0000 (17:03 +0200)
Use the plane pointers and strides.
Improve some debug

ext/ffmpeg/gstffmpegviddec.c

index 129fc89..33b6a18 100644 (file)
@@ -595,16 +595,14 @@ gst_ffmpegviddec_get_buffer (AVCodecContext * context, AVFrame * picture)
   for (c = 0; c < AV_NUM_DATA_POINTERS; c++) {
     if (c < GST_VIDEO_INFO_N_PLANES (info)) {
       picture->data[c] = GST_VIDEO_FRAME_PLANE_DATA (&dframe->vframe, c);
-      picture->linesize[c] = GST_VIDEO_FRAME_COMP_STRIDE (&dframe->vframe, c);
+      picture->linesize[c] = GST_VIDEO_FRAME_PLANE_STRIDE (&dframe->vframe, c);
     } else {
       picture->data[c] = NULL;
       picture->linesize[c] = 0;
     }
+    GST_LOG_OBJECT (ffmpegdec, "linesize %d, data %p", picture->linesize[c],
+        picture->data[c]);
   }
-  GST_DEBUG_OBJECT (ffmpegdec, "from GstVideoInfo data %p %p %p",
-      picture->data[0], picture->data[1], picture->data[2]);
-  GST_DEBUG_OBJECT (ffmpegdec, "from GstVideoInfo linesize %d %d %d",
-      picture->linesize[0], picture->linesize[1], picture->linesize[2]);
 
   /* tell ffmpeg we own this buffer, tranfer the ref we have on the buffer to
    * the opaque data. */
@@ -956,23 +954,19 @@ get_output_buffer (GstFFMpegVidDec * ffmpegdec, GstVideoCodecFrame * frame)
     goto alloc_failed;
 
   for (c = 0; c < AV_NUM_DATA_POINTERS; c++) {
-    if (c < GST_VIDEO_INFO_N_COMPONENTS (info)) {
+    if (c < GST_VIDEO_INFO_N_PLANES (info)) {
       pic.data[c] = GST_VIDEO_FRAME_PLANE_DATA (&vframe, c);
-      pic.linesize[c] = GST_VIDEO_FRAME_COMP_STRIDE (&vframe, c);
+      pic.linesize[c] = GST_VIDEO_FRAME_PLANE_STRIDE (&vframe, c);
     } else {
       pic.data[c] = NULL;
       pic.linesize[c] = 0;
     }
+    GST_LOG_OBJECT (ffmpegdec, "linesize %d, data %p", pic.linesize[c],
+        pic.data[c]);
   }
 
   outpic = (AVPicture *) ffmpegdec->picture;
 
-  GST_LOG_OBJECT (ffmpegdec, "linsize %d %d %d", outpic->linesize[0],
-      outpic->linesize[1], outpic->linesize[2]);
-  GST_LOG_OBJECT (ffmpegdec, "data %u %u %u", 0,
-      (guint) (outpic->data[1] - outpic->data[0]),
-      (guint) (outpic->data[2] - outpic->data[0]));
-
   av_picture_copy (&pic, outpic, ffmpegdec->context->pix_fmt,
       GST_VIDEO_INFO_WIDTH (info), GST_VIDEO_INFO_HEIGHT (info));