Message ID | CAB0OVGqm3Zu-DDTjBeZVj0Hc2Hf9k2ctqs5fWu1nCVM0rSY+XA@mail.gmail.com |
---|---|
State | Superseded |
Headers | show |
On 1/31/2019 5:54 PM, Carl Eugen Hoyos wrote: > 2019-01-31 21:43 GMT+01:00, Carl Eugen Hoyos <ceffmpeg@gmail.com>: >> Hi! >> >> Attached patch persistently uses "const" for AVInputFormat pointer >> after the next version bump. > Now with an actually working version. > > Please comment, Carl Eugen > > > 0001-lavf-Constify-AVInputFormat-pointer.patch > > From f383a7f914b2c7240378b404d529a7d73c68941b Mon Sep 17 00:00:00 2001 > From: Carl Eugen Hoyos <ceffmpeg@gmail.com> > Date: Thu, 31 Jan 2019 21:51:56 +0100 > Subject: [PATCH] lavf: Constify AVInputFormat pointer. > > --- > libavformat/allformats.c | 6 +++++- > libavformat/avformat.h | 32 +++++++++++++++++++++++++++++++- > libavformat/dashdec.c | 3 +++ > libavformat/format.c | 32 ++++++++++++++++++++++++++++++-- > 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 +++ > 11 files changed, 93 insertions(+), 8 deletions(-) > > diff --git a/libavformat/allformats.c b/libavformat/allformats.c > index 0684498..01c4c14 100644 > --- a/libavformat/allformats.c > +++ b/libavformat/allformats.c > @@ -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); > diff --git a/libavformat/avformat.h b/libavformat/avformat.h > index fdaffa5..7c4ec8f 100644 > --- a/libavformat/avformat.h > +++ b/libavformat/avformat.h > @@ -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); I'd prefer if you instead do like with av_probe_input_buffer() so we can simply remove the dead code after a major bump and end up with a single line prototype without extra line changes. > > /** > @@ -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); > diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c > index f4f4e93..ad9cdb1 100644 > --- a/libavformat/dashdec.c > +++ b/libavformat/dashdec.c > @@ -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; > diff --git a/libavformat/format.c b/libavformat/format.c > index 2c4c895..9f24ae0 100644 > --- a/libavformat/format.c > +++ b/libavformat/format.c > @@ -115,6 +115,9 @@ enum AVCodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name, > return AV_CODEC_ID_NONE; > } > > +#if !FF_API_AVINPUTFORMAT > +const > +#endif > AVInputFormat *av_find_input_format(const char *short_name) > { > const AVInputFormat *fmt = NULL; > @@ -125,11 +128,17 @@ AVInputFormat *av_find_input_format(const char *short_name) > return NULL; > } > > +#if !FF_API_AVINPUTFORMAT > +const > +#endif > AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened, > int *score_ret) > { > AVProbeData lpd = *pd; > const AVInputFormat *fmt1 = NULL; > +#if !FF_API_AVINPUTFORMAT > +const > +#endif > AVInputFormat *fmt = NULL; > int score, score_max = 0; > void *i = 0; > @@ -202,9 +211,15 @@ AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened, > return fmt; > } > > +#if !FF_API_AVINPUTFORMAT > +const > +#endif > AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score_max) > { > int score_ret; > +#if !FF_API_AVINPUTFORMAT > +const > +#endif > AVInputFormat *fmt = av_probe_input_format3(pd, is_opened, &score_ret); > if (score_ret > *score_max) { > *score_max = score_ret; > @@ -213,13 +228,21 @@ AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score > return NULL; > } > > +#if !FF_API_AVINPUTFORMAT > +const > +#endif > AVInputFormat *av_probe_input_format(AVProbeData *pd, int is_opened) > { > int score = 0; > return av_probe_input_format2(pd, is_opened, &score); > } > > -int av_probe_input_buffer2(AVIOContext *pb, AVInputFormat **fmt, > +int av_probe_input_buffer2(AVIOContext *pb, > +#if FF_API_AVINPUTFORMAT > + AVInputFormat **fmt, > +#else > + const AVInputFormat **fmt, > +#endif Same for these. > const char *filename, void *logctx, > unsigned int offset, unsigned int max_probe_size) > { > @@ -309,7 +332,12 @@ fail: > return ret < 0 ? ret : score; > } > > -int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt, > +int av_probe_input_buffer(AVIOContext *pb, > +#if FF_API_AVINPUTFORMAT > + AVInputFormat **fmt, > +#else > + const AVInputFormat **fmt, > +#endif > const char *filename, void *logctx, > unsigned int offset, unsigned int max_probe_size) > { > diff --git a/libavformat/hls.c b/libavformat/hls.c > index 8975a87..1b7ac4b 100644 > --- a/libavformat/hls.c > +++ b/libavformat/hls.c > @@ -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())) { > diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c > index e82b1df..71d8aa3b 100644 > --- a/libavformat/img2dec.c > +++ b/libavformat/img2dec.c > @@ -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; > diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c > index d4369b4..cbfebf6 100644 > --- a/libavformat/mpeg.c > +++ b/libavformat/mpeg.c > @@ -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) { > diff --git a/libavformat/rtpdec_asf.c b/libavformat/rtpdec_asf.c > index 54ffef6..69805b0 100644 > --- a/libavformat/rtpdec_asf.c > +++ b/libavformat/rtpdec_asf.c > @@ -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) > diff --git a/libavformat/sapdec.c b/libavformat/sapdec.c > index 7a6c8bf..5103ab2 100644 > --- a/libavformat/sapdec.c > +++ b/libavformat/sapdec.c > @@ -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()) > diff --git a/libavformat/utils.c b/libavformat/utils.c > index 7afef54..4837ef3 100644 > --- a/libavformat/utils.c > +++ b/libavformat/utils.c > @@ -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; > diff --git a/libavformat/version.h b/libavformat/version.h > index 4408eca..6915be0 100644 > --- a/libavformat/version.h > +++ b/libavformat/version.h > @@ -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 > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >
On Thu, Jan 31, 2019 at 09:54:14PM +0100, Carl Eugen Hoyos wrote: > 2019-01-31 21:43 GMT+01:00, Carl Eugen Hoyos <ceffmpeg@gmail.com>: > > Hi! > > > > Attached patch persistently uses "const" for AVInputFormat pointer > > after the next version bump. > > Now with an actually working version. > > Please comment, Carl Eugen > allformats.c | 6 +++++- > avformat.h | 32 +++++++++++++++++++++++++++++++- > dashdec.c | 3 +++ > format.c | 32 ++++++++++++++++++++++++++++++-- > hls.c | 3 +++ > img2dec.c | 2 +- > mpeg.c | 3 +++ > rtpdec_asf.c | 3 +++ > sapdec.c | 3 +++ > utils.c | 11 ++++++++--- > version.h | 3 +++ > 11 files changed, 93 insertions(+), 8 deletions(-) > d3aece2f0b9a9c3ff8b2a187ceccdc744ea40de2 0001-lavf-Constify-AVInputFormat-pointer.patch > From f383a7f914b2c7240378b404d529a7d73c68941b Mon Sep 17 00:00:00 2001 > From: Carl Eugen Hoyos <ceffmpeg@gmail.com> > Date: Thu, 31 Jan 2019 21:51:56 +0100 > Subject: [PATCH] lavf: Constify AVInputFormat pointer. > > --- > libavformat/allformats.c | 6 +++++- > libavformat/avformat.h | 32 +++++++++++++++++++++++++++++++- > libavformat/dashdec.c | 3 +++ > libavformat/format.c | 32 ++++++++++++++++++++++++++++++-- > 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 +++ > 11 files changed, 93 insertions(+), 8 deletions(-) > > diff --git a/libavformat/allformats.c b/libavformat/allformats.c > index 0684498..01c4c14 100644 > --- a/libavformat/allformats.c > +++ b/libavformat/allformats.c > @@ -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); > diff --git a/libavformat/avformat.h b/libavformat/avformat.h > index fdaffa5..7c4ec8f 100644 > --- a/libavformat/avformat.h > +++ b/libavformat/avformat.h > @@ -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; some av_const59 which is defined to nothing until version 59 should avoid the repeated #if/endif it would require an eventual update to change it to const at some point but it would avoid most preprocessor comands [...]
From f383a7f914b2c7240378b404d529a7d73c68941b Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos <ceffmpeg@gmail.com> Date: Thu, 31 Jan 2019 21:51:56 +0100 Subject: [PATCH] lavf: Constify AVInputFormat pointer. --- libavformat/allformats.c | 6 +++++- libavformat/avformat.h | 32 +++++++++++++++++++++++++++++++- libavformat/dashdec.c | 3 +++ libavformat/format.c | 32 ++++++++++++++++++++++++++++++-- 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 +++ 11 files changed, 93 insertions(+), 8 deletions(-) diff --git a/libavformat/allformats.c b/libavformat/allformats.c index 0684498..01c4c14 100644 --- a/libavformat/allformats.c +++ b/libavformat/allformats.c @@ -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); diff --git a/libavformat/avformat.h b/libavformat/avformat.h index fdaffa5..7c4ec8f 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -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); diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c index f4f4e93..ad9cdb1 100644 --- a/libavformat/dashdec.c +++ b/libavformat/dashdec.c @@ -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; diff --git a/libavformat/format.c b/libavformat/format.c index 2c4c895..9f24ae0 100644 --- a/libavformat/format.c +++ b/libavformat/format.c @@ -115,6 +115,9 @@ enum AVCodecID av_guess_codec(AVOutputFormat *fmt, const char *short_name, return AV_CODEC_ID_NONE; } +#if !FF_API_AVINPUTFORMAT +const +#endif AVInputFormat *av_find_input_format(const char *short_name) { const AVInputFormat *fmt = NULL; @@ -125,11 +128,17 @@ AVInputFormat *av_find_input_format(const char *short_name) return NULL; } +#if !FF_API_AVINPUTFORMAT +const +#endif AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened, int *score_ret) { AVProbeData lpd = *pd; const AVInputFormat *fmt1 = NULL; +#if !FF_API_AVINPUTFORMAT +const +#endif AVInputFormat *fmt = NULL; int score, score_max = 0; void *i = 0; @@ -202,9 +211,15 @@ AVInputFormat *av_probe_input_format3(AVProbeData *pd, int is_opened, return fmt; } +#if !FF_API_AVINPUTFORMAT +const +#endif AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score_max) { int score_ret; +#if !FF_API_AVINPUTFORMAT +const +#endif AVInputFormat *fmt = av_probe_input_format3(pd, is_opened, &score_ret); if (score_ret > *score_max) { *score_max = score_ret; @@ -213,13 +228,21 @@ AVInputFormat *av_probe_input_format2(AVProbeData *pd, int is_opened, int *score return NULL; } +#if !FF_API_AVINPUTFORMAT +const +#endif AVInputFormat *av_probe_input_format(AVProbeData *pd, int is_opened) { int score = 0; return av_probe_input_format2(pd, is_opened, &score); } -int av_probe_input_buffer2(AVIOContext *pb, AVInputFormat **fmt, +int av_probe_input_buffer2(AVIOContext *pb, +#if FF_API_AVINPUTFORMAT + AVInputFormat **fmt, +#else + const AVInputFormat **fmt, +#endif const char *filename, void *logctx, unsigned int offset, unsigned int max_probe_size) { @@ -309,7 +332,12 @@ fail: return ret < 0 ? ret : score; } -int av_probe_input_buffer(AVIOContext *pb, AVInputFormat **fmt, +int av_probe_input_buffer(AVIOContext *pb, +#if FF_API_AVINPUTFORMAT + AVInputFormat **fmt, +#else + const AVInputFormat **fmt, +#endif const char *filename, void *logctx, unsigned int offset, unsigned int max_probe_size) { diff --git a/libavformat/hls.c b/libavformat/hls.c index 8975a87..1b7ac4b 100644 --- a/libavformat/hls.c +++ b/libavformat/hls.c @@ -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())) { diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c index e82b1df..71d8aa3b 100644 --- a/libavformat/img2dec.c +++ b/libavformat/img2dec.c @@ -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; diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c index d4369b4..cbfebf6 100644 --- a/libavformat/mpeg.c +++ b/libavformat/mpeg.c @@ -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) { diff --git a/libavformat/rtpdec_asf.c b/libavformat/rtpdec_asf.c index 54ffef6..69805b0 100644 --- a/libavformat/rtpdec_asf.c +++ b/libavformat/rtpdec_asf.c @@ -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) diff --git a/libavformat/sapdec.c b/libavformat/sapdec.c index 7a6c8bf..5103ab2 100644 --- a/libavformat/sapdec.c +++ b/libavformat/sapdec.c @@ -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()) diff --git a/libavformat/utils.c b/libavformat/utils.c index 7afef54..4837ef3 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -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; diff --git a/libavformat/version.h b/libavformat/version.h index 4408eca..6915be0 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -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