]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/ingenientdec.c
lavf/ingenientdec: Add a probe function.
[ffmpeg] / libavformat / ingenientdec.c
index 94c549c711ce92f9954eb2e18de15d9bffe94905..c0ba61e81f9cff9f90a205ca79e3917316271406 100644 (file)
 
 #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,