[Ffmpeg-cvslog] r5538 - trunk/libavformat/grab.c

lucabe subversion
Wed Jun 28 14:18:22 CEST 2006


Author: lucabe
Date: Wed Jun 28 14:18:22 2006
New Revision: 5538

Modified:
   trunk/libavformat/grab.c

Log:
Properly set the image depth


Modified: trunk/libavformat/grab.c
==============================================================================
--- trunk/libavformat/grab.c	(original)
+++ trunk/libavformat/grab.c	Wed Jun 28 14:18:22 2006
@@ -62,7 +62,7 @@
     int width, height;
     int video_fd, frame_size;
     int ret, frame_rate, frame_rate_base;
-    int desired_palette;
+    int desired_palette, desired_depth;
     struct video_tuner tuner;
     struct video_audio audio;
     struct video_picture pict;
@@ -118,12 +118,16 @@
     }
 
     desired_palette = -1;
-    if (st->codec->pix_fmt == PIX_FMT_YUV420P) {
+    desired_depth = -1;
+    if (ap->pix_fmt == PIX_FMT_YUV420P) {
         desired_palette = VIDEO_PALETTE_YUV420P;
-    } else if (st->codec->pix_fmt == PIX_FMT_YUV422) {
+        desired_depth = 12;
+    } else if (ap->pix_fmt == PIX_FMT_YUV422) {
         desired_palette = VIDEO_PALETTE_YUV422;
-    } else if (st->codec->pix_fmt == PIX_FMT_BGR24) {
+        desired_depth = 16;
+    } else if (ap->pix_fmt == PIX_FMT_BGR24) {
         desired_palette = VIDEO_PALETTE_RGB24;
+        desired_depth = 24;
     }
 
     /* set tv standard */
@@ -155,14 +159,18 @@
 #endif
     /* try to choose a suitable video format */
     pict.palette = desired_palette;
+    pict.depth= desired_depth;
     if (desired_palette == -1 || (ret = ioctl(video_fd, VIDIOCSPICT, &pict)) < 0) {
         pict.palette=VIDEO_PALETTE_YUV420P;
+        pict.depth=12;
         ret = ioctl(video_fd, VIDIOCSPICT, &pict);
         if (ret < 0) {
             pict.palette=VIDEO_PALETTE_YUV422;
+            pict.depth=16;
             ret = ioctl(video_fd, VIDIOCSPICT, &pict);
             if (ret < 0) {
                 pict.palette=VIDEO_PALETTE_RGB24;
+                pict.depth=24;
                 ret = ioctl(video_fd, VIDIOCSPICT, &pict);
                 if (ret < 0)
                     goto fail1;




More information about the ffmpeg-cvslog mailing list