summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorPaul B Mahol <onemda@gmail.com>2021-09-05 11:36:50 +0200
committerPaul B Mahol <onemda@gmail.com>2021-09-05 11:44:50 +0200
commit036d94da43d09d3e9c312b7c3f6707212de804df (patch)
tree83e85809da7aff15b9a444a1066c2b39b83228c6 /libavcodec
parent589cd58c858bb6b5c03cfcdb55cb8aa8acedefd7 (diff)
avcodec/mlpenc: stop returning packets with no data
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/mlpenc.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/libavcodec/mlpenc.c b/libavcodec/mlpenc.c
index 50662de09c..7db28f518a 100644
--- a/libavcodec/mlpenc.c
+++ b/libavcodec/mlpenc.c
@@ -1178,8 +1178,8 @@ static void write_frame_headers(MLPEncodeContext *ctx, uint8_t *frame_header,
}
/** Writes an entire access unit to the bitstream. */
-static unsigned int write_access_unit(MLPEncodeContext *ctx, uint8_t *buf,
- int buf_size, int restart_frame)
+static int write_access_unit(MLPEncodeContext *ctx, uint8_t *buf,
+ int buf_size, int restart_frame)
{
uint16_t substream_data_len[MAX_SUBSTREAMS];
uint8_t *buf1, *buf0 = buf;
@@ -2183,7 +2183,7 @@ static int mlp_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
const AVFrame *frame, int *got_packet)
{
MLPEncodeContext *ctx = avctx->priv_data;
- unsigned int bytes_written = 0;
+ int bytes_written = 0;
int restart_frame, ret;
uint8_t *data;
@@ -2316,8 +2316,14 @@ no_data_left:
}
if (!frame)
avctx->frame_number++;
- avpkt->size = bytes_written;
- *got_packet = 1;
+
+ if (bytes_written > 0) {
+ avpkt->size = bytes_written;
+ *got_packet = 1;
+ } else {
+ *got_packet = 0;
+ }
+
return 0;
}