Luca Barbato wrote:
On 23/01/13 15:33, Vladimir Pantelic wrote:
@@ -41,7 +43,10 @@

int ff_raw_read_partial_packet(AVFormatContext *s, AVPacket *pkt)
pkt->pos= avio_tell(s->pb);
pkt->stream_index = 0;
+ if( s1->gen_ts )
+ pkt->pts = (av_gettime() - s1->starttime) / 1000;
+av_log(NULL, AV_LOG_ERROR, "pts %lld\n", pkt->pts);
ret = ffio_read_partial(s->pb, pkt->data, size);
if (ret < 0) {
av_free_packet(pkt);

Unrelated hunk I think.

oops yes, attached the wrong file, see attahed



diff --git a/libavformat/rawdec.c b/libavformat/rawdec.c
index 5e95d10..f085b45 100644
--- a/libavformat/rawdec.c
+++ b/libavformat/rawdec.c
@@ -124,7 +135,43 @@ AVInputFormat ff_latm_demuxer = {
 #endif
 
 #if CONFIG_MJPEG_DEMUXER
-FF_DEF_RAWVIDEO_DEMUXER(mjpeg, "raw MJPEG video", NULL, "mjpg,mjpeg", AV_CODEC_ID_MJPEG)
+
+static int mjpeg_probe(AVProbeData *p)
+{
+   int ofs = 0;
+   // possible attachment with mime type
+    if(!memcmp(p->buf  , "--", 2) || !memcmp(p->buf  , "\r\n--", 4)) {
+        if(av_strnstr(p->buf, "image/jpeg", p->buf_size )) {
+av_log(NULL, AV_LOG_ERROR, "mjpeg_probe MIME\n");
+            return AVPROBE_SCORE_MAX;
+	}
+    }
+    if( p->buf[ofs] == 0xFF && p->buf[ofs + 1] == 0xD8) {
+av_log(NULL, AV_LOG_ERROR, "mjpeg_probe FFD8\n");
+        return AVPROBE_SCORE_MAX;
+    }
+    return 0;
+}
+
+static const AVClass mjpeg_demuxer_class = {
+    .class_name = "mjpeg demuxer",
+    .item_name  = av_default_item_name,
+    .option     = ff_rawvideo_options,
+    .version    = LIBAVUTIL_VERSION_INT,
+};
+
+AVInputFormat ff_mjpeg_demuxer = {
+    .name           = "mjpeg",
+    .long_name      = NULL_IF_CONFIG_SMALL("raw MJPEG video"),
+    .read_header    = ff_raw_video_read_header,
+    .read_packet    = ff_raw_read_partial_packet,
+    .read_probe     = mjpeg_probe,
+    .flags          = AVFMT_GENERIC_INDEX,
+    .extensions     = "mjpg,mjpeg",
+    .raw_codec_id   = AV_CODEC_ID_MJPEG,
+    .priv_data_size = sizeof(FFRawVideoDemuxerContext),
+    .priv_class     = &mjpeg_demuxer_class,
+};
 #endif
 
 #if CONFIG_MLP_DEMUXER
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to