summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorPeter Ross <pross@xvid.org>2012-11-18 19:01:41 +1100
committerMichael Niedermayer <michaelni@gmx.at>2012-11-18 13:46:36 +0100
commitd26eeb0dc1dd8f8aab0a5ed5830c3e34ce795aee (patch)
tree17bf80f078e94a9e3572a1821bbd169c3c8de09e /libavformat
parent0c79a3d9cb0c7a7acef30b7c01e9337ba91a4a81 (diff)
iff: recognise more DEEP colorspaces
Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/iff.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/libavformat/iff.c b/libavformat/iff.c
index c7213bc631..d4bdf508cc 100644
--- a/libavformat/iff.c
+++ b/libavformat/iff.c
@@ -137,6 +137,9 @@ static int iff_probe(AVProbeData *p)
static const uint8_t deep_rgb24[] = {0, 0, 0, 3, 0, 1, 0, 8, 0, 2, 0, 8, 0, 3, 0, 8};
static const uint8_t deep_rgba[] = {0, 0, 0, 4, 0, 1, 0, 8, 0, 2, 0, 8, 0, 3, 0, 8};
+static const uint8_t deep_bgra[] = {0, 0, 0, 4, 0, 3, 0, 8, 0, 2, 0, 8, 0, 1, 0, 8};
+static const uint8_t deep_argb[] = {0, 0, 0, 4, 0,17, 0, 8, 0, 1, 0, 8, 0, 2, 0, 8};
+static const uint8_t deep_abgr[] = {0, 0, 0, 4, 0,17, 0, 8, 0, 3, 0, 8, 0, 2, 0, 8};
static int iff_read_header(AVFormatContext *s)
{
@@ -249,6 +252,12 @@ static int iff_read_header(AVFormatContext *s)
st->codec->pix_fmt = AV_PIX_FMT_RGB24;
else if (fmt_size == sizeof(deep_rgba) && !memcmp(fmt, deep_rgba, sizeof(deep_rgba)))
st->codec->pix_fmt = AV_PIX_FMT_RGBA;
+ else if (fmt_size == sizeof(deep_bgra) && !memcmp(fmt, deep_bgra, sizeof(deep_bgra)))
+ st->codec->pix_fmt = AV_PIX_FMT_BGRA;
+ else if (fmt_size == sizeof(deep_argb) && !memcmp(fmt, deep_argb, sizeof(deep_argb)))
+ st->codec->pix_fmt = AV_PIX_FMT_ARGB;
+ else if (fmt_size == sizeof(deep_abgr) && !memcmp(fmt, deep_abgr, sizeof(deep_abgr)))
+ st->codec->pix_fmt = AV_PIX_FMT_ABGR;
else {
av_log_ask_for_sample(s, "unsupported color format\n");
return AVERROR_PATCHWELCOME;