summaryrefslogtreecommitdiff
path: root/libavformat/ingenientdec.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat/ingenientdec.c')
-rw-r--r--libavformat/ingenientdec.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/libavformat/ingenientdec.c b/libavformat/ingenientdec.c
index 94c549c711..c0ba61e81f 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,