Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
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