Make read_packet fail is the v4l2 driver returns an unexpected frame size
authorLuca Abeni <lucabe72@email.it>
Sun, 22 Oct 2006 09:56:08 +0000 (09:56 +0000)
committerLuca Abeni <lucabe72@email.it>
Sun, 22 Oct 2006 09:56:08 +0000 (09:56 +0000)
(driver's bug? If not, we will have to support this in some way)

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

libavformat/v4l2.c

index 10841aa..00adcca 100644 (file)
@@ -308,7 +308,12 @@ static int mmap_read_frame(struct video_data *s, void *frame, int64_t *ts)
         return -1;
     }
     assert (buf.index < s->buffers);
-    assert(buf.bytesused == s->frame_size);
+    if (buf.bytesused != s->frame_size) {
+        av_log(NULL, AV_LOG_ERROR, "The v4l2 frame is %d bytes, but %d bytes are expected\n", buf.bytesused, s->frame_size);
+
+        return -1;
+    }
+
     /* Image is at s->buff_start[buf.index] */
     memcpy(frame, s->buf_start[buf.index], buf.bytesused);
     *ts = buf.timestamp.tv_sec * int64_t_C(1000000) + buf.timestamp.tv_usec;