diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-08-08 22:39:49 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-08-28 22:18:57 +0200 |
commit | e31db621bf0037b9079bff996d34f4163f4b3c16 (patch) | |
tree | 7cb829994b3c528b7d723bb5f81bc8c013b758a8 /libavformat/utils.c | |
parent | 90411f7ed669d2f823468c4157647d73b0b28ebe (diff) | |
download | ffmpeg-e31db621bf0037b9079bff996d34f4163f4b3c16.tar.gz |
avformat: export probe score
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavformat/utils.c')
-rw-r--r-- | libavformat/utils.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/libavformat/utils.c b/libavformat/utils.c index ab2f424146..cae81f52c0 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -100,6 +100,11 @@ static int64_t wrap_timestamp(AVStream *st, int64_t timestamp) MAKE_ACCESSORS(AVStream, stream, AVRational, r_frame_rate) +int av_format_get_probe_score(const AVFormatContext *s) +{ + return s->probe_score; +} + /* an arbitrarily chosen "sane" max packet size -- 50M */ #define SANE_CHUNK_SIZE (50000000) @@ -309,7 +314,7 @@ int av_demuxer_open(AVFormatContext *ic){ } -int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt, +int av_probe_input_buffer2(AVIOContext *pb, AVInputFormat **fmt, const char *filename, void *logctx, unsigned int offset, unsigned int max_probe_size) { @@ -390,6 +395,15 @@ int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt, return ret; } +int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt, + const char *filename, void *logctx, + unsigned int offset, unsigned int max_probe_size) +{ + int ret = av_probe_input_buffer2(pb, fmt, filename, logctx, offset, max_probe_size); + return ret < 0 ? ret : 0; +} + + /* open input file and probe the format if necessary */ static int init_input(AVFormatContext *s, const char *filename, AVDictionary **options) { @@ -400,7 +414,7 @@ static int init_input(AVFormatContext *s, const char *filename, AVDictionary **o if (s->pb) { s->flags |= AVFMT_FLAG_CUSTOM_IO; if (!s->iformat) - return av_probe_input_buffer(s->pb, &s->iformat, filename, s, 0, s->probesize); + return av_probe_input_buffer2(s->pb, &s->iformat, filename, s, 0, s->probesize); else if (s->iformat->flags & AVFMT_NOFILE) av_log(s, AV_LOG_WARNING, "Custom AVIOContext makes no sense and " "will be ignored with AVFMT_NOFILE format.\n"); @@ -409,14 +423,14 @@ static int init_input(AVFormatContext *s, const char *filename, AVDictionary **o if ( (s->iformat && s->iformat->flags & AVFMT_NOFILE) || (!s->iformat && (s->iformat = av_probe_input_format2(&pd, 0, &score)))) - return 0; + return score; if ((ret = avio_open2(&s->pb, filename, AVIO_FLAG_READ | s->avio_flags, &s->interrupt_callback, options)) < 0) return ret; if (s->iformat) return 0; - return av_probe_input_buffer(s->pb, &s->iformat, filename, s, 0, s->probesize); + return av_probe_input_buffer2(s->pb, &s->iformat, filename, s, 0, s->probesize); } static AVPacket *add_to_pktbuf(AVPacketList **packet_buffer, AVPacket *pkt, @@ -476,6 +490,7 @@ int avformat_open_input(AVFormatContext **ps, const char *filename, AVInputForma if ((ret = init_input(s, filename, &tmp)) < 0) goto fail; + s->probe_score = ret; avio_skip(s->pb, s->skip_initial_bytes); /* check filename in case an image number is expected */ |