mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avformat: Constify the API wrt AV(In|Out)putFormat
Also constify AVProbeData. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
parent
f0c7fa2c48
commit
56450a0ee4
@ -14,6 +14,17 @@ libavutil: 2017-10-21
|
|||||||
|
|
||||||
|
|
||||||
API changes, most recent first:
|
API changes, most recent first:
|
||||||
|
|
||||||
|
2021-04-27 - xxxxxxxxxx - lavf yyyyyyyyy - avformat.h
|
||||||
|
Constified the pointers to AVInputFormats and AVOutputFormats
|
||||||
|
in AVFormatContext, avformat_alloc_output_context2(),
|
||||||
|
av_find_input_format(), av_probe_input_format(),
|
||||||
|
av_probe_input_format2(), av_probe_input_format3(),
|
||||||
|
av_probe_input_buffer2(), av_probe_input_buffer(),
|
||||||
|
avformat_open_input(), av_guess_format() and av_guess_codec().
|
||||||
|
Furthermore, constified the AVProbeData in av_probe_input_format(),
|
||||||
|
av_probe_input_format2() and av_probe_input_format3().
|
||||||
|
|
||||||
2021-04-19 - xxxxxxxxxx - lavu 56.74.100 - tx.h
|
2021-04-19 - xxxxxxxxxx - lavu 56.74.100 - tx.h
|
||||||
Add AV_TX_FULL_IMDCT and AV_TX_UNALIGNED.
|
Add AV_TX_FULL_IMDCT and AV_TX_UNALIGNED.
|
||||||
|
|
||||||
|
@ -536,8 +536,8 @@ static void close_stream(AVFormatContext *oc, OutputStream *ost)
|
|||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
OutputStream video_st = { 0 }, audio_st = { 0 };
|
OutputStream video_st = { 0 }, audio_st = { 0 };
|
||||||
|
const AVOutputFormat *fmt;
|
||||||
const char *filename;
|
const char *filename;
|
||||||
AVOutputFormat *fmt;
|
|
||||||
AVFormatContext *oc;
|
AVFormatContext *oc;
|
||||||
AVCodec *audio_codec, *video_codec;
|
AVCodec *audio_codec, *video_codec;
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -45,7 +45,7 @@ static void log_packet(const AVFormatContext *fmt_ctx, const AVPacket *pkt, cons
|
|||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
AVOutputFormat *ofmt = NULL;
|
const AVOutputFormat *ofmt = NULL;
|
||||||
AVFormatContext *ifmt_ctx = NULL, *ofmt_ctx = NULL;
|
AVFormatContext *ifmt_ctx = NULL, *ofmt_ctx = NULL;
|
||||||
AVPacket pkt;
|
AVPacket pkt;
|
||||||
const char *in_filename, *out_filename;
|
const char *in_filename, *out_filename;
|
||||||
|
@ -1068,7 +1068,7 @@ static int open_input_file(OptionsContext *o, const char *filename)
|
|||||||
{
|
{
|
||||||
InputFile *f;
|
InputFile *f;
|
||||||
AVFormatContext *ic;
|
AVFormatContext *ic;
|
||||||
AVInputFormat *file_iformat = NULL;
|
const AVInputFormat *file_iformat = NULL;
|
||||||
int err, i, ret;
|
int err, i, ret;
|
||||||
int64_t timestamp;
|
int64_t timestamp;
|
||||||
AVDictionary *unused_opts = NULL;
|
AVDictionary *unused_opts = NULL;
|
||||||
@ -1117,20 +1117,22 @@ static int open_input_file(OptionsContext *o, const char *filename)
|
|||||||
av_dict_set_int(&o->g->format_opts, "sample_rate", o->audio_sample_rate[o->nb_audio_sample_rate - 1].u.i, 0);
|
av_dict_set_int(&o->g->format_opts, "sample_rate", o->audio_sample_rate[o->nb_audio_sample_rate - 1].u.i, 0);
|
||||||
}
|
}
|
||||||
if (o->nb_audio_channels) {
|
if (o->nb_audio_channels) {
|
||||||
|
const AVClass *priv_class;
|
||||||
/* because we set audio_channels based on both the "ac" and
|
/* because we set audio_channels based on both the "ac" and
|
||||||
* "channel_layout" options, we need to check that the specified
|
* "channel_layout" options, we need to check that the specified
|
||||||
* demuxer actually has the "channels" option before setting it */
|
* demuxer actually has the "channels" option before setting it */
|
||||||
if (file_iformat && file_iformat->priv_class &&
|
if (file_iformat && (priv_class = file_iformat->priv_class) &&
|
||||||
av_opt_find(&file_iformat->priv_class, "channels", NULL, 0,
|
av_opt_find(&priv_class, "channels", NULL, 0,
|
||||||
AV_OPT_SEARCH_FAKE_OBJ)) {
|
AV_OPT_SEARCH_FAKE_OBJ)) {
|
||||||
av_dict_set_int(&o->g->format_opts, "channels", o->audio_channels[o->nb_audio_channels - 1].u.i, 0);
|
av_dict_set_int(&o->g->format_opts, "channels", o->audio_channels[o->nb_audio_channels - 1].u.i, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (o->nb_frame_rates) {
|
if (o->nb_frame_rates) {
|
||||||
|
const AVClass *priv_class;
|
||||||
/* set the format-level framerate option;
|
/* set the format-level framerate option;
|
||||||
* this is important for video grabbers, e.g. x11 */
|
* this is important for video grabbers, e.g. x11 */
|
||||||
if (file_iformat && file_iformat->priv_class &&
|
if (file_iformat && (priv_class = file_iformat->priv_class) &&
|
||||||
av_opt_find(&file_iformat->priv_class, "framerate", NULL, 0,
|
av_opt_find(&priv_class, "framerate", NULL, 0,
|
||||||
AV_OPT_SEARCH_FAKE_OBJ)) {
|
AV_OPT_SEARCH_FAKE_OBJ)) {
|
||||||
av_dict_set(&o->g->format_opts, "framerate",
|
av_dict_set(&o->g->format_opts, "framerate",
|
||||||
o->frame_rates[o->nb_frame_rates - 1].u.str, 0);
|
o->frame_rates[o->nb_frame_rates - 1].u.str, 0);
|
||||||
|
@ -203,7 +203,7 @@ typedef struct Decoder {
|
|||||||
|
|
||||||
typedef struct VideoState {
|
typedef struct VideoState {
|
||||||
SDL_Thread *read_tid;
|
SDL_Thread *read_tid;
|
||||||
AVInputFormat *iformat;
|
const AVInputFormat *iformat;
|
||||||
int abort_request;
|
int abort_request;
|
||||||
int force_refresh;
|
int force_refresh;
|
||||||
int paused;
|
int paused;
|
||||||
@ -308,7 +308,7 @@ typedef struct VideoState {
|
|||||||
} VideoState;
|
} VideoState;
|
||||||
|
|
||||||
/* options specified by the user */
|
/* options specified by the user */
|
||||||
static AVInputFormat *file_iformat;
|
static const AVInputFormat *file_iformat;
|
||||||
static const char *input_filename;
|
static const char *input_filename;
|
||||||
static const char *window_title;
|
static const char *window_title;
|
||||||
static int default_width = 640;
|
static int default_width = 640;
|
||||||
@ -3075,7 +3075,8 @@ static int read_thread(void *arg)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static VideoState *stream_open(const char *filename, AVInputFormat *iformat)
|
static VideoState *stream_open(const char *filename,
|
||||||
|
const AVInputFormat *iformat)
|
||||||
{
|
{
|
||||||
VideoState *is;
|
VideoState *is;
|
||||||
|
|
||||||
|
@ -257,7 +257,7 @@ static const OptionDef *options;
|
|||||||
/* FFprobe context */
|
/* FFprobe context */
|
||||||
static const char *input_filename;
|
static const char *input_filename;
|
||||||
static const char *print_input_filename;
|
static const char *print_input_filename;
|
||||||
static AVInputFormat *iformat = NULL;
|
static const AVInputFormat *iformat = NULL;
|
||||||
|
|
||||||
static struct AVHashContext *hash;
|
static struct AVHashContext *hash;
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#include "libavformat/avformat.h"
|
#include "libavformat/avformat.h"
|
||||||
|
|
||||||
av_warn_unused_result
|
av_warn_unused_result
|
||||||
int ff_alloc_input_device_context(struct AVFormatContext **avctx, struct AVInputFormat *iformat,
|
int ff_alloc_input_device_context(struct AVFormatContext **avctx, const AVInputFormat *iformat,
|
||||||
const char *format);
|
const char *format);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#include "libavutil/opt.h"
|
#include "libavutil/opt.h"
|
||||||
#include "libavformat/avformat.h"
|
#include "libavformat/avformat.h"
|
||||||
|
|
||||||
int ff_alloc_input_device_context(AVFormatContext **avctx, AVInputFormat *iformat, const char *format)
|
int ff_alloc_input_device_context(AVFormatContext **avctx, const AVInputFormat *iformat, const char *format)
|
||||||
{
|
{
|
||||||
AVFormatContext *s;
|
AVFormatContext *s;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
@ -26,7 +26,7 @@ int ff_load_image(uint8_t *data[4], int linesize[4],
|
|||||||
int *w, int *h, enum AVPixelFormat *pix_fmt,
|
int *w, int *h, enum AVPixelFormat *pix_fmt,
|
||||||
const char *filename, void *log_ctx)
|
const char *filename, void *log_ctx)
|
||||||
{
|
{
|
||||||
AVInputFormat *iformat = NULL;
|
const AVInputFormat *iformat = NULL;
|
||||||
AVFormatContext *format_ctx = NULL;
|
AVFormatContext *format_ctx = NULL;
|
||||||
const AVCodec *codec;
|
const AVCodec *codec;
|
||||||
AVCodecContext *codec_ctx = NULL;
|
AVCodecContext *codec_ctx = NULL;
|
||||||
|
@ -205,7 +205,7 @@ static int guess_channel_layout(MovieStream *st, int st_index, void *log_ctx)
|
|||||||
static av_cold int movie_common_init(AVFilterContext *ctx)
|
static av_cold int movie_common_init(AVFilterContext *ctx)
|
||||||
{
|
{
|
||||||
MovieContext *movie = ctx->priv;
|
MovieContext *movie = ctx->priv;
|
||||||
AVInputFormat *iformat = NULL;
|
const AVInputFormat *iformat = NULL;
|
||||||
int64_t timestamp;
|
int64_t timestamp;
|
||||||
int nb_streams = 1, ret, i;
|
int nb_streams = 1, ret, i;
|
||||||
char default_streams[16], *stream_specs, *spec, *cursor;
|
char default_streams[16], *stream_specs, *spec, *cursor;
|
||||||
|
@ -525,15 +525,6 @@ typedef struct AVOutputFormat {
|
|||||||
* New public fields should be added right above.
|
* New public fields should be added right above.
|
||||||
*****************************************************************
|
*****************************************************************
|
||||||
*/
|
*/
|
||||||
/**
|
|
||||||
* The ff_const59 define is not part of the public API and will
|
|
||||||
* be removed without further warning.
|
|
||||||
*/
|
|
||||||
#if FF_API_AVIOFORMAT
|
|
||||||
#define ff_const59
|
|
||||||
#else
|
|
||||||
#define ff_const59 const
|
|
||||||
#endif
|
|
||||||
/**
|
/**
|
||||||
* size of private data so that it can be allocated in the wrapper
|
* size of private data so that it can be allocated in the wrapper
|
||||||
*/
|
*/
|
||||||
@ -1235,14 +1226,14 @@ typedef struct AVFormatContext {
|
|||||||
*
|
*
|
||||||
* Demuxing only, set by avformat_open_input().
|
* Demuxing only, set by avformat_open_input().
|
||||||
*/
|
*/
|
||||||
ff_const59 struct AVInputFormat *iformat;
|
const struct AVInputFormat *iformat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The output container format.
|
* The output container format.
|
||||||
*
|
*
|
||||||
* Muxing only, must be set by the caller before avformat_write_header().
|
* Muxing only, must be set by the caller before avformat_write_header().
|
||||||
*/
|
*/
|
||||||
ff_const59 struct AVOutputFormat *oformat;
|
const struct AVOutputFormat *oformat;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Format private data. This is an AVOptions-enabled struct
|
* Format private data. This is an AVOptions-enabled struct
|
||||||
@ -2088,7 +2079,7 @@ AVProgram *av_new_program(AVFormatContext *s, int id);
|
|||||||
* @return >= 0 in case of success, a negative AVERROR code in case of
|
* @return >= 0 in case of success, a negative AVERROR code in case of
|
||||||
* failure
|
* failure
|
||||||
*/
|
*/
|
||||||
int avformat_alloc_output_context2(AVFormatContext **ctx, ff_const59 AVOutputFormat *oformat,
|
int avformat_alloc_output_context2(AVFormatContext **ctx, const AVOutputFormat *oformat,
|
||||||
const char *format_name, const char *filename);
|
const char *format_name, const char *filename);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2099,7 +2090,7 @@ int avformat_alloc_output_context2(AVFormatContext **ctx, ff_const59 AVOutputFor
|
|||||||
/**
|
/**
|
||||||
* Find AVInputFormat based on the short name of the input format.
|
* Find AVInputFormat based on the short name of the input format.
|
||||||
*/
|
*/
|
||||||
ff_const59 AVInputFormat *av_find_input_format(const char *short_name);
|
const AVInputFormat *av_find_input_format(const char *short_name);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Guess the file format.
|
* Guess the file format.
|
||||||
@ -2108,7 +2099,7 @@ ff_const59 AVInputFormat *av_find_input_format(const char *short_name);
|
|||||||
* @param is_opened Whether the file is already opened; determines whether
|
* @param is_opened Whether the file is already opened; determines whether
|
||||||
* demuxers with or without AVFMT_NOFILE are probed.
|
* demuxers with or without AVFMT_NOFILE are probed.
|
||||||
*/
|
*/
|
||||||
ff_const59 AVInputFormat *av_probe_input_format(ff_const59 AVProbeData *pd, int is_opened);
|
const AVInputFormat *av_probe_input_format(const AVProbeData *pd, int is_opened);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Guess the file format.
|
* Guess the file format.
|
||||||
@ -2122,7 +2113,8 @@ ff_const59 AVInputFormat *av_probe_input_format(ff_const59 AVProbeData *pd, int
|
|||||||
* If the score is <= AVPROBE_SCORE_MAX / 4 it is recommended
|
* If the score is <= AVPROBE_SCORE_MAX / 4 it is recommended
|
||||||
* to retry with a larger probe buffer.
|
* to retry with a larger probe buffer.
|
||||||
*/
|
*/
|
||||||
ff_const59 AVInputFormat *av_probe_input_format2(ff_const59 AVProbeData *pd, int is_opened, int *score_max);
|
const AVInputFormat *av_probe_input_format2(const AVProbeData *pd,
|
||||||
|
int is_opened, int *score_max);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Guess the file format.
|
* Guess the file format.
|
||||||
@ -2131,7 +2123,8 @@ ff_const59 AVInputFormat *av_probe_input_format2(ff_const59 AVProbeData *pd, int
|
|||||||
* demuxers with or without AVFMT_NOFILE are probed.
|
* demuxers with or without AVFMT_NOFILE are probed.
|
||||||
* @param score_ret The score of the best detection.
|
* @param score_ret The score of the best detection.
|
||||||
*/
|
*/
|
||||||
ff_const59 AVInputFormat *av_probe_input_format3(ff_const59 AVProbeData *pd, int is_opened, int *score_ret);
|
const AVInputFormat *av_probe_input_format3(const AVProbeData *pd,
|
||||||
|
int is_opened, int *score_ret);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Probe a bytestream to determine the input format. Each time a probe returns
|
* Probe a bytestream to determine the input format. Each time a probe returns
|
||||||
@ -2149,14 +2142,14 @@ ff_const59 AVInputFormat *av_probe_input_format3(ff_const59 AVProbeData *pd, int
|
|||||||
* the maximal score is AVPROBE_SCORE_MAX
|
* the maximal score is AVPROBE_SCORE_MAX
|
||||||
* AVERROR code otherwise
|
* AVERROR code otherwise
|
||||||
*/
|
*/
|
||||||
int av_probe_input_buffer2(AVIOContext *pb, ff_const59 AVInputFormat **fmt,
|
int av_probe_input_buffer2(AVIOContext *pb, const AVInputFormat **fmt,
|
||||||
const char *url, void *logctx,
|
const char *url, void *logctx,
|
||||||
unsigned int offset, unsigned int max_probe_size);
|
unsigned int offset, unsigned int max_probe_size);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Like av_probe_input_buffer2() but returns 0 on success
|
* Like av_probe_input_buffer2() but returns 0 on success
|
||||||
*/
|
*/
|
||||||
int av_probe_input_buffer(AVIOContext *pb, ff_const59 AVInputFormat **fmt,
|
int av_probe_input_buffer(AVIOContext *pb, const AVInputFormat **fmt,
|
||||||
const char *url, void *logctx,
|
const char *url, void *logctx,
|
||||||
unsigned int offset, unsigned int max_probe_size);
|
unsigned int offset, unsigned int max_probe_size);
|
||||||
|
|
||||||
@ -2179,7 +2172,8 @@ int av_probe_input_buffer(AVIOContext *pb, ff_const59 AVInputFormat **fmt,
|
|||||||
*
|
*
|
||||||
* @note If you want to use custom IO, preallocate the format context and set its pb field.
|
* @note If you want to use custom IO, preallocate the format context and set its pb field.
|
||||||
*/
|
*/
|
||||||
int avformat_open_input(AVFormatContext **ps, const char *url, ff_const59 AVInputFormat *fmt, AVDictionary **options);
|
int avformat_open_input(AVFormatContext **ps, const char *url,
|
||||||
|
const AVInputFormat *fmt, AVDictionary **options);
|
||||||
|
|
||||||
#if FF_API_DEMUXER_OPEN
|
#if FF_API_DEMUXER_OPEN
|
||||||
/**
|
/**
|
||||||
@ -2570,16 +2564,16 @@ int av_write_trailer(AVFormatContext *s);
|
|||||||
* @param mime_type if non-NULL checks if mime_type matches with the
|
* @param mime_type if non-NULL checks if mime_type matches with the
|
||||||
* MIME type of the registered formats
|
* MIME type of the registered formats
|
||||||
*/
|
*/
|
||||||
ff_const59 AVOutputFormat *av_guess_format(const char *short_name,
|
const AVOutputFormat *av_guess_format(const char *short_name,
|
||||||
const char *filename,
|
const char *filename,
|
||||||
const char *mime_type);
|
const char *mime_type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Guess the codec ID based upon muxer and filename.
|
* Guess the codec ID based upon muxer and filename.
|
||||||
*/
|
*/
|
||||||
enum AVCodecID av_guess_codec(ff_const59 AVOutputFormat *fmt, const char *short_name,
|
enum AVCodecID av_guess_codec(const AVOutputFormat *fmt, const char *short_name,
|
||||||
const char *filename, const char *mime_type,
|
const char *filename, const char *mime_type,
|
||||||
enum AVMediaType type);
|
enum AVMediaType type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get timing information for the data currently output.
|
* Get timing information for the data currently output.
|
||||||
|
@ -1092,7 +1092,7 @@ static int read_gab2_sub(AVFormatContext *s, AVStream *st, AVPacket *pkt)
|
|||||||
uint8_t desc[256];
|
uint8_t desc[256];
|
||||||
int score = AVPROBE_SCORE_EXTENSION, ret;
|
int score = AVPROBE_SCORE_EXTENSION, ret;
|
||||||
AVIStream *ast = st->priv_data;
|
AVIStream *ast = st->priv_data;
|
||||||
ff_const59 AVInputFormat *sub_demuxer;
|
const AVInputFormat *sub_demuxer;
|
||||||
AVRational time_base;
|
AVRational time_base;
|
||||||
int size;
|
int size;
|
||||||
AVProbeData pd;
|
AVProbeData pd;
|
||||||
|
@ -1879,7 +1879,7 @@ static void close_demux_for_component(struct representation *pls)
|
|||||||
static int reopen_demux_for_component(AVFormatContext *s, struct representation *pls)
|
static int reopen_demux_for_component(AVFormatContext *s, struct representation *pls)
|
||||||
{
|
{
|
||||||
DASHContext *c = s->priv_data;
|
DASHContext *c = s->priv_data;
|
||||||
ff_const59 AVInputFormat *in_fmt = NULL;
|
const AVInputFormat *in_fmt = NULL;
|
||||||
AVDictionary *in_fmt_opts = NULL;
|
AVDictionary *in_fmt_opts = NULL;
|
||||||
uint8_t *avio_ctx_buffer = NULL;
|
uint8_t *avio_ctx_buffer = NULL;
|
||||||
int ret = 0, i;
|
int ret = 0, i;
|
||||||
|
@ -469,7 +469,7 @@ static void *fifo_consumer_thread(void *data)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int fifo_mux_init(AVFormatContext *avf, ff_const59 AVOutputFormat *oformat,
|
static int fifo_mux_init(AVFormatContext *avf, const AVOutputFormat *oformat,
|
||||||
const char *filename)
|
const char *filename)
|
||||||
{
|
{
|
||||||
FifoContext *fifo = avf->priv_data;
|
FifoContext *fifo = avf->priv_data;
|
||||||
@ -508,7 +508,7 @@ static int fifo_mux_init(AVFormatContext *avf, ff_const59 AVOutputFormat *oforma
|
|||||||
static int fifo_init(AVFormatContext *avf)
|
static int fifo_init(AVFormatContext *avf)
|
||||||
{
|
{
|
||||||
FifoContext *fifo = avf->priv_data;
|
FifoContext *fifo = avf->priv_data;
|
||||||
ff_const59 AVOutputFormat *oformat;
|
const AVOutputFormat *oformat;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
if (fifo->recovery_wait_streamtime && !fifo->drop_pkts_on_overflow) {
|
if (fifo->recovery_wait_streamtime && !fifo->drop_pkts_on_overflow) {
|
||||||
|
@ -48,8 +48,8 @@ int av_match_ext(const char *filename, const char *extensions)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
ff_const59 AVOutputFormat *av_guess_format(const char *short_name, const char *filename,
|
const AVOutputFormat *av_guess_format(const char *short_name, const char *filename,
|
||||||
const char *mime_type)
|
const char *mime_type)
|
||||||
{
|
{
|
||||||
const AVOutputFormat *fmt = NULL;
|
const AVOutputFormat *fmt = NULL;
|
||||||
AVOutputFormat *fmt_found = NULL;
|
AVOutputFormat *fmt_found = NULL;
|
||||||
@ -84,12 +84,12 @@ ff_const59 AVOutputFormat *av_guess_format(const char *short_name, const char *f
|
|||||||
return fmt_found;
|
return fmt_found;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum AVCodecID av_guess_codec(ff_const59 AVOutputFormat *fmt, const char *short_name,
|
enum AVCodecID av_guess_codec(const AVOutputFormat *fmt, const char *short_name,
|
||||||
const char *filename, const char *mime_type,
|
const char *filename, const char *mime_type,
|
||||||
enum AVMediaType type)
|
enum AVMediaType type)
|
||||||
{
|
{
|
||||||
if (av_match_name("segment", fmt->name) || av_match_name("ssegment", fmt->name)) {
|
if (av_match_name("segment", fmt->name) || av_match_name("ssegment", fmt->name)) {
|
||||||
ff_const59 AVOutputFormat *fmt2 = av_guess_format(NULL, filename, NULL);
|
const AVOutputFormat *fmt2 = av_guess_format(NULL, filename, NULL);
|
||||||
if (fmt2)
|
if (fmt2)
|
||||||
fmt = fmt2;
|
fmt = fmt2;
|
||||||
}
|
}
|
||||||
@ -115,7 +115,7 @@ enum AVCodecID av_guess_codec(ff_const59 AVOutputFormat *fmt, const char *short_
|
|||||||
return AV_CODEC_ID_NONE;
|
return AV_CODEC_ID_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
ff_const59 AVInputFormat *av_find_input_format(const char *short_name)
|
const AVInputFormat *av_find_input_format(const char *short_name)
|
||||||
{
|
{
|
||||||
const AVInputFormat *fmt = NULL;
|
const AVInputFormat *fmt = NULL;
|
||||||
void *i = 0;
|
void *i = 0;
|
||||||
@ -125,12 +125,12 @@ ff_const59 AVInputFormat *av_find_input_format(const char *short_name)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ff_const59 AVInputFormat *av_probe_input_format3(ff_const59 AVProbeData *pd, int is_opened,
|
const AVInputFormat *av_probe_input_format3(const AVProbeData *pd,
|
||||||
int *score_ret)
|
int is_opened, int *score_ret)
|
||||||
{
|
{
|
||||||
AVProbeData lpd = *pd;
|
AVProbeData lpd = *pd;
|
||||||
const AVInputFormat *fmt1 = NULL;
|
const AVInputFormat *fmt1 = NULL;
|
||||||
ff_const59 AVInputFormat *fmt = NULL;
|
const AVInputFormat *fmt = NULL;
|
||||||
int score, score_max = 0;
|
int score, score_max = 0;
|
||||||
void *i = 0;
|
void *i = 0;
|
||||||
const static uint8_t zerobuffer[AVPROBE_PADDING_SIZE];
|
const static uint8_t zerobuffer[AVPROBE_PADDING_SIZE];
|
||||||
@ -191,7 +191,7 @@ ff_const59 AVInputFormat *av_probe_input_format3(ff_const59 AVProbeData *pd, int
|
|||||||
}
|
}
|
||||||
if (score > score_max) {
|
if (score > score_max) {
|
||||||
score_max = score;
|
score_max = score;
|
||||||
fmt = (AVInputFormat*)fmt1;
|
fmt = fmt1;
|
||||||
} else if (score == score_max)
|
} else if (score == score_max)
|
||||||
fmt = NULL;
|
fmt = NULL;
|
||||||
}
|
}
|
||||||
@ -202,10 +202,11 @@ ff_const59 AVInputFormat *av_probe_input_format3(ff_const59 AVProbeData *pd, int
|
|||||||
return fmt;
|
return fmt;
|
||||||
}
|
}
|
||||||
|
|
||||||
ff_const59 AVInputFormat *av_probe_input_format2(ff_const59 AVProbeData *pd, int is_opened, int *score_max)
|
const AVInputFormat *av_probe_input_format2(const AVProbeData *pd,
|
||||||
|
int is_opened, int *score_max)
|
||||||
{
|
{
|
||||||
int score_ret;
|
int score_ret;
|
||||||
ff_const59 AVInputFormat *fmt = av_probe_input_format3(pd, is_opened, &score_ret);
|
const AVInputFormat *fmt = av_probe_input_format3(pd, is_opened, &score_ret);
|
||||||
if (score_ret > *score_max) {
|
if (score_ret > *score_max) {
|
||||||
*score_max = score_ret;
|
*score_max = score_ret;
|
||||||
return fmt;
|
return fmt;
|
||||||
@ -213,15 +214,15 @@ ff_const59 AVInputFormat *av_probe_input_format2(ff_const59 AVProbeData *pd, int
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
ff_const59 AVInputFormat *av_probe_input_format(ff_const59 AVProbeData *pd, int is_opened)
|
const AVInputFormat *av_probe_input_format(const AVProbeData *pd, int is_opened)
|
||||||
{
|
{
|
||||||
int score = 0;
|
int score = 0;
|
||||||
return av_probe_input_format2(pd, is_opened, &score);
|
return av_probe_input_format2(pd, is_opened, &score);
|
||||||
}
|
}
|
||||||
|
|
||||||
int av_probe_input_buffer2(AVIOContext *pb, ff_const59 AVInputFormat **fmt,
|
int av_probe_input_buffer2(AVIOContext *pb, const AVInputFormat **fmt,
|
||||||
const char *filename, void *logctx,
|
const char *filename, void *logctx,
|
||||||
unsigned int offset, unsigned int max_probe_size)
|
unsigned int offset, unsigned int max_probe_size)
|
||||||
{
|
{
|
||||||
AVProbeData pd = { filename ? filename : "" };
|
AVProbeData pd = { filename ? filename : "" };
|
||||||
uint8_t *buf = NULL;
|
uint8_t *buf = NULL;
|
||||||
@ -309,7 +310,7 @@ fail:
|
|||||||
return ret < 0 ? ret : score;
|
return ret < 0 ? ret : score;
|
||||||
}
|
}
|
||||||
|
|
||||||
int av_probe_input_buffer(AVIOContext *pb, ff_const59 AVInputFormat **fmt,
|
int av_probe_input_buffer(AVIOContext *pb, const AVInputFormat **fmt,
|
||||||
const char *filename, void *logctx,
|
const char *filename, void *logctx,
|
||||||
unsigned int offset, unsigned int max_probe_size)
|
unsigned int offset, unsigned int max_probe_size)
|
||||||
{
|
{
|
||||||
|
@ -313,8 +313,8 @@ static void close_file(AVFormatContext *s, OutputStream *os)
|
|||||||
static int hds_write_header(AVFormatContext *s)
|
static int hds_write_header(AVFormatContext *s)
|
||||||
{
|
{
|
||||||
HDSContext *c = s->priv_data;
|
HDSContext *c = s->priv_data;
|
||||||
|
const AVOutputFormat *oformat;
|
||||||
int ret = 0, i;
|
int ret = 0, i;
|
||||||
ff_const59 AVOutputFormat *oformat;
|
|
||||||
|
|
||||||
if (mkdir(s->url, 0777) == -1 && errno != EEXIST) {
|
if (mkdir(s->url, 0777) == -1 && errno != EEXIST) {
|
||||||
av_log(s, AV_LOG_ERROR , "Failed to create directory %s\n", s->url);
|
av_log(s, AV_LOG_ERROR , "Failed to create directory %s\n", s->url);
|
||||||
|
@ -1957,8 +1957,8 @@ static int hls_read_header(AVFormatContext *s)
|
|||||||
/* Open the demuxer for each playlist */
|
/* Open the demuxer for each playlist */
|
||||||
for (i = 0; i < c->n_playlists; i++) {
|
for (i = 0; i < c->n_playlists; i++) {
|
||||||
struct playlist *pls = c->playlists[i];
|
struct playlist *pls = c->playlists[i];
|
||||||
|
const AVInputFormat *in_fmt = NULL;
|
||||||
char *url;
|
char *url;
|
||||||
ff_const59 AVInputFormat *in_fmt = NULL;
|
|
||||||
|
|
||||||
if (!(pls->ctx = avformat_alloc_context())) {
|
if (!(pls->ctx = avformat_alloc_context())) {
|
||||||
ret = AVERROR(ENOMEM);
|
ret = AVERROR(ENOMEM);
|
||||||
|
@ -119,8 +119,8 @@ typedef struct VariantStream {
|
|||||||
unsigned var_stream_idx;
|
unsigned var_stream_idx;
|
||||||
unsigned number;
|
unsigned number;
|
||||||
int64_t sequence;
|
int64_t sequence;
|
||||||
ff_const59 AVOutputFormat *oformat;
|
const AVOutputFormat *oformat;
|
||||||
ff_const59 AVOutputFormat *vtt_oformat;
|
const AVOutputFormat *vtt_oformat;
|
||||||
AVIOContext *out;
|
AVIOContext *out;
|
||||||
AVIOContext *out_single_file;
|
AVIOContext *out_single_file;
|
||||||
int packets_written;
|
int packets_written;
|
||||||
|
@ -732,6 +732,7 @@ static int vobsub_read_header(AVFormatContext *s)
|
|||||||
{
|
{
|
||||||
int i, ret = 0, header_parsed = 0, langidx = 0;
|
int i, ret = 0, header_parsed = 0, langidx = 0;
|
||||||
VobSubDemuxContext *vobsub = s->priv_data;
|
VobSubDemuxContext *vobsub = s->priv_data;
|
||||||
|
const AVInputFormat *iformat;
|
||||||
size_t fname_len;
|
size_t fname_len;
|
||||||
AVBPrint header;
|
AVBPrint header;
|
||||||
int64_t delay = 0;
|
int64_t delay = 0;
|
||||||
@ -739,7 +740,6 @@ static int vobsub_read_header(AVFormatContext *s)
|
|||||||
int stream_id = -1;
|
int stream_id = -1;
|
||||||
char id[64] = {0};
|
char id[64] = {0};
|
||||||
char alt[MAX_LINE_SIZE] = {0};
|
char alt[MAX_LINE_SIZE] = {0};
|
||||||
ff_const59 AVInputFormat *iformat;
|
|
||||||
|
|
||||||
if (!vobsub->sub_name) {
|
if (!vobsub->sub_name) {
|
||||||
char *ext;
|
char *ext;
|
||||||
|
@ -133,7 +133,7 @@ enum AVChromaLocation ff_choose_chroma_location(AVFormatContext *s, AVStream *st
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int avformat_alloc_output_context2(AVFormatContext **avctx, ff_const59 AVOutputFormat *oformat,
|
int avformat_alloc_output_context2(AVFormatContext **avctx, const AVOutputFormat *oformat,
|
||||||
const char *format, const char *filename)
|
const char *format, const char *filename)
|
||||||
{
|
{
|
||||||
AVFormatContext *s = avformat_alloc_context();
|
AVFormatContext *s = avformat_alloc_context();
|
||||||
|
@ -106,7 +106,7 @@ int ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p)
|
|||||||
AVDictionary *opts = NULL;
|
AVDictionary *opts = NULL;
|
||||||
int len = strlen(p) * 6 / 8;
|
int len = strlen(p) * 6 / 8;
|
||||||
char *buf = av_mallocz(len);
|
char *buf = av_mallocz(len);
|
||||||
ff_const59 AVInputFormat *iformat;
|
const AVInputFormat *iformat;
|
||||||
|
|
||||||
if (!buf)
|
if (!buf)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
@ -31,7 +31,7 @@ int ff_rtp_chain_mux_open(AVFormatContext **out, AVFormatContext *s,
|
|||||||
{
|
{
|
||||||
AVFormatContext *rtpctx = NULL;
|
AVFormatContext *rtpctx = NULL;
|
||||||
int ret;
|
int ret;
|
||||||
ff_const59 AVOutputFormat *rtp_format = av_guess_format("rtp", NULL, NULL);
|
const AVOutputFormat *rtp_format = av_guess_format("rtp", NULL, NULL);
|
||||||
uint8_t *rtpflags;
|
uint8_t *rtpflags;
|
||||||
AVDictionary *opts = NULL;
|
AVDictionary *opts = NULL;
|
||||||
|
|
||||||
|
@ -56,8 +56,8 @@ static int rtp_mpegts_write_header(AVFormatContext *s)
|
|||||||
{
|
{
|
||||||
MuxChain *chain = s->priv_data;
|
MuxChain *chain = s->priv_data;
|
||||||
AVFormatContext *mpegts_ctx = NULL, *rtp_ctx = NULL;
|
AVFormatContext *mpegts_ctx = NULL, *rtp_ctx = NULL;
|
||||||
ff_const59 AVOutputFormat *mpegts_format = av_guess_format("mpegts", NULL, NULL);
|
const AVOutputFormat *mpegts_format = av_guess_format("mpegts", NULL, NULL);
|
||||||
ff_const59 AVOutputFormat *rtp_format = av_guess_format("rtp", NULL, NULL);
|
const AVOutputFormat *rtp_format = av_guess_format("rtp", NULL, NULL);
|
||||||
int i, ret = AVERROR(ENOMEM);
|
int i, ret = AVERROR(ENOMEM);
|
||||||
AVStream *st;
|
AVStream *st;
|
||||||
AVDictionary *mpegts_muxer_options = NULL;
|
AVDictionary *mpegts_muxer_options = NULL;
|
||||||
|
@ -65,9 +65,9 @@ static int sap_read_header(AVFormatContext *s)
|
|||||||
struct SAPState *sap = s->priv_data;
|
struct SAPState *sap = s->priv_data;
|
||||||
char host[1024], path[1024], url[1024];
|
char host[1024], path[1024], url[1024];
|
||||||
uint8_t recvbuf[RTP_MAX_PACKET_LENGTH];
|
uint8_t recvbuf[RTP_MAX_PACKET_LENGTH];
|
||||||
|
const AVInputFormat *infmt;
|
||||||
int port;
|
int port;
|
||||||
int ret, i;
|
int ret, i;
|
||||||
ff_const59 AVInputFormat* infmt;
|
|
||||||
|
|
||||||
if (!ff_network_init())
|
if (!ff_network_init())
|
||||||
return AVERROR(EIO);
|
return AVERROR(EIO);
|
||||||
|
@ -72,7 +72,7 @@ typedef struct SegmentContext {
|
|||||||
int segment_idx_wrap; ///< number after which the index wraps
|
int segment_idx_wrap; ///< number after which the index wraps
|
||||||
int segment_idx_wrap_nb; ///< number of time the index has wraped
|
int segment_idx_wrap_nb; ///< number of time the index has wraped
|
||||||
int segment_count; ///< number of segment files already written
|
int segment_count; ///< number of segment files already written
|
||||||
ff_const59 AVOutputFormat *oformat;
|
const AVOutputFormat *oformat;
|
||||||
AVFormatContext *avf;
|
AVFormatContext *avf;
|
||||||
char *format; ///< format to use for output segment files
|
char *format; ///< format to use for output segment files
|
||||||
AVDictionary *format_options;
|
AVDictionary *format_options;
|
||||||
|
@ -283,7 +283,7 @@ static int ism_write_header(AVFormatContext *s)
|
|||||||
{
|
{
|
||||||
SmoothStreamingContext *c = s->priv_data;
|
SmoothStreamingContext *c = s->priv_data;
|
||||||
int ret = 0, i;
|
int ret = 0, i;
|
||||||
ff_const59 AVOutputFormat *oformat;
|
const AVOutputFormat *oformat;
|
||||||
|
|
||||||
if (mkdir(s->url, 0777) == -1 && errno != EEXIST) {
|
if (mkdir(s->url, 0777) == -1 && errno != EEXIST) {
|
||||||
av_log(s, AV_LOG_ERROR, "mkdir failed\n");
|
av_log(s, AV_LOG_ERROR, "mkdir failed\n");
|
||||||
|
@ -545,7 +545,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
|
|||||||
|
|
||||||
|
|
||||||
int avformat_open_input(AVFormatContext **ps, const char *filename,
|
int avformat_open_input(AVFormatContext **ps, const char *filename,
|
||||||
ff_const59 AVInputFormat *fmt, AVDictionary **options)
|
const AVInputFormat *fmt, AVDictionary **options)
|
||||||
{
|
{
|
||||||
AVFormatContext *s = *ps;
|
AVFormatContext *s = *ps;
|
||||||
int i, ret = 0;
|
int i, ret = 0;
|
||||||
|
@ -97,9 +97,6 @@
|
|||||||
#ifndef FF_API_LAVF_MP4A_LATM
|
#ifndef FF_API_LAVF_MP4A_LATM
|
||||||
#define FF_API_LAVF_MP4A_LATM (LIBAVFORMAT_VERSION_MAJOR < 59)
|
#define FF_API_LAVF_MP4A_LATM (LIBAVFORMAT_VERSION_MAJOR < 59)
|
||||||
#endif
|
#endif
|
||||||
#ifndef FF_API_AVIOFORMAT
|
|
||||||
#define FF_API_AVIOFORMAT (LIBAVFORMAT_VERSION_MAJOR < 59)
|
|
||||||
#endif
|
|
||||||
#ifndef FF_API_DEMUXER_OPEN
|
#ifndef FF_API_DEMUXER_OPEN
|
||||||
#define FF_API_DEMUXER_OPEN (LIBAVFORMAT_VERSION_MAJOR < 59)
|
#define FF_API_DEMUXER_OPEN (LIBAVFORMAT_VERSION_MAJOR < 59)
|
||||||
#endif
|
#endif
|
||||||
|
@ -50,7 +50,7 @@ typedef struct WebMChunkContext {
|
|||||||
static int webm_chunk_init(AVFormatContext *s)
|
static int webm_chunk_init(AVFormatContext *s)
|
||||||
{
|
{
|
||||||
WebMChunkContext *wc = s->priv_data;
|
WebMChunkContext *wc = s->priv_data;
|
||||||
ff_const59 AVOutputFormat *oformat;
|
const AVOutputFormat *oformat;
|
||||||
AVFormatContext *oc;
|
AVFormatContext *oc;
|
||||||
AVStream *st, *ost = s->streams[0];
|
AVStream *st, *ost = s->streams[0];
|
||||||
AVDictionary *dict = NULL;
|
AVDictionary *dict = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user