mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-29 02:42:21 +00:00
avcodec/mediacodecdec: warn when input buffers are not configured with proper size
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 <aman@tmm1.net>
This commit is contained in:
parent
e26fb6a714
commit
8a3623e2fb
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user