From 95fc17cc1a82ea6d2e9e96932e145cc2b4c210b6 Mon Sep 17 00:00:00 2001
From: Carl Eugen Hoyos <ceffmpeg@gmail.com>
Date: Thu, 31 Jan 2019 21:40:58 +0100
Subject: [PATCH] lavf: Constify AVInputFormat pointer.
---
libavformat/allformats.c | 6 +++++-
libavformat/avformat.h | 32 +++++++++++++++++++++++++++++++-
libavformat/dashdec.c | 3 +++
libavformat/hls.c | 3 +++
libavformat/img2dec.c | 2 +-
libavformat/mpeg.c | 3 +++
libavformat/rtpdec_asf.c | 3 +++
libavformat/sapdec.c | 3 +++
libavformat/utils.c | 11 ++++++++---
libavformat/version.h | 3 +++
10 files changed, 63 insertions(+), 6 deletions(-)
@@ -583,7 +583,11 @@ AVInputFormat *av_iformat_next(const AVInputFormat *f)
ff_thread_once(&av_format_next_init, av_format_init_next);
if (f)
- return f->next;
+ return
+#if !FF_API_AVINPUTFORMAT
+ (AVInputFormat *)
+#endif
+ f->next;
else {
void *opaque = NULL;
return (AVInputFormat *)av_demuxer_iterate(&opaque);
@@ -676,7 +676,10 @@ typedef struct AVInputFormat {
* New public fields should be added right above.
*****************************************************************
*/
- struct AVInputFormat *next;
+#if !FF_API_AVINPUTFORMAT
+ const
+#endif
+struct AVInputFormat *next;
/**
* Raw demuxers store their codec ID here.
@@ -1346,6 +1349,9 @@ typedef struct AVFormatContext {
*
* Demuxing only, set by avformat_open_input().
*/
+#if !FF_API_AVINPUTFORMAT
+ const
+#endif
struct AVInputFormat *iformat;
/**
@@ -2222,6 +2228,9 @@ int avformat_alloc_output_context2(AVFormatContext **ctx, AVOutputFormat *oforma
/**
* Find AVInputFormat based on the short name of the input format.
*/
+#if !FF_API_AVINPUTFORMAT
+const
+#endif
AVInputFormat *av_find_input_format(const char *short_name);
/**
@@ -2231,6 +2240,9 @@ AVInputFormat *av_find_input_format(const char *short_name);
* @param is_opened Whether the file is already opened; determines whether
* demuxers with or without AVFMT_NOFILE are probed.
*/
+#if !FF_API_AVINPUTFORMAT
+const
+#endif
AVInputFormat *av_probe_input_format(AVProbeData *pd, int is_opened);
/**
@@ -2245,6 +2257,9 @@ AVInputFormat *av_probe_input_format(AVProbeData *pd, int is_opened);
* If the score is <= AVPROBE_SCORE_MAX / 4 it is recommended
* to retry with a larger probe buffer.
*/
+#if !FF_API_AVINPUTFORMAT
+const
+#endif
AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score_max);
/**
@@ -2254,6 +2269,9 @@ AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score
* demuxers with or without AVFMT_NOFILE are probed.
* @param score_ret The score of the best detection.
*/
+#if !FF_API_AVINPUTFORMAT
+const
+#endif
AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened, int *score_ret);
/**
@@ -2272,14 +2290,22 @@ AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened, int *score
* the maximal score is AVPROBE_SCORE_MAX
* AVERROR code otherwise
*/
+#if FF_API_AVINPUTFORMAT
int av_probe_input_buffer2(AVIOContext *pb, AVInputFormat **fmt,
+#else
+int av_probe_input_buffer2(AVIOContext *pb, const AVInputFormat **fmt,
+#endif
const char *url, void *logctx,
unsigned int offset, unsigned int max_probe_size);
/**
* Like av_probe_input_buffer2() but returns 0 on success
*/
+#if FF_API_AVINPUTFORMAT
int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt,
+#else
+int av_probe_input_buffer(AVIOContext *pb, const AVInputFormat **fmt,
+#endif
const char *url, void *logctx,
unsigned int offset, unsigned int max_probe_size);
@@ -2302,7 +2328,11 @@ int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt,
*
* @note If you want to use custom IO, preallocate the format context and set its pb field.
*/
+#if FF_API_AVINPUTFORMAT
int avformat_open_input(AVFormatContext **ps, const char *url, AVInputFormat *fmt, AVDictionary **options);
+#else
+int avformat_open_input(AVFormatContext **ps, const char *url, const AVInputFormat *fmt, AVDictionary **options);
+#endif
attribute_deprecated
int av_demuxer_open(AVFormatContext *ic);
@@ -1851,6 +1851,9 @@ static void close_demux_for_component(struct representation *pls)
static int reopen_demux_for_component(AVFormatContext *s, struct representation *pls)
{
DASHContext *c = s->priv_data;
+#if !FF_API_AVINPUTFORMAT
+ const
+#endif
AVInputFormat *in_fmt = NULL;
AVDictionary *in_fmt_opts = NULL;
uint8_t *avio_ctx_buffer = NULL;
@@ -1868,6 +1868,9 @@ static int hls_read_header(AVFormatContext *s)
/* Open the demuxer for each playlist */
for (i = 0; i < c->n_playlists; i++) {
struct playlist *pls = c->playlists[i];
+#if !FF_API_AVINPUTFORMAT
+ const
+#endif
AVInputFormat *in_fmt = NULL;
if (!(pls->ctx = avformat_alloc_context())) {
@@ -424,7 +424,7 @@ int ff_img_read_packet(AVFormatContext *s1, AVPacket *pkt)
if (par->codec_id == AV_CODEC_ID_NONE) {
AVProbeData pd = { 0 };
- AVInputFormat *ifmt;
+ const AVInputFormat *ifmt;
uint8_t header[PROBE_BUF_MIN + AVPROBE_PADDING_SIZE];
int ret;
int score = 0;
@@ -722,6 +722,9 @@ static int vobsub_read_header(AVFormatContext *s)
int stream_id = -1;
char id[64] = {0};
char alt[MAX_LINE_SIZE] = {0};
+#if !FF_API_AVINPUTFORMAT
+ const
+#endif
AVInputFormat *iformat;
if (!vobsub->sub_name) {
@@ -106,6 +106,9 @@ int ff_wms_parse_sdp_a_line(AVFormatContext *s, const char *p)
AVDictionary *opts = NULL;
int len = strlen(p) * 6 / 8;
char *buf = av_mallocz(len);
+#if !FF_API_AVINPUTFORMAT
+ const
+#endif
AVInputFormat *iformat;
if (!buf)
@@ -68,6 +68,9 @@ static int sap_read_header(AVFormatContext *s)
uint8_t recvbuf[RTP_MAX_PACKET_LENGTH];
int port;
int ret, i;
+#if !FF_API_AVINPUTFORMAT
+ const
+#endif
AVInputFormat* infmt;
if (!ff_network_init())
@@ -357,7 +357,7 @@ static int set_codec_from_probe_data(AVFormatContext *s, AVStream *st,
{ 0 }
};
int score;
- AVInputFormat *fmt = av_probe_input_format3(pd, 1, &score);
+ const AVInputFormat *fmt = av_probe_input_format3(pd, 1, &score);
if (fmt) {
int i;
@@ -535,7 +535,12 @@ FF_ENABLE_DEPRECATION_WARNINGS
int avformat_open_input(AVFormatContext **ps, const char *filename,
- AVInputFormat *fmt, AVDictionary **options)
+#if FF_API_AVINPUTFORMAT
+ AVInputFormat *fmt,
+#else
+ const AVInputFormat *fmt,
+#endif
+ AVDictionary **options)
{
AVFormatContext *s = *ps;
int i, ret = 0;
@@ -2163,7 +2168,7 @@ static int64_t ff_read_timestamp(AVFormatContext *s, int stream_index, int64_t *
int ff_seek_frame_binary(AVFormatContext *s, int stream_index,
int64_t target_ts, int flags)
{
- AVInputFormat *avif = s->iformat;
+ const AVInputFormat *avif = s->iformat;
int64_t av_uninit(pos_min), av_uninit(pos_max), pos, pos_limit;
int64_t ts_min, ts_max, ts;
int index;
@@ -103,6 +103,9 @@
#ifndef FF_API_LAVF_MP4A_LATM
#define FF_API_LAVF_MP4A_LATM (LIBAVFORMAT_VERSION_MAJOR < 59)
#endif
+#ifndef FF_API_AVINPUTFORMAT
+#define FF_API_AVINPUTFORMAT (LIBAVFORMAT_VERSION_MAJOR < 59)
+#endif
#ifndef FF_API_R_FRAME_RATE
--
1.7.10.4