From 5fa1a1d8fc35cfcec14454ae07432b91839d2309 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Sun, 5 Feb 2012 20:06:12 +0100 Subject: [PATCH] Support YV12 from video4linux2 devices. Reviewed-by: Luca Abeni --- libavdevice/v4l2.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c index ca8a61dbf7..642df1d08a 100644 --- a/libavdevice/v4l2.c +++ b/libavdevice/v4l2.c @@ -108,6 +108,7 @@ struct fmt_map { static struct fmt_map fmt_conversion_table[] = { //ff_fmt codec_id v4l2_fmt { PIX_FMT_YUV420P, CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YUV420 }, + { PIX_FMT_YUV420P, CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YVU420 }, { PIX_FMT_YUV422P, CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YUV422P }, { PIX_FMT_YUYV422, CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_YUYV }, { PIX_FMT_UYVY422, CODEC_ID_RAWVIDEO, V4L2_PIX_FMT_UYVY }, @@ -793,6 +794,8 @@ static int v4l2_read_header(AVFormatContext *s1) if (codec_id == CODEC_ID_RAWVIDEO) st->codec->codec_tag = avcodec_pix_fmt_to_codec_tag(st->codec->pix_fmt); + if (desired_format == V4L2_PIX_FMT_YVU420) + st->codec->codec_tag = MKTAG('Y', 'V', '1', '2'); st->codec->width = s->width; st->codec->height = s->height; st->codec->bit_rate = s->frame_size * 1/av_q2d(st->codec->time_base) * 8;