On Thu, Sep 05, 2019 at 11:27:31AM -0700, Aman Gupta wrote:
> From: Aman Gupta <a...@tmm1.net>
> 
> In rare circumstances, if the codec is not configured with the
> proper parameters the input buffers can be allocated with a size
> that's too small to hold an individual packet. Since MediaCodec
> expects exactly one incoming buffer with a given PTS, it is not
> valid to split data for a given PTS across two input buffers.
> 
> See 
> https://developer.android.com/reference/android/media/MediaCodec#data-processing:
> 
>   > Do not submit multiple input buffers with the same timestamp
> 
> Signed-off-by: Aman Gupta <a...@tmm1.net>
> ---
>  libavcodec/mediacodecdec.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/libavcodec/mediacodecdec.c b/libavcodec/mediacodecdec.c
> index e353e34bd5..f5771bffb1 100644
> --- a/libavcodec/mediacodecdec.c
> +++ b/libavcodec/mediacodecdec.c
> @@ -440,8 +440,13 @@ static int mediacodec_receive_frame(AVCodecContext 
> *avctx, AVFrame *frame)
>              if (ret >= 0) {
>                  s->buffered_pkt.size -= ret;
>                  s->buffered_pkt.data += ret;
> -                if (s->buffered_pkt.size <= 0)
> +                if (s->buffered_pkt.size <= 0) {
>                      av_packet_unref(&s->buffered_pkt);
> +                } else {
> +                    av_log(avctx, AV_LOG_WARNING,
> +                           "could not send entire packet in single input 
> buffer (%d < %d)\n",
> +                           ret, s->buffered_pkt.size+ret);
> +                }
>              } else if (ret < 0 && ret != AVERROR(EAGAIN)) {
>                  return ret;
>              }
> -- 
> 2.20.1
> 

The patch itself looks good to me. We should probably simplifies the
mediacodec_dec_send() function to not try to split the input pkt into
multiple MediaCodec buffers. I will send a patch to do that.

-- 
Matthieu B.
_______________________________________________
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".

Reply via email to