Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
external
ffmpeg
Commits
603b8bc2
Commit
603b8bc2
authored
Jun 04, 2011
by
Anton Khirnov
Browse files
Deprecate av_open_input_* and remove their uses.
Deprecate the last remaining member of AVFormatParameters.
parent
05e84c95
Changes
8
Hide whitespace changes
Inline
Side-by-side
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