Nicolas George <geo...@nsup.org> 于2020年4月29日周三 下午9:31写道: > > leozhang (12020-04-29): > > Signed-off-by: leozhang <leozh...@qiyi.com> > > --- > > doc/muxers.texi | 3 +++ > > libavformat/fifo.c | 7 +++++++ > > 2 files changed, 10 insertions(+) > > > > diff --git a/doc/muxers.texi b/doc/muxers.texi > > index cb2bb42..a74cbc4 100644 > > --- a/doc/muxers.texi > > +++ b/doc/muxers.texi > > @@ -2271,6 +2271,9 @@ certain (usually permanent) errors the recovery is > > not attempted even when > > Specify whether to wait for the keyframe after recovering from > > queue overflow or failure. This option is set to 0 (false) by default. > > > > > +@item output_delay > > +Time to delay output, in microseconds. Default value is 0. > > This is not accurate enough. This will block every output packet for the > extra specified duration. > > Not sure if it is very useful, compared with the other patch. In live streaming applications, if user wouldn't want broadcast what's coming next immediately, can set wanted output delay. > > > + > > @end table > > > > @subsection Examples > > diff --git a/libavformat/fifo.c b/libavformat/fifo.c > > index d11dc66..bdecf2d 100644 > > --- a/libavformat/fifo.c > > +++ b/libavformat/fifo.c > > @@ -77,6 +77,8 @@ typedef struct FifoContext { > > /* Value > 0 signals queue overflow */ > > volatile uint8_t overflow_flag; > > > > + /* Time to delay output, in microseconds */ > > + uint64_t output_delay; > > } FifoContext; > > > > typedef struct FifoThreadContext { > > @@ -397,6 +399,8 @@ static void *fifo_consumer_thread(void *data) > > memset(&fifo_thread_ctx, 0, sizeof(FifoThreadContext)); > > fifo_thread_ctx.avf = avf; > > > > + av_usleep(fifo->output_delay); > > + > > while (1) { > > uint8_t just_flushed = 0; > > > > @@ -630,6 +634,9 @@ static const AVOption options[] = { > > {"recover_any_error", "Attempt recovery regardless of type of the > > error", OFFSET(recover_any_error), > > AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, AV_OPT_FLAG_ENCODING_PARAM}, > > > > > + {"output_delay", "Time to delay output, in microseconds", > > OFFSET(output_delay), > > + AV_OPT_TYPE_INT, {.i64 = 0}, 0, INT_MAX, > > AV_OPT_FLAG_ENCODING_PARAM}, > > AV_OPT_TYPE_DURATION and adapt the description and documentation. Will fix it in v2 version. Thanks. > > > + > > {NULL}, > > }; > > > > Regards, > > -- > Nicolas George > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe". _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".