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