On Wed, May 02, 2018 at 07:24:59PM -0700, Aman Gupta wrote: > From: Aman Gupta <a...@tmm1.net> > > The output_buffer_count==0 special case is no longer required, and > can cause spurious EAGAIN to surface to the user when input buffers > are filled up. Since the caller now knows if the decoder is accepting > new input (via current_input_buffer>=0), let the wait parameter > control whether we block or not. > > Signed-off-by: Aman Gupta <a...@tmm1.net> > --- > libavcodec/mediacodecdec_common.c | 8 +------- > libavcodec/mediacodecdec_common.h | 1 - > 2 files changed, 1 insertion(+), 8 deletions(-) > > diff --git a/libavcodec/mediacodecdec_common.c > b/libavcodec/mediacodecdec_common.c > index 887865a281..40a2ee6778 100644 > --- a/libavcodec/mediacodecdec_common.c > +++ b/libavcodec/mediacodecdec_common.c > @@ -443,8 +443,6 @@ static int mediacodec_dec_flush_codec(AVCodecContext > *avctx, MediaCodecDecContex > FFAMediaCodec *codec = s->codec; > int status; > > - s->output_buffer_count = 0; > - > s->draining = 0; > s->flushing = 0; > s->eos = 0; > @@ -672,10 +670,7 @@ int ff_mediacodec_dec_receive(AVCodecContext *avctx, > MediaCodecDecContext *s, > /* If the codec is flushing or need to be flushed, block for a fair > * amount of time to ensure we got a frame */ > output_dequeue_timeout_us = OUTPUT_DEQUEUE_BLOCK_TIMEOUT_US; > - } else if (s->output_buffer_count == 0 || !wait) { > - /* If the codec hasn't produced any frames, do not block so we > - * can push data to it as fast as possible, and get the first > - * frame */ > + } else if (!wait) { > output_dequeue_timeout_us = 0; > } > > @@ -709,7 +704,6 @@ int ff_mediacodec_dec_receive(AVCodecContext *avctx, > MediaCodecDecContext *s, > } > } > > - s->output_buffer_count++; > return 0; > } else { > status = ff_AMediaCodec_releaseOutputBuffer(codec, index, 0); > diff --git a/libavcodec/mediacodecdec_common.h > b/libavcodec/mediacodecdec_common.h > index 0b21129fee..d280236b8e 100644 > --- a/libavcodec/mediacodecdec_common.h > +++ b/libavcodec/mediacodecdec_common.h > @@ -64,7 +64,6 @@ typedef struct MediaCodecDecContext { > int display_width; > int display_height; > > - uint64_t output_buffer_count; > ssize_t current_input_buffer; > > bool delay_flush; > -- > 2.14.2 >
LGTM. -- Matthieu B. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel