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
603b8bc2
Commit
603b8bc2
authored
Jun 04, 2011
by
Anton Khirnov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Deprecate av_open_input_* and remove their uses.
Deprecate the last remaining member of AVFormatParameters.
parent
05e84c95
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
89 additions
and
122 deletions
+89
-122
vsrc_movie.c
libavfilter/vsrc_movie.c
+2
-2
applehttp.c
libavformat/applehttp.c
+7
-2
avformat.h
libavformat/avformat.h
+8
-3
avidec.c
libavformat/avidec.c
+6
-2
rdt.c
libavformat/rdt.c
+2
-2
rtpdec_asf.c
libavformat/rtpdec_asf.c
+5
-2
sapdec.c
libavformat/sapdec.c
+3
-4
utils.c
libavformat/utils.c
+56
-105
No files found.
libavfilter/vsrc_movie.c
View file @
603b8bc2
...
...
@@ -91,9 +91,9 @@ static int movie_init(AVFilterContext *ctx)
iformat
=
movie
->
format_name
?
av_find_input_format
(
movie
->
format_name
)
:
NULL
;
movie
->
format_ctx
=
NULL
;
if
((
ret
=
av
_open_input_file
(
&
movie
->
format_ctx
,
movie
->
file_name
,
iformat
,
0
,
NULL
))
<
0
)
{
if
((
ret
=
av
format_open_input
(
&
movie
->
format_ctx
,
movie
->
file_name
,
iformat
,
NULL
))
<
0
)
{
av_log
(
ctx
,
AV_LOG_ERROR
,
"Failed to av
_open_input_file
'%s'
\n
"
,
movie
->
file_name
);
"Failed to av
format_open_input
'%s'
\n
"
,
movie
->
file_name
);
return
ret
;
}
if
((
ret
=
av_find_stream_info
(
movie
->
format_ctx
))
<
0
)
...
...
libavformat/applehttp.c
View file @
603b8bc2
...
...
@@ -473,6 +473,11 @@ static int applehttp_read_header(AVFormatContext *s, AVFormatParameters *ap)
if
(
v
->
n_segments
==
0
)
continue
;
if
(
!
(
v
->
ctx
=
avformat_alloc_context
()))
{
ret
=
AVERROR
(
ENOMEM
);
goto
fail
;
}
v
->
index
=
i
;
v
->
needed
=
1
;
v
->
parent
=
s
;
...
...
@@ -491,8 +496,8 @@ static int applehttp_read_header(AVFormatContext *s, AVFormatParameters *ap)
NULL
,
0
,
0
);
if
(
ret
<
0
)
goto
fail
;
ret
=
av_open_input_stream
(
&
v
->
ctx
,
&
v
->
pb
,
v
->
segments
[
0
]
->
url
,
in_fmt
,
NULL
);
v
->
ctx
->
pb
=
&
v
->
pb
;
ret
=
avformat_open_input
(
&
v
->
ctx
,
v
->
segments
[
0
]
->
url
,
in_fmt
,
NULL
);
if
(
ret
<
0
)
goto
fail
;
v
->
stream_offset
=
stream_offset
;
...
...
libavformat/avformat.h
View file @
603b8bc2
...
...
@@ -247,8 +247,8 @@ typedef struct AVFormatParameters {
attribute_deprecated
unsigned
int
mpeg2ts_compute_pcr
:
1
;
attribute_deprecated
unsigned
int
initial_pause
:
1
;
/**< Do not begin to play the stream
immediately (RTSP only). */
attribute_deprecated
unsigned
int
prealloced_context
:
1
;
#endif
unsigned
int
prealloced_context
:
1
;
}
AVFormatParameters
;
//! Demuxer will use avio_open, no opened file should be provided by the caller.
...
...
@@ -1016,11 +1016,13 @@ int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt,
const
char
*
filename
,
void
*
logctx
,
unsigned
int
offset
,
unsigned
int
max_probe_size
);
#if FF_API_FORMAT_PARAMETERS
/**
* Allocate all the structures needed to read an input stream.
* This does not open the needed codecs for decoding the stream[s].
* @deprecated use avformat_open_input instead.
*/
int
av_open_input_stream
(
AVFormatContext
**
ic_ptr
,
attribute_deprecated
int
av_open_input_stream
(
AVFormatContext
**
ic_ptr
,
AVIOContext
*
pb
,
const
char
*
filename
,
AVInputFormat
*
fmt
,
AVFormatParameters
*
ap
);
...
...
@@ -1035,11 +1037,14 @@ int av_open_input_stream(AVFormatContext **ic_ptr,
* @param ap Additional parameters needed when opening the file
* (NULL if default).
* @return 0 if OK, AVERROR_xxx otherwise
*
* @deprecated use avformat_open_input instead.
*/
int
av_open_input_file
(
AVFormatContext
**
ic_ptr
,
const
char
*
filename
,
attribute_deprecated
int
av_open_input_file
(
AVFormatContext
**
ic_ptr
,
const
char
*
filename
,
AVInputFormat
*
fmt
,
int
buf_size
,
AVFormatParameters
*
ap
);
#endif
/**
* Open an input stream and read the header. The codecs are not opened.
...
...
libavformat/avidec.c
View file @
603b8bc2
...
...
@@ -774,7 +774,11 @@ static int read_gab2_sub(AVStream *st, AVPacket *pkt) {
if
(
!
(
sub_demuxer
=
av_probe_input_format2
(
&
pd
,
1
,
&
score
)))
goto
error
;
if
(
!
av_open_input_stream
(
&
ast
->
sub_ctx
,
pb
,
""
,
sub_demuxer
,
NULL
))
{
if
(
!
(
ast
->
sub_ctx
=
avformat_alloc_context
()))
goto
error
;
ast
->
sub_ctx
->
pb
=
pb
;
if
(
!
avformat_open_input
(
&
ast
->
sub_ctx
,
""
,
sub_demuxer
,
NULL
))
{
av_read_packet
(
ast
->
sub_ctx
,
&
ast
->
sub_pkt
);
*
st
->
codec
=
*
ast
->
sub_ctx
->
streams
[
0
]
->
codec
;
ast
->
sub_ctx
->
streams
[
0
]
->
codec
->
extradata
=
NULL
;
...
...
@@ -1334,7 +1338,7 @@ static int avi_read_close(AVFormatContext *s)
if
(
ast
)
{
if
(
ast
->
sub_ctx
)
{
av_freep
(
&
ast
->
sub_ctx
->
pb
);
av_close_input_
stream
(
ast
->
sub_ctx
);
av_close_input_
file
(
ast
->
sub_ctx
);
}
av_free
(
ast
->
sub_buffer
);
av_free_packet
(
&
ast
->
sub_pkt
);
...
...
libavformat/rdt.c
View file @
603b8bc2
...
...
@@ -523,7 +523,7 @@ rdt_new_context (void)
{
PayloadContext
*
rdt
=
av_mallocz
(
sizeof
(
PayloadContext
));
av
_open_input_stream
(
&
rdt
->
rmctx
,
NULL
,
""
,
&
ff_rdt_demuxer
,
NULL
);
av
format_open_input
(
&
rdt
->
rmctx
,
""
,
&
ff_rdt_demuxer
,
NULL
);
return
rdt
;
}
...
...
@@ -539,7 +539,7 @@ rdt_free_context (PayloadContext *rdt)
av_freep
(
&
rdt
->
rmst
[
i
]);
}
if
(
rdt
->
rmctx
)
av_close_input_
stream
(
rdt
->
rmctx
);
av_close_input_
file
(
rdt
->
rmctx
);
av_freep
(
&
rdt
->
mlti_data
);
av_freep
(
&
rdt
->
rmst
);
av_free
(
rdt
);
...
...
libavformat/rtpdec_asf.c
View file @
603b8bc2
...
...
@@ -107,10 +107,13 @@ int ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p)
"Failed to fix invalid RTSP-MS/ASF min_pktsize
\n
"
);
init_packetizer
(
&
pb
,
buf
,
len
);
if
(
rt
->
asf_ctx
)
{
av_close_input_
stream
(
rt
->
asf_ctx
);
av_close_input_
file
(
rt
->
asf_ctx
);
rt
->
asf_ctx
=
NULL
;
}
ret
=
av_open_input_stream
(
&
rt
->
asf_ctx
,
&
pb
,
""
,
&
ff_asf_demuxer
,
NULL
);
if
(
!
(
rt
->
asf_ctx
=
avformat_alloc_context
()))
return
AVERROR
(
ENOMEM
);
rt
->
asf_ctx
->
pb
=
&
pb
;
ret
=
avformat_open_input
(
&
rt
->
asf_ctx
,
""
,
&
ff_asf_demuxer
,
NULL
);
if
(
ret
<
0
)
return
ret
;
av_dict_copy
(
&
s
->
metadata
,
rt
->
asf_ctx
->
metadata
,
0
);
...
...
libavformat/sapdec.c
View file @
603b8bc2
...
...
@@ -52,7 +52,7 @@ static int sap_read_close(AVFormatContext *s)
{
struct
SAPState
*
sap
=
s
->
priv_data
;
if
(
sap
->
sdp_ctx
)
av_close_input_
stream
(
sap
->
sdp_ctx
);
av_close_input_
file
(
sap
->
sdp_ctx
);
if
(
sap
->
ann_fd
)
ffurl_close
(
sap
->
ann_fd
);
av_freep
(
&
sap
->
sdp
);
...
...
@@ -156,9 +156,8 @@ static int sap_read_header(AVFormatContext *s,
goto
fail
;
}
sap
->
sdp_ctx
->
max_delay
=
s
->
max_delay
;
ap
->
prealloced_context
=
1
;
ret
=
av_open_input_stream
(
&
sap
->
sdp_ctx
,
&
sap
->
sdp_pb
,
"temp.sdp"
,
infmt
,
ap
);
sap
->
sdp_ctx
->
pb
=
&
sap
->
sdp_pb
;
ret
=
avformat_open_input
(
&
sap
->
sdp_ctx
,
"temp.sdp"
,
infmt
,
NULL
);
if
(
ret
<
0
)
goto
fail
;
if
(
sap
->
sdp_ctx
->
ctx_flags
&
AVFMTCTX_NOHEADER
)
...
...
libavformat/utils.c
View file @
603b8bc2
...
...
@@ -27,6 +27,7 @@
#include "libavcodec/internal.h"
#include "libavutil/opt.h"
#include "libavutil/dict.h"
#include "libavutil/pixdesc.h"
#include "metadata.h"
#include "id3v2.h"
#include "libavutil/avstring.h"
...
...
@@ -388,6 +389,47 @@ static int set_codec_from_probe_data(AVFormatContext *s, AVStream *st, AVProbeDa
/************************************************************/
/* input media file */
#if FF_API_FORMAT_PARAMETERS
static
AVDictionary
*
convert_format_parameters
(
AVFormatParameters
*
ap
)
{
char
buf
[
1024
];
AVDictionary
*
opts
=
NULL
;
if
(
ap
->
time_base
.
num
)
{
snprintf
(
buf
,
sizeof
(
buf
),
"%d/%d"
,
ap
->
time_base
.
den
,
ap
->
time_base
.
num
);
av_dict_set
(
&
opts
,
"framerate"
,
buf
,
0
);
}
if
(
ap
->
sample_rate
)
{
snprintf
(
buf
,
sizeof
(
buf
),
"%d"
,
ap
->
sample_rate
);
av_dict_set
(
&
opts
,
"sample_rate"
,
buf
,
0
);
}
if
(
ap
->
channels
)
{
snprintf
(
buf
,
sizeof
(
buf
),
"%d"
,
ap
->
channels
);
av_dict_set
(
&
opts
,
"channels"
,
buf
,
0
);
}
if
(
ap
->
width
||
ap
->
height
)
{
snprintf
(
buf
,
sizeof
(
buf
),
"%dx%d"
,
ap
->
width
,
ap
->
height
);
av_dict_set
(
&
opts
,
"video_size"
,
buf
,
0
);
}
if
(
ap
->
pix_fmt
!=
PIX_FMT_NONE
)
{
av_dict_set
(
&
opts
,
"pixel_format"
,
av_get_pix_fmt_name
(
ap
->
pix_fmt
),
0
);
}
if
(
ap
->
channel
)
{
snprintf
(
buf
,
sizeof
(
buf
),
"%d"
,
ap
->
channel
);
av_dict_set
(
&
opts
,
"channel"
,
buf
,
0
);
}
if
(
ap
->
standard
)
{
av_dict_set
(
&
opts
,
"standard"
,
ap
->
standard
,
0
);
}
if
(
ap
->
mpeg2ts_compute_pcr
)
{
av_dict_set
(
&
opts
,
"mpeg2ts_compute_pcr"
,
"1"
,
0
);
}
if
(
ap
->
initial_pause
)
{
av_dict_set
(
&
opts
,
"initial_pause"
,
"1"
,
0
);
}
return
opts
;
}
/**
* Open a media file from an IO stream. 'fmt' must be specified.
*/
...
...
@@ -396,6 +438,7 @@ int av_open_input_stream(AVFormatContext **ic_ptr,
AVInputFormat
*
fmt
,
AVFormatParameters
*
ap
)
{
int
err
;
AVDictionary
*
opts
;
AVFormatContext
*
ic
;
AVFormatParameters
default_ap
;
...
...
@@ -403,6 +446,7 @@ int av_open_input_stream(AVFormatContext **ic_ptr,
ap
=&
default_ap
;
memset
(
ap
,
0
,
sizeof
(
default_ap
));
}
opts
=
convert_format_parameters
(
ap
);
if
(
!
ap
->
prealloced_context
)
ic
=
avformat_alloc_context
();
...
...
@@ -412,63 +456,15 @@ int av_open_input_stream(AVFormatContext **ic_ptr,
err
=
AVERROR
(
ENOMEM
);
goto
fail
;
}
ic
->
iformat
=
fmt
;
ic
->
pb
=
pb
;
ic
->
duration
=
AV_NOPTS_VALUE
;
ic
->
start_time
=
AV_NOPTS_VALUE
;
av_strlcpy
(
ic
->
filename
,
filename
,
sizeof
(
ic
->
filename
));
/* allocate private data */
if
(
fmt
->
priv_data_size
>
0
)
{
ic
->
priv_data
=
av_mallocz
(
fmt
->
priv_data_size
);
if
(
!
ic
->
priv_data
)
{
err
=
AVERROR
(
ENOMEM
);
goto
fail
;
}
if
(
fmt
->
priv_class
)
{
*
(
const
AVClass
**
)
ic
->
priv_data
=
fmt
->
priv_class
;
av_opt_set_defaults
(
ic
->
priv_data
);
}
}
else
{
ic
->
priv_data
=
NULL
;
}
// e.g. AVFMT_NOFILE formats will not have a AVIOContext
if
(
ic
->
pb
)
ff_id3v2_read
(
ic
,
ID3v2_DEFAULT_MAGIC
);
err
=
avformat_open_input
(
ic_ptr
,
filename
,
fmt
,
&
opts
);
if
(
ic
->
iformat
->
read_header
)
{
err
=
ic
->
iformat
->
read_header
(
ic
,
ap
);
if
(
err
<
0
)
goto
fail
;
}
if
(
pb
&&
!
ic
->
data_offset
)
ic
->
data_offset
=
avio_tell
(
ic
->
pb
);
ic
->
raw_packet_buffer_remaining_size
=
RAW_PACKET_BUFFER_SIZE
;
*
ic_ptr
=
ic
;
return
0
;
fail
:
if
(
ic
)
{
int
i
;
av_freep
(
&
ic
->
priv_data
);
for
(
i
=
0
;
i
<
ic
->
nb_streams
;
i
++
)
{
AVStream
*
st
=
ic
->
streams
[
i
];
if
(
st
)
{
av_free
(
st
->
priv_data
);
av_free
(
st
->
codec
->
extradata
);
av_free
(
st
->
codec
);
av_free
(
st
->
info
);
}
av_free
(
st
);
}
}
av_free
(
ic
);
*
ic_ptr
=
NULL
;
fail
:
av_dict_free
(
&
opts
);
return
err
;
}
#endif
/** size of probe buffer, for guessing file type from file contents */
#define PROBE_BUF_MIN 2048
...
...
@@ -541,69 +537,24 @@ int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt,
return
ret
;
}
#if FF_API_FORMAT_PARAMETERS
int
av_open_input_file
(
AVFormatContext
**
ic_ptr
,
const
char
*
filename
,
AVInputFormat
*
fmt
,
int
buf_size
,
AVFormatParameters
*
ap
)
{
int
err
;
AVProbeData
probe_data
,
*
pd
=
&
probe_data
;
AVIOContext
*
pb
=
NULL
;
void
*
logctx
=
ap
&&
ap
->
prealloced_context
?
*
ic_ptr
:
NULL
;
pd
->
filename
=
""
;
if
(
filename
)
pd
->
filename
=
filename
;
pd
->
buf
=
NULL
;
pd
->
buf_size
=
0
;
if
(
!
fmt
)
{
/* guess format if no file can be opened */
fmt
=
av_probe_input_format
(
pd
,
0
);
}
/* Do not open file if the format does not need it. XXX: specific
hack needed to handle RTSP/TCP */
if
(
!
fmt
||
!
(
fmt
->
flags
&
AVFMT_NOFILE
))
{
/* if no file needed do not try to open one */
if
((
err
=
avio_open
(
&
pb
,
filename
,
AVIO_FLAG_READ
))
<
0
)
{
goto
fail
;
}
if
(
buf_size
>
0
)
{
ffio_set_buf_size
(
pb
,
buf_size
);
}
if
(
!
fmt
&&
(
err
=
av_probe_input_buffer
(
pb
,
&
fmt
,
filename
,
logctx
,
0
,
logctx
?
(
*
ic_ptr
)
->
probesize
:
0
))
<
0
)
{
goto
fail
;
}
}
AVDictionary
*
opts
=
convert_format_parameters
(
ap
);
/* if still no format found, error */
if
(
!
fmt
)
{
err
=
AVERROR_INVALIDDATA
;
goto
fail
;
}
if
(
!
ap
->
prealloced_context
)
*
ic_ptr
=
NULL
;
/* check filename in case an image number is expected */
if
(
fmt
->
flags
&
AVFMT_NEEDNUMBER
)
{
if
(
!
av_filename_number_test
(
filename
))
{
err
=
AVERROR
(
EINVAL
);
goto
fail
;
}
}
err
=
av_open_input_stream
(
ic_ptr
,
pb
,
filename
,
fmt
,
ap
);
if
(
err
)
goto
fail
;
return
0
;
fail
:
av_freep
(
&
pd
->
buf
);
if
(
pb
)
avio_close
(
pb
);
if
(
ap
&&
ap
->
prealloced_context
)
av_free
(
*
ic_ptr
);
*
ic_ptr
=
NULL
;
return
err
;
err
=
avformat_open_input
(
ic_ptr
,
filename
,
fmt
,
&
opts
);
av_dict_free
(
&
opts
);
return
err
;
}
#endif
/* open input file and probe the format if necessary */
static
int
init_input
(
AVFormatContext
*
s
,
const
char
*
filename
)
...
...
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