OSDN Git Service

Add support for 8-bit grayscale to V4L grabber
authorMichael Benjamin <neuroptik@gmail.com>
Fri, 15 Sep 2006 11:17:41 +0000 (11:17 +0000)
committerGuillaume Poirier <gpoirier@mplayerhq.hu>
Fri, 15 Sep 2006 11:17:41 +0000 (11:17 +0000)
patch by Michael Benjamin % neuroptik AH gmail.com %
Original thread:
Date: Aug 24, 2006 5:40 PM
Subject: [Ffmpeg-devel] V4L grab.c patch for Grayscale

Originally committed as revision 6259 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/grab.c

index 5b3c49a..15c1c5d 100644 (file)
@@ -173,7 +173,11 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap)
                 pict.depth=24;
                 ret = ioctl(video_fd, VIDIOCSPICT, &pict);
                 if (ret < 0)
-                    goto fail1;
+                    pict.palette=VIDEO_PALETTE_GREY;
+                    pict.depth=8;
+                    ret = ioctl(video_fd, VIDIOCSPICT, &pict);
+                    if (ret < 0)
+                        goto fail1;
             }
         }
     }
@@ -256,6 +260,10 @@ static int grab_read_header(AVFormatContext *s1, AVFormatParameters *ap)
         frame_size = width * height * 3;
         st->codec->pix_fmt = PIX_FMT_BGR24; /* NOTE: v4l uses BGR24, not RGB24 ! */
         break;
+    case VIDEO_PALETTE_GREY:
+        frame_size = width * height * 1;
+        st->codec->pix_fmt = PIX_FMT_GRAY8;
+        break;
     default:
         goto fail;
     }