[FFmpeg-cvslog] probe: belive protocol content type if set and avoid lengthly probing.

Michael Niedermayer git at videolan.org
Sun Dec 9 19:13:30 CET 2012


ffmpeg | branch: master | Michael Niedermayer <michaelni at gmx.at> | Sun Dec  9 18:42:07 2012 +0100| [e3d95b54dbaf02b1c6ecdad67dbbf83562025be8] | committer: Michael Niedermayer

probe: belive protocol content type if set and avoid lengthly probing.

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=e3d95b54dbaf02b1c6ecdad67dbbf83562025be8
---

 libavformat/utils.c |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/libavformat/utils.c b/libavformat/utils.c
index 0f13304..3439d2c 100644
--- a/libavformat/utils.c
+++ b/libavformat/utils.c
@@ -413,6 +413,7 @@ int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt,
 {
     AVProbeData pd = { filename ? filename : "", NULL, -offset };
     unsigned char *buf = NULL;
+    uint8_t *demuxer_name;
     int ret = 0, probe_size, buf_offset = 0;
 
     if (!max_probe_size) {
@@ -427,6 +428,10 @@ int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt,
         return AVERROR(EINVAL);
     }
 
+    if (!*fmt && pb && pb->av_class && av_opt_get(pb, "demuxer", AV_OPT_SEARCH_CHILDREN, &demuxer_name) >= 0 && demuxer_name) {
+        *fmt = av_find_input_format(demuxer_name);
+    }
+
     for(probe_size= PROBE_BUF_MIN; probe_size<=max_probe_size && !*fmt;
         probe_size = FFMIN(probe_size<<1, FFMAX(max_probe_size, probe_size+1))) {
         int score = probe_size < max_probe_size ? AVPROBE_SCORE_RETRY : 0;



More information about the ffmpeg-cvslog mailing list