--- /dev/null
+diff -ruN a/libavformat/mpegenc.c b/libavformat/mpegenc.c
+--- a/libavformat/mpegenc.c 2020-07-10 09:26:57.257744879 -0600
++++ b/libavformat/mpegenc.c 2020-07-10 09:27:14.528745779 -0600
+@@ -976,9 +976,9 @@
+ PacketDesc *pkt_desc;
+
+ while ((pkt_desc = stream->predecode_packet) &&
++ pkt_desc != stream->premux_packet &&
+ scr > pkt_desc->dts) { // FIXME: > vs >=
+- if (stream->buffer_index < pkt_desc->size ||
+- stream->predecode_packet == stream->premux_packet) {
++ if (stream->buffer_index < pkt_desc->size) {
+ av_log(ctx, AV_LOG_ERROR,
+ "buffer underflow st=%d bufi=%d size=%d\n",
+ i, stream->buffer_index, pkt_desc->size);