Deprecate AVFormatContext.preload.
---
avconv.c | 7 +++++--
libavformat/avformat.h | 4 +++-
libavformat/mpegenc.c | 10 +++++++++-
libavformat/version.h | 3 +++
4 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/avconv.c b/avconv.c
index 44bc59f..63eee12 100644
--- a/avconv.c
+++ b/avconv.c
@@ -373,7 +373,6 @@ static void reset_options(OptionsContext *o)
memset(o, 0, sizeof(*o));
- o->mux_preload = 0.5;
o->mux_max_delay = 0.7;
o->recording_time = INT64_MAX;
o->limit_filesize = UINT64_MAX;
@@ -3495,7 +3494,11 @@ static void opt_output_file(void *optctx, const char
*filename)
}
}
- oc->preload = (int)(o->mux_preload * AV_TIME_BASE);
+ if (o->mux_preload) {
+ uint8_t buf[64];
+ snprintf(buf, sizeof(buf), "%d", (int)(o->mux_preload*AV_TIME_BASE));
+ av_dict_set(&output_files[nb_output_files - 1].opts, "preload", buf,
0);
+ }
oc->max_delay = (int)(o->mux_max_delay * AV_TIME_BASE);
oc->flags |= AVFMT_FLAG_NONBLOCK;
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index 4e7e883..c7301cb 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -743,7 +743,9 @@ typedef struct AVFormatContext {
attribute_deprecated int mux_rate;
#endif
unsigned int packet_size;
- int preload;
+#if FF_API_PRELOAD
+ attribute_deprecated int preload;
+#endif
int max_delay;
#if FF_API_LOOP_OUTPUT
diff --git a/libavformat/mpegenc.c b/libavformat/mpegenc.c
index 5e8954c..f824d6c 100644
--- a/libavformat/mpegenc.c
+++ b/libavformat/mpegenc.c
@@ -77,6 +77,7 @@ typedef struct {
double vcd_padding_bitrate; //FIXME floats
int64_t vcd_padding_bytes_written;
+ int preload;
} MpegMuxContext;
extern AVOutputFormat ff_mpeg1vcd_muxer;
@@ -1158,9 +1159,15 @@ static int mpeg_mux_write_packet(AVFormatContext *ctx,
AVPacket *pkt)
StreamInfo *stream = st->priv_data;
int64_t pts, dts;
PacketDesc *pkt_desc;
- const int preload= av_rescale(ctx->preload, 90000, AV_TIME_BASE);
+ int preload;
const int is_iframe = st->codec->codec_type == AVMEDIA_TYPE_VIDEO &&
(pkt->flags & AV_PKT_FLAG_KEY);
+#if FF_API_PRELOAD
+ if (ctx->preload)
+ s->preload = ctx->preload;
+#endif
+ preload = av_rescale(s->preload, 90000, AV_TIME_BASE);
+
pts= pkt->pts;
dts= pkt->dts;
@@ -1237,6 +1244,7 @@ static int mpeg_mux_end(AVFormatContext *ctx)
#define E AV_OPT_FLAG_ENCODING_PARAM
static const AVOption options[] = {
{ "muxrate", NULL, OFFSET(mux_rate), AV_OPT_TYPE_INT, {0}, 0, INT_MAX, E },
+ { "preload", "Initial demux-decode delay in microseconds.",
OFFSET(preload), AV_OPT_TYPE_INT, {500000}, 0, INT_MAX, E},
{ NULL },
};
diff --git a/libavformat/version.h b/libavformat/version.h
index 2bebed9..ed6c05b 100644
--- a/libavformat/version.h
+++ b/libavformat/version.h
@@ -92,5 +92,8 @@
#ifndef FF_API_MUXRATE
#define FF_API_MUXRATE (LIBAVFORMAT_VERSION_MAJOR < 54)
#endif
+#ifndef FF_API_PRELOAD
+#define FF_API_PRELOAD (LIBAVFORMAT_VERSION_MAJOR < 54)
+#endif
#endif /* AVFORMAT_VERSION_H */
--
1.7.6.3
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel