Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
e31db621
Commit
e31db621
authored
Aug 08, 2013
by
Michael Niedermayer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avformat: export probe score
Signed-off-by:
Michael Niedermayer
<
michaelni@gmx.at
>
parent
90411f7e
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
45 additions
and
7 deletions
+45
-7
formats.texi
doc/formats.texi
+4
-0
avformat.h
libavformat/avformat.h
+20
-1
utils.c
libavformat/utils.c
+19
-4
version.h
libavformat/version.h
+2
-2
No files found.
doc/formats.texi
View file @
e31db621
...
...
@@ -137,6 +137,10 @@ non-monotonic negative timestamps.
Flush the underlying I/O stream after each packet. Default 1 enables it, and
has the effect of reducing the latency; 0 disables it and may slightly
increase performance in some cases.
@item probe_score @var{integer} (@emph{input})
This field is only accessible programatically, its value represents the score
by which the format was detected.
@end table
@c man end FORMAT OPTIONS
...
...
libavformat/avformat.h
View file @
e31db621
...
...
@@ -1237,6 +1237,15 @@ typedef struct AVFormatContext {
*/
int
flush_packets
;
/**
* format probing score.
* The maximal score is AVPROBE_SCORE_MAX, its set when the demuxer probes
* the format.
* - encoding: unused
* - decoding: set by avformat, read by user via av_format_get_probe_score() (NO direct access)
*/
int
probe_score
;
/*****************************************************************
* All fields below this line are not part of the public API. They
* may not be used outside of libavformat and can be changed and
...
...
@@ -1296,6 +1305,8 @@ typedef struct AVFormatContext {
int
io_repositioned
;
}
AVFormatContext
;
int
av_format_get_probe_score
(
const
AVFormatContext
*
s
);
/**
* Returns the method used to set ctx->duration.
*
...
...
@@ -1504,9 +1515,17 @@ AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened, int *score
* @param logctx the log context
* @param offset the offset within the bytestream to probe from
* @param max_probe_size the maximum probe buffer size (zero for default)
* @return 0 in case of success, a negative value corresponding to an
* @return the score in case of success, a negative value corresponding to an
* the maximal score is AVPROBE_SCORE_MAX
* AVERROR code otherwise
*/
int
av_probe_input_buffer2
(
AVIOContext
*
pb
,
AVInputFormat
**
fmt
,
const
char
*
filename
,
void
*
logctx
,
unsigned
int
offset
,
unsigned
int
max_probe_size
);
/**
* Like av_probe_input_buffer2() but returns 0 on success
*/
int
av_probe_input_buffer
(
AVIOContext
*
pb
,
AVInputFormat
**
fmt
,
const
char
*
filename
,
void
*
logctx
,
unsigned
int
offset
,
unsigned
int
max_probe_size
);
...
...
libavformat/utils.c
View file @
e31db621
...
...
@@ -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_buffer
2
(
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_buffer
2
(
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_buffer
2
(
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 */
...
...
libavformat/version.h
View file @
e31db621
...
...
@@ -30,8 +30,8 @@
#include "libavutil/avutil.h"
#define LIBAVFORMAT_VERSION_MAJOR 55
#define LIBAVFORMAT_VERSION_MINOR 1
4
#define LIBAVFORMAT_VERSION_MICRO 10
2
#define LIBAVFORMAT_VERSION_MINOR 1
5
#define LIBAVFORMAT_VERSION_MICRO 10
0
#define LIBAVFORMAT_VERSION_INT AV_VERSION_INT(LIBAVFORMAT_VERSION_MAJOR, \
LIBAVFORMAT_VERSION_MINOR, \
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment