mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-29 18:53:02 +00:00
mpegenc: add preload private option.
Deprecate AVFormatContext.preload.
This commit is contained in:
parent
28287045ca
commit
f172132f82
7
avconv.c
7
avconv.c
@ -375,7 +375,6 @@ static void reset_options(OptionsContext *o)
|
|||||||
|
|
||||||
memset(o, 0, sizeof(*o));
|
memset(o, 0, sizeof(*o));
|
||||||
|
|
||||||
o->mux_preload = 0.5;
|
|
||||||
o->mux_max_delay = 0.7;
|
o->mux_max_delay = 0.7;
|
||||||
o->recording_time = INT64_MAX;
|
o->recording_time = INT64_MAX;
|
||||||
o->limit_filesize = UINT64_MAX;
|
o->limit_filesize = UINT64_MAX;
|
||||||
@ -3572,7 +3571,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->max_delay = (int)(o->mux_max_delay * AV_TIME_BASE);
|
||||||
oc->flags |= AVFMT_FLAG_NONBLOCK;
|
oc->flags |= AVFMT_FLAG_NONBLOCK;
|
||||||
|
|
||||||
|
@ -743,7 +743,9 @@ typedef struct AVFormatContext {
|
|||||||
attribute_deprecated int mux_rate;
|
attribute_deprecated int mux_rate;
|
||||||
#endif
|
#endif
|
||||||
unsigned int packet_size;
|
unsigned int packet_size;
|
||||||
int preload;
|
#if FF_API_PRELOAD
|
||||||
|
attribute_deprecated int preload;
|
||||||
|
#endif
|
||||||
int max_delay;
|
int max_delay;
|
||||||
|
|
||||||
#if FF_API_LOOP_OUTPUT
|
#if FF_API_LOOP_OUTPUT
|
||||||
|
@ -77,6 +77,7 @@ typedef struct {
|
|||||||
double vcd_padding_bitrate; //FIXME floats
|
double vcd_padding_bitrate; //FIXME floats
|
||||||
int64_t vcd_padding_bytes_written;
|
int64_t vcd_padding_bytes_written;
|
||||||
|
|
||||||
|
int preload;
|
||||||
} MpegMuxContext;
|
} MpegMuxContext;
|
||||||
|
|
||||||
extern AVOutputFormat ff_mpeg1vcd_muxer;
|
extern AVOutputFormat ff_mpeg1vcd_muxer;
|
||||||
@ -1158,9 +1159,15 @@ static int mpeg_mux_write_packet(AVFormatContext *ctx, AVPacket *pkt)
|
|||||||
StreamInfo *stream = st->priv_data;
|
StreamInfo *stream = st->priv_data;
|
||||||
int64_t pts, dts;
|
int64_t pts, dts;
|
||||||
PacketDesc *pkt_desc;
|
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);
|
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;
|
pts= pkt->pts;
|
||||||
dts= pkt->dts;
|
dts= pkt->dts;
|
||||||
|
|
||||||
@ -1237,6 +1244,7 @@ static int mpeg_mux_end(AVFormatContext *ctx)
|
|||||||
#define E AV_OPT_FLAG_ENCODING_PARAM
|
#define E AV_OPT_FLAG_ENCODING_PARAM
|
||||||
static const AVOption options[] = {
|
static const AVOption options[] = {
|
||||||
{ "muxrate", NULL, OFFSET(mux_rate), AV_OPT_TYPE_INT, {0}, 0, INT_MAX, E },
|
{ "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 },
|
{ NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -98,5 +98,8 @@
|
|||||||
#ifndef FF_API_NEW_STREAM
|
#ifndef FF_API_NEW_STREAM
|
||||||
#define FF_API_NEW_STREAM (LIBAVFORMAT_VERSION_MAJOR < 54)
|
#define FF_API_NEW_STREAM (LIBAVFORMAT_VERSION_MAJOR < 54)
|
||||||
#endif
|
#endif
|
||||||
|
#ifndef FF_API_PRELOAD
|
||||||
|
#define FF_API_PRELOAD (LIBAVFORMAT_VERSION_MAJOR < 54)
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* AVFORMAT_VERSION_H */
|
#endif /* AVFORMAT_VERSION_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user