|
|
@@ -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); |
|
|
|