mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-28 12:32:17 +02: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) {
|
if (ret >= 0) {
|
||||||
s->buffered_pkt.size -= ret;
|
s->buffered_pkt.size -= ret;
|
||||||
s->buffered_pkt.data += ret;
|
s->buffered_pkt.data += ret;
|
||||||
if (s->buffered_pkt.size <= 0)
|
if (s->buffered_pkt.size <= 0) {
|
||||||
av_packet_unref(&s->buffered_pkt);
|
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)) {
|
} else if (ret < 0 && ret != AVERROR(EAGAIN)) {
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user