--- libavformat/allformats.c | 1 + libavformat/img2.c | 3 +++ libavformat/img2dec.c | 22 ++++++++++++++++++++++ 3 files changed, 26 insertions(+)
diff --git a/libavformat/allformats.c b/libavformat/allformats.c index 5471f7c16f..99d8c91e00 100644 --- a/libavformat/allformats.c +++ b/libavformat/allformats.c @@ -499,6 +499,7 @@ extern const AVInputFormat ff_image_cri_pipe_demuxer; extern const AVInputFormat ff_image_dds_pipe_demuxer; extern const AVInputFormat ff_image_dpx_pipe_demuxer; extern const AVInputFormat ff_image_exr_pipe_demuxer; +extern const AVInputFormat ff_image_gem_pipe_demuxer; extern const AVInputFormat ff_image_gif_pipe_demuxer; extern const AVInputFormat ff_image_j2k_pipe_demuxer; extern const AVInputFormat ff_image_jpeg_pipe_demuxer; diff --git a/libavformat/img2.c b/libavformat/img2.c index 6bdd7efe26..4153102c92 100644 --- a/libavformat/img2.c +++ b/libavformat/img2.c @@ -84,6 +84,9 @@ const IdStrMap ff_img_tags[] = { { AV_CODEC_ID_XPM, "xpm" }, { AV_CODEC_ID_XFACE, "xface" }, { AV_CODEC_ID_XWD, "xwd" }, + { AV_CODEC_ID_GEM, "img" }, + { AV_CODEC_ID_GEM, "ximg" }, + { AV_CODEC_ID_GEM, "timg" }, { AV_CODEC_ID_NONE, NULL } }; diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c index 485444ed31..acfd5910de 100644 --- a/libavformat/img2dec.c +++ b/libavformat/img2dec.c @@ -1105,6 +1105,27 @@ static int photocd_probe(const AVProbeData *p) return AVPROBE_SCORE_MAX - 1; } +static int gem_probe(const AVProbeData *p) +{ + const uint8_t *b = p->buf; + int ret = 0; + if ( AV_RB16(b ) >= 1 && AV_RB16(b ) <= 3 && + AV_RB16(b + 2) >= 8 && AV_RB16(b + 2) <= 779 && + (AV_RB16(b + 4) > 0 || AV_RB16(b + 4) <= 8) && + (AV_RB16(b + 6) > 0 || AV_RB16(b + 6) <= 8) && + AV_RB16(b + 8) && + AV_RB16(b + 10) && + AV_RB16(b + 12) && + AV_RB16(b + 14)) { + ret = AVPROBE_SCORE_EXTENSION / 4; + if (AV_RN32(b + 16) == AV_RN32("STTT") || + AV_RN32(b + 16) == AV_RN32("TIMG") || + AV_RN32(b + 16) == AV_RN32("XIMG")) + ret += 1; + } + return ret; +} + #define IMAGEAUTO_DEMUXER(imgname, codecid)\ const AVInputFormat ff_image_ ## imgname ## _pipe_demuxer = {\ .name = AV_STRINGIFY(imgname) "_pipe",\ @@ -1123,6 +1144,7 @@ IMAGEAUTO_DEMUXER(cri, AV_CODEC_ID_CRI) IMAGEAUTO_DEMUXER(dds, AV_CODEC_ID_DDS) IMAGEAUTO_DEMUXER(dpx, AV_CODEC_ID_DPX) IMAGEAUTO_DEMUXER(exr, AV_CODEC_ID_EXR) +IMAGEAUTO_DEMUXER(gem, AV_CODEC_ID_GEM) IMAGEAUTO_DEMUXER(gif, AV_CODEC_ID_GIF) IMAGEAUTO_DEMUXER(j2k, AV_CODEC_ID_JPEG2000) IMAGEAUTO_DEMUXER(jpeg, AV_CODEC_ID_MJPEG) -- 2.33.0 -- Peter (A907 E02F A6E5 0CD2 34CD 20D2 6760 79C5 AC40 DD6B)
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".