From 4f9314ed58358181caf3ce9a78b958c45dda5080 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Thu, 21 Jan 2016 03:38:33 +0100 Subject: [PATCH] lavf/riff: Support reading vlc's rawvideo fourccs. Reported by Bob, no6b no6b com --- libavcodec/raw.c | 34 ++++++++++++++++++++++++++++++++++ libavformat/riff.c | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/libavcodec/raw.c b/libavcodec/raw.c index 8f2684afdd..888f554dac 100644 --- a/libavcodec/raw.c +++ b/libavcodec/raw.c @@ -224,6 +224,40 @@ const PixelFormatTag ff_raw_pix_fmt_tags[] = { { AV_PIX_FMT_GRAY16BE,MKTAG('b', '1', '6', 'g') }, { AV_PIX_FMT_RGB48BE, MKTAG('b', '4', '8', 'r') }, + /* vlc */ + { AV_PIX_FMT_YUV410P, MKTAG('I', '4', '1', '0') }, + { AV_PIX_FMT_YUV411P, MKTAG('I', '4', '1', '1') }, + { AV_PIX_FMT_YUV422P, MKTAG('I', '4', '2', '2') }, + { AV_PIX_FMT_YUV440P, MKTAG('I', '4', '4', '0') }, + { AV_PIX_FMT_YUV444P, MKTAG('I', '4', '4', '4') }, + { AV_PIX_FMT_YUVJ420P, MKTAG('J', '4', '2', '0') }, + { AV_PIX_FMT_YUVJ422P, MKTAG('J', '4', '2', '2') }, + { AV_PIX_FMT_YUVJ440P, MKTAG('J', '4', '4', '0') }, + { AV_PIX_FMT_YUVJ444P, MKTAG('J', '4', '4', '4') }, + { AV_PIX_FMT_YUVA444P, MKTAG('Y', 'U', 'V', 'A') }, + { AV_PIX_FMT_YUVA420P, MKTAG('I', '4', '0', 'A') }, + { AV_PIX_FMT_YUVA422P, MKTAG('I', '4', '2', 'A') }, + { AV_PIX_FMT_RGB8, MKTAG('R', 'G', 'B', '2') }, + { AV_PIX_FMT_RGB555LE, MKTAG('R', 'V', '1', '5') }, + { AV_PIX_FMT_RGB565LE, MKTAG('R', 'V', '1', '6') }, + { AV_PIX_FMT_BGR24, MKTAG('R', 'V', '2', '4') }, + { AV_PIX_FMT_BGR0, MKTAG('R', 'V', '3', '2') }, + { AV_PIX_FMT_RGBA, MKTAG('A', 'V', '3', '2') }, + { AV_PIX_FMT_YUV420P9LE, MKTAG('I', '0', '9', 'L') }, + { AV_PIX_FMT_YUV420P9BE, MKTAG('I', '0', '9', 'B') }, + { AV_PIX_FMT_YUV422P9LE, MKTAG('I', '2', '9', 'L') }, + { AV_PIX_FMT_YUV422P9BE, MKTAG('I', '2', '9', 'B') }, + { AV_PIX_FMT_YUV444P9LE, MKTAG('I', '4', '9', 'L') }, + { AV_PIX_FMT_YUV444P9BE, MKTAG('I', '4', '9', 'B') }, + { AV_PIX_FMT_YUV420P10LE, MKTAG('I', '0', 'A', 'L') }, + { AV_PIX_FMT_YUV420P10BE, MKTAG('I', '0', 'A', 'B') }, + { AV_PIX_FMT_YUV422P10LE, MKTAG('I', '2', 'A', 'L') }, + { AV_PIX_FMT_YUV422P10BE, MKTAG('I', '2', 'A', 'B') }, + { AV_PIX_FMT_YUV444P10LE, MKTAG('I', '4', 'A', 'L') }, + { AV_PIX_FMT_YUV444P10BE, MKTAG('I', '4', 'A', 'B') }, + { AV_PIX_FMT_YUV444P16LE, MKTAG('I', '4', 'F', 'L') }, + { AV_PIX_FMT_YUV444P16BE, MKTAG('I', '4', 'F', 'B') }, + /* special */ { AV_PIX_FMT_RGB565LE,MKTAG( 3 , 0 , 0 , 0 ) }, /* flipped RGB565LE */ { AV_PIX_FMT_YUV444P, MKTAG('Y', 'V', '2', '4') }, /* YUV444P, swapped UV */ diff --git a/libavformat/riff.c b/libavformat/riff.c index cce9bb298c..afded54b7b 100644 --- a/libavformat/riff.c +++ b/libavformat/riff.c @@ -244,6 +244,40 @@ const AVCodecTag ff_codec_bmp_tags[] = { { AV_CODEC_ID_RAWVIDEO, MKTAG('a', 'u', 'v', '2') }, { AV_CODEC_ID_RAWVIDEO, MKTAG('Y', 'V', 'Y', 'U') }, { AV_CODEC_ID_RAWVIDEO, MKTAG('Y', 'U', 'Y', 'V') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '4', '1', '0') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '4', '1', '1') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '4', '2', '2') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '4', '4', '0') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '4', '4', '4') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('J', '4', '2', '0') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('J', '4', '2', '2') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('J', '4', '4', '0') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('J', '4', '4', '4') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('Y', 'U', 'V', 'A') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '4', '0', 'A') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '4', '2', 'A') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', '2') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('R', 'V', '1', '5') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('R', 'V', '1', '6') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('R', 'V', '2', '4') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('R', 'V', '3', '2') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('R', 'G', 'B', 'A') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('A', 'V', '3', '2') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('G', 'R', 'E', 'Y') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '0', '9', 'L') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '0', '9', 'B') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '2', '9', 'L') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '2', '9', 'B') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '4', '9', 'L') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '4', '9', 'B') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '0', 'A', 'L') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '0', 'A', 'B') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '2', 'A', 'L') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '2', 'A', 'B') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '4', 'A', 'L') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '4', 'A', 'B') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '4', 'F', 'L') }, + { AV_CODEC_ID_RAWVIDEO, MKTAG('I', '4', 'F', 'B') }, { AV_CODEC_ID_FRWU, MKTAG('F', 'R', 'W', 'U') }, { AV_CODEC_ID_R10K, MKTAG('R', '1', '0', 'k') }, { AV_CODEC_ID_R210, MKTAG('r', '2', '1', '0') },