From ba32f41824df07b7a6cb45964ef912c5fc05b276 Mon Sep 17 00:00:00 2001
From: Carl Eugen Hoyos <ceffmpeg@gmail.com>
Date: Sat, 9 Feb 2019 15:21:17 +0100
Subject: [PATCH] lavf: Constify AVOutputFormat pointer.
---
libavformat/allformats.c | 4 ++++
libavformat/avformat.h | 15 ++++++++++-----
libavformat/fifo.c | 4 ++--
libavformat/format.c | 6 +++---
libavformat/hdsenc.c | 2 +-
libavformat/hlsenc.c | 4 ++--
libavformat/mux.c | 4 ++--
libavformat/rtp.c | 2 +-
libavformat/rtpenc_chain.c | 2 +-
libavformat/rtpenc_mpegts.c | 4 ++--
libavformat/segment.c | 2 +-
libavformat/smoothstreamingenc.c | 2 +-
libavformat/version.h | 3 +++
libavformat/webm_chunk.c | 2 +-
14 files changed, 34 insertions(+), 22 deletions(-)
@@ -595,7 +595,11 @@ AVOutputFormat *av_oformat_next(const AVOutputFormat *f)
ff_thread_once(&av_format_next_init, av_format_init_next);
if (f)
+#if FF_API_AVIOFORMAT
+ return (AVOutputFormat *) f->next;
+#else
return f->next;
+#endif
else {
void *opaque = NULL;
return (AVOutputFormat *)av_muxer_iterate(&opaque);
@@ -532,7 +532,12 @@ typedef struct AVOutputFormat {
* New public fields should be added right above.
*****************************************************************
*/
- struct AVOutputFormat *next;
+#if FF_API_AVIOFORMAT
+#define av_const59 const
+#else
+#define av_const59
+#endif
+ av_const59 struct AVOutputFormat *next;
/**
* size of private data so that it can be allocated in the wrapper
*/
@@ -1353,7 +1358,7 @@ typedef struct AVFormatContext {
*
* Muxing only, must be set by the caller before avformat_write_header().
*/
- struct AVOutputFormat *oformat;
+ av_const59 struct AVOutputFormat *oformat;
/**
* Format private data. This is an AVOptions-enabled struct
@@ -2211,7 +2216,7 @@ AVProgram *av_new_program(AVFormatContext *s, int id);
* @return >= 0 in case of success, a negative AVERROR code in case of
* failure
*/
-int avformat_alloc_output_context2(AVFormatContext **ctx, AVOutputFormat *oformat,
+int avformat_alloc_output_context2(AVFormatContext **ctx, av_const59 AVOutputFormat *oformat,
const char *format_name, const char *filename);
/**
@@ -2687,14 +2692,14 @@ int av_write_trailer(AVFormatContext *s);
* @param mime_type if non-NULL checks if mime_type matches with the
* MIME type of the registered formats
*/
-AVOutputFormat *av_guess_format(const char *short_name,
+av_const59 AVOutputFormat *av_guess_format(const char *short_name,
const char *filename,
const char *mime_type);
/**
* Guess the codec ID based upon muxer and filename.
*/
-enum AVCodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name,
+enum AVCodecID av_guess_codec(av_const59 AVOutputFormat *fmt, const char *short_name,
const char *filename, const char *mime_type,
enum AVMediaType type);
@@ -442,7 +442,7 @@ static void *fifo_consumer_thread(void *data)
return NULL;
}
-static int fifo_mux_init(AVFormatContext *avf, AVOutputFormat *oformat,
+static int fifo_mux_init(AVFormatContext *avf, const AVOutputFormat *oformat,
const char *filename)
{
FifoContext *fifo = avf->priv_data;
@@ -481,7 +481,7 @@ static int fifo_mux_init(AVFormatContext *avf, AVOutputFormat *oformat,
static int fifo_init(AVFormatContext *avf)
{
FifoContext *fifo = avf->priv_data;
- AVOutputFormat *oformat;
+ const AVOutputFormat *oformat;
int ret = 0;
if (fifo->recovery_wait_streamtime && !fifo->drop_pkts_on_overflow) {
@@ -48,7 +48,7 @@ int av_match_ext(const char *filename, const char *extensions)
return 0;
}
-AVOutputFormat *av_guess_format(const char *short_name, const char *filename,
+av_const59 AVOutputFormat *av_guess_format(const char *short_name, const char *filename,
const char *mime_type)
{
const AVOutputFormat *fmt = NULL;
@@ -84,12 +84,12 @@ AVOutputFormat *av_guess_format(const char *short_name, const char *filename,
return fmt_found;
}
-enum AVCodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name,
+enum AVCodecID av_guess_codec(av_const59 AVOutputFormat *fmt, const char *short_name,
const char *filename, const char *mime_type,
enum AVMediaType type)
{
if (av_match_name("segment", fmt->name) || av_match_name("ssegment", fmt->name)) {
- AVOutputFormat *fmt2 = av_guess_format(NULL, filename, NULL);
+ const AVOutputFormat *fmt2 = av_guess_format(NULL, filename, NULL);
if (fmt2)
fmt = fmt2;
}
@@ -315,7 +315,7 @@ static int hds_write_header(AVFormatContext *s)
{
HDSContext *c = s->priv_data;
int ret = 0, i;
- AVOutputFormat *oformat;
+ const AVOutputFormat *oformat;
if (mkdir(s->url, 0777) == -1 && errno != EEXIST) {
ret = AVERROR(errno);
@@ -110,8 +110,8 @@ typedef struct VariantStream {
unsigned var_stream_idx;
unsigned number;
int64_t sequence;
- AVOutputFormat *oformat;
- AVOutputFormat *vtt_oformat;
+ const AVOutputFormat *oformat;
+ const AVOutputFormat *vtt_oformat;
AVIOContext *out;
int packets_written;
int init_range_length;
@@ -145,7 +145,7 @@ enum AVChromaLocation ff_choose_chroma_location(AVFormatContext *s, AVStream *st
}
-int avformat_alloc_output_context2(AVFormatContext **avctx, AVOutputFormat *oformat,
+int avformat_alloc_output_context2(AVFormatContext **avctx, av_const59 AVOutputFormat *oformat,
const char *format, const char *filename)
{
AVFormatContext *s = avformat_alloc_context();
@@ -246,7 +246,7 @@ static int init_muxer(AVFormatContext *s, AVDictionary **options)
AVStream *st;
AVDictionary *tmp = NULL;
AVCodecParameters *par = NULL;
- AVOutputFormat *of = s->oformat;
+ const AVOutputFormat *of = s->oformat;
const AVCodecDescriptor *desc;
AVDictionaryEntry *e;
@@ -91,7 +91,7 @@ int ff_rtp_get_payload_type(AVFormatContext *fmt,
AVCodecParameters *par, int idx)
{
int i;
- AVOutputFormat *ofmt = fmt ? fmt->oformat : NULL;
+ const AVOutputFormat *ofmt = fmt ? fmt->oformat : NULL;
/* Was the payload type already specified for the RTP muxer? */
if (ofmt && ofmt->priv_class && fmt->priv_data) {
@@ -31,7 +31,7 @@ int ff_rtp_chain_mux_open(AVFormatContext **out, AVFormatContext *s,
{
AVFormatContext *rtpctx = NULL;
int ret;
- AVOutputFormat *rtp_format = av_guess_format("rtp", NULL, NULL);
+ const AVOutputFormat *rtp_format = av_guess_format("rtp", NULL, NULL);
uint8_t *rtpflags;
AVDictionary *opts = NULL;
@@ -48,8 +48,8 @@ static int rtp_mpegts_write_header(AVFormatContext *s)
{
struct MuxChain *chain = s->priv_data;
AVFormatContext *mpegts_ctx = NULL, *rtp_ctx = NULL;
- AVOutputFormat *mpegts_format = av_guess_format("mpegts", NULL, NULL);
- AVOutputFormat *rtp_format = av_guess_format("rtp", NULL, NULL);
+ const AVOutputFormat *mpegts_format = av_guess_format("mpegts", NULL, NULL);
+ const AVOutputFormat *rtp_format = av_guess_format("rtp", NULL, NULL);
int i, ret = AVERROR(ENOMEM);
AVStream *st;
@@ -72,7 +72,7 @@ typedef struct SegmentContext {
int segment_idx_wrap; ///< number after which the index wraps
int segment_idx_wrap_nb; ///< number of time the index has wraped
int segment_count; ///< number of segment files already written
- AVOutputFormat *oformat;
+ const AVOutputFormat *oformat;
AVFormatContext *avf;
char *format; ///< format to use for output segment files
char *format_options_str; ///< format options to use for output segment files
@@ -293,7 +293,7 @@ static int ism_write_header(AVFormatContext *s)
{
SmoothStreamingContext *c = s->priv_data;
int ret = 0, i;
- AVOutputFormat *oformat;
+ const AVOutputFormat *oformat;
if (mkdir(s->url, 0777) == -1 && errno != EEXIST) {
ret = AVERROR(errno);
@@ -103,6 +103,9 @@
#ifndef FF_API_LAVF_MP4A_LATM
#define FF_API_LAVF_MP4A_LATM (LIBAVFORMAT_VERSION_MAJOR < 59)
#endif
+#ifndef FF_API_AVIOFORMAT
+#define FF_API_AVIOFORMAT (LIBAVFORMAT_VERSION_MAJOR < 59)
+#endif
#ifndef FF_API_R_FRAME_RATE
@@ -53,7 +53,7 @@ typedef struct WebMChunkContext {
char *http_method;
uint64_t duration_written;
int prev_pts;
- AVOutputFormat *oformat;
+ const AVOutputFormat *oformat;
AVFormatContext *avf;
} WebMChunkContext;
--
1.7.10.4