[FFmpeg-devel] [PATCH]lavf/ingenient: Add a probe function
Carl Eugen Hoyos
cehoyos at ag.or.at
Sun Oct 18 14:12:16 CEST 2015
Hi!
In the past, the ingenient demuxer was the reason for many bug reports.
This has changed since mjpeg autodetection exists, but since ingenient
auto-detection is easily possible, it should be added.
Unfortunately, I cannot test attached patch, please review wrt
http://multimedia.cx/ingenient.txt and the current ingenientdec.c
source.
Thank you, Carl Eugen
-------------- next part --------------
diff --git a/libavformat/ingenientdec.c b/libavformat/ingenientdec.c
index 94c549c..c0ba61e 100644
--- a/libavformat/ingenientdec.c
+++ b/libavformat/ingenientdec.c
@@ -21,8 +21,18 @@
#include "avformat.h"
#include "rawdec.h"
+#include "libavutil/intreadwrite.h"
+
+// http://multimedia.cx/ingenient.txt
+static int ingenient_probe(AVProbeData *p)
+{
+ if ( AV_RN32(p->buf) != AV_RN32("MJPG")
+ || p->buf_size < 50
+ || AV_RB16(p->buf + 48) != 0xffd8)
+ return 0;
+ return AVPROBE_SCORE_MAX * 3 / 4;
+}
-// http://www.artificis.hu/files/texts/ingenient.txt
static int ingenient_read_packet(AVFormatContext *s, AVPacket *pkt)
{
int ret, size, w, h, unk1, unk2;
@@ -57,6 +67,7 @@ AVInputFormat ff_ingenient_demuxer = {
.name = "ingenient",
.long_name = NULL_IF_CONFIG_SMALL("raw Ingenient MJPEG"),
.priv_data_size = sizeof(FFRawVideoDemuxerContext),
+ .read_probe = ingenient_probe,
.read_header = ff_raw_video_read_header,
.read_packet = ingenient_read_packet,
.flags = AVFMT_GENERIC_INDEX,
More information about the ffmpeg-devel
mailing list