---

As requested by Cheristheus on irc.

 libavdevice/v4l2.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
index 302639d..8bbc956 100644
--- a/libavdevice/v4l2.c
+++ b/libavdevice/v4l2.c
@@ -111,6 +111,9 @@ static struct fmt_map fmt_conversion_table[] = {
     { AV_PIX_FMT_NV12,    AV_CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_NV12    },
     { AV_PIX_FMT_NONE,    AV_CODEC_ID_MJPEG,    V4L2_PIX_FMT_MJPEG   },
     { AV_PIX_FMT_NONE,    AV_CODEC_ID_MJPEG,    V4L2_PIX_FMT_JPEG    },
+#ifdef V4L2_PIX_FMT_H264
+    { AV_PIX_FMT_NONE,    AV_CODEC_ID_H264,     V4L2_PIX_FMT_H264    },
+#endif
 };

 static int device_open(AVFormatContext *ctx)
@@ -782,8 +785,11 @@ static int v4l2_read_header(AVFormatContext *s1)
     if (s->pixel_format) {
         AVCodec *codec = avcodec_find_decoder_by_name(s->pixel_format);

-        if (codec)
+        if (codec) {
             s1->video_codec_id = codec->id;
+            if (codec->id != AV_CODEC_ID_MJPEG)
+                st->need_parsing = AVSTREAM_PARSE_HEADERS;
+        }

         pix_fmt = av_get_pix_fmt(s->pixel_format);

--
1.9.0

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to