From 5dab7b91adf65eb35d4ae0e76fbd988d55b0d764 Mon Sep 17 00:00:00 2001 From: Paras Chadha Date: Sun, 12 Mar 2017 02:31:23 +0530 Subject: avcodec: add XPM decoder and demuxer Signed-off-by: Paras Chadha --- libavformat/Makefile | 1 + libavformat/allformats.c | 1 + libavformat/img2.c | 1 + libavformat/img2dec.c | 10 ++++++++++ 4 files changed, 13 insertions(+) (limited to 'libavformat') diff --git a/libavformat/Makefile b/libavformat/Makefile index fc2d76067b..f56ef16532 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -241,6 +241,7 @@ OBJS-$(CONFIG_IMAGE_SGI_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_SUNRAST_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_TIFF_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_WEBP_PIPE_DEMUXER) += img2dec.o img2.o +OBJS-$(CONFIG_IMAGE_XPM_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_INGENIENT_DEMUXER) += ingenientdec.o rawdec.o OBJS-$(CONFIG_IPMOVIE_DEMUXER) += ipmovie.o OBJS-$(CONFIG_IRCAM_DEMUXER) += ircamdec.o ircam.o pcm.o diff --git a/libavformat/allformats.c b/libavformat/allformats.c index 132e58b8b9..09e62c3cfc 100644 --- a/libavformat/allformats.c +++ b/libavformat/allformats.c @@ -372,6 +372,7 @@ static void register_all(void) REGISTER_DEMUXER (IMAGE_SUNRAST_PIPE, image_sunrast_pipe); REGISTER_DEMUXER (IMAGE_TIFF_PIPE, image_tiff_pipe); REGISTER_DEMUXER (IMAGE_WEBP_PIPE, image_webp_pipe); + REGISTER_DEMUXER (IMAGE_XPM_PIPE, image_xpm_pipe); /* external libraries */ REGISTER_MUXER (CHROMAPRINT, chromaprint); diff --git a/libavformat/img2.c b/libavformat/img2.c index f9f53ff558..29df4f04e2 100644 --- a/libavformat/img2.c +++ b/libavformat/img2.c @@ -75,6 +75,7 @@ const IdStrMap ff_img_tags[] = { { AV_CODEC_ID_V210X, "yuv10" }, { AV_CODEC_ID_WEBP, "webp" }, { AV_CODEC_ID_XBM, "xbm" }, + { AV_CODEC_ID_XPM, "xpm" }, { AV_CODEC_ID_XFACE, "xface" }, { AV_CODEC_ID_XWD, "xwd" }, { AV_CODEC_ID_NONE, NULL } diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c index c3c2cf3640..b454071168 100644 --- a/libavformat/img2dec.c +++ b/libavformat/img2dec.c @@ -943,6 +943,15 @@ static int pam_probe(AVProbeData *p) return pnm_magic_check(p, 7) ? pnm_probe(p) : 0; } +static int xpm_probe(AVProbeData *p) +{ + const uint8_t *b = p->buf; + + if (AV_RB64(b) == 0x2f2a2058504d202a && *(b+8) == '/') + return AVPROBE_SCORE_MAX - 1; + return 0; +} + #define IMAGEAUTO_DEMUXER(imgname, codecid)\ static const AVClass imgname ## _class = {\ .class_name = AV_STRINGIFY(imgname) " demuxer",\ @@ -983,3 +992,4 @@ IMAGEAUTO_DEMUXER(sgi, AV_CODEC_ID_SGI) IMAGEAUTO_DEMUXER(sunrast, AV_CODEC_ID_SUNRAST) IMAGEAUTO_DEMUXER(tiff, AV_CODEC_ID_TIFF) IMAGEAUTO_DEMUXER(webp, AV_CODEC_ID_WEBP) +IMAGEAUTO_DEMUXER(xpm, AV_CODEC_ID_XPM) -- cgit v1.2.3