From ff1450e449f848ad4b37b3cf448315ba4581364e Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Fri, 1 Jul 2022 10:06:15 +0200 Subject: avcodec: add PHM decoder and encoder --- libavformat/Makefile | 2 ++ libavformat/allformats.c | 2 ++ libavformat/img2.c | 1 + libavformat/img2dec.c | 16 +++++++++++++++- libavformat/img2enc.c | 2 +- libavformat/version.h | 2 +- 6 files changed, 22 insertions(+), 3 deletions(-) (limited to 'libavformat') diff --git a/libavformat/Makefile b/libavformat/Makefile index 1416bf31bd..6c6b779080 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -280,9 +280,11 @@ OBJS-$(CONFIG_IMAGE_JPEGXL_PIPE_DEMUXER) += img2dec.o img2.o jpegxl_probe.o OBJS-$(CONFIG_IMAGE_PAM_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_PBM_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_PCX_PIPE_DEMUXER) += img2dec.o img2.o +OBJS-$(CONFIG_IMAGE_PFM_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_PGMYUV_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_PGM_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_PGX_PIPE_DEMUXER) += img2dec.o img2.o +OBJS-$(CONFIG_IMAGE_PHM_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_PHOTOCD_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_PICTOR_PIPE_DEMUXER) += img2dec.o img2.o OBJS-$(CONFIG_IMAGE_PNG_PIPE_DEMUXER) += img2dec.o img2.o diff --git a/libavformat/allformats.c b/libavformat/allformats.c index 8b84b52c64..32698b857f 100644 --- a/libavformat/allformats.c +++ b/libavformat/allformats.c @@ -515,9 +515,11 @@ extern const AVInputFormat ff_image_jpegxl_pipe_demuxer; extern const AVInputFormat ff_image_pam_pipe_demuxer; extern const AVInputFormat ff_image_pbm_pipe_demuxer; extern const AVInputFormat ff_image_pcx_pipe_demuxer; +extern const AVInputFormat ff_image_pfm_pipe_demuxer; extern const AVInputFormat ff_image_pgmyuv_pipe_demuxer; extern const AVInputFormat ff_image_pgm_pipe_demuxer; extern const AVInputFormat ff_image_pgx_pipe_demuxer; +extern const AVInputFormat ff_image_phm_pipe_demuxer; extern const AVInputFormat ff_image_photocd_pipe_demuxer; extern const AVInputFormat ff_image_pictor_pipe_demuxer; extern const AVInputFormat ff_image_png_pipe_demuxer; diff --git a/libavformat/img2.c b/libavformat/img2.c index 68cb7de2c1..870d2ebbc5 100644 --- a/libavformat/img2.c +++ b/libavformat/img2.c @@ -41,6 +41,7 @@ const IdStrMap ff_img_tags[] = { { AV_CODEC_ID_PBM, "pbm" }, { AV_CODEC_ID_PAM, "pam" }, { AV_CODEC_ID_PFM, "pfm" }, + { AV_CODEC_ID_PHM, "phm" }, { AV_CODEC_ID_CRI, "cri" }, { AV_CODEC_ID_ALIAS_PIX, "pix" }, { AV_CODEC_ID_DDS, "dds" }, diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c index e4912cb487..e7ff26e5dd 100644 --- a/libavformat/img2dec.c +++ b/libavformat/img2dec.c @@ -1020,7 +1020,19 @@ static inline int pnm_probe(const AVProbeData *p) static int pbm_probe(const AVProbeData *p) { - return pnm_magic_check(p, 1) || pnm_magic_check(p, 4) || pnm_magic_check(p, 22) || pnm_magic_check(p, 54) ? pnm_probe(p) : 0; + return pnm_magic_check(p, 1) || pnm_magic_check(p, 4) ? pnm_probe(p) : 0; +} + +static int pfm_probe(const AVProbeData *p) +{ + return pnm_magic_check(p, 'F' - '0') || + pnm_magic_check(p, 'f' - '0') ? pnm_probe(p) : 0; +} + +static int phm_probe(const AVProbeData *p) +{ + return pnm_magic_check(p, 'H' - '0') || + pnm_magic_check(p, 'h' - '0') ? pnm_probe(p) : 0; } static inline int pgmx_probe(const AVProbeData *p) @@ -1216,9 +1228,11 @@ IMAGEAUTO_DEMUXER(jpegxl, JPEGXL) IMAGEAUTO_DEMUXER(pam, PAM) IMAGEAUTO_DEMUXER(pbm, PBM) IMAGEAUTO_DEMUXER(pcx, PCX) +IMAGEAUTO_DEMUXER(pfm, PFM) IMAGEAUTO_DEMUXER(pgm, PGM) IMAGEAUTO_DEMUXER(pgmyuv, PGMYUV) IMAGEAUTO_DEMUXER(pgx, PGX) +IMAGEAUTO_DEMUXER(phm, PHM) IMAGEAUTO_DEMUXER(photocd, PHOTOCD) IMAGEAUTO_DEMUXER(pictor, PICTOR) IMAGEAUTO_DEMUXER(png, PNG) diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c index b3a0801ec9..0a11fae34e 100644 --- a/libavformat/img2enc.c +++ b/libavformat/img2enc.c @@ -265,7 +265,7 @@ static const AVClass img2mux_class = { const AVOutputFormat ff_image2_muxer = { .name = "image2", .long_name = NULL_IF_CONFIG_SMALL("image2 sequence"), - .extensions = "bmp,dpx,exr,jls,jpeg,jpg,jxl,ljpg,pam,pbm,pcx,pfm,pgm,pgmyuv," + .extensions = "bmp,dpx,exr,jls,jpeg,jpg,jxl,ljpg,pam,pbm,pcx,pfm,pgm,pgmyuv,phm," "png,ppm,sgi,tga,tif,tiff,jp2,j2c,j2k,xwd,sun,ras,rs,im1,im8," "im24,sunras,vbn,xbm,xface,pix,y,avif,qoi", .priv_data_size = sizeof(VideoMuxData), diff --git a/libavformat/version.h b/libavformat/version.h index 966ebb7ed3..0708d619c0 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -31,7 +31,7 @@ #include "version_major.h" -#define LIBAVFORMAT_VERSION_MINOR 25 +#define LIBAVFORMAT_VERSION_MINOR 26 #define LIBAVFORMAT_VERSION_MICRO 100 #define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \ -- cgit v1.2.3