diff options
author | sfan5 <sfan5@live.de> | 2023-07-17 20:16:22 +0200 |
---|---|---|
committer | sfan5 <sfan5@live.de> | 2023-07-19 13:01:08 +0200 |
commit | d7ef91fecdd57e581f4b32451b926be982c4868d (patch) | |
tree | ccd813526374576e29f067635253a94ec5d4424c /video | |
parent | 608b430b56983c7dfacc59d75ed147e91f68a4ef (diff) | |
download | mpv-d7ef91fecdd57e581f4b32451b926be982c4868d.tar.bz2 mpv-d7ef91fecdd57e581f4b32451b926be982c4868d.tar.xz |
image_writer: remove duplicate packet writing code
Diffstat (limited to 'video')
-rw-r--r-- | video/image_writer.c | 33 |
1 files changed, 4 insertions, 29 deletions
diff --git a/video/image_writer.c b/video/image_writer.c index 8cdd5e98ef..9f76bd3008 100644 --- a/video/image_writer.c +++ b/video/image_writer.c @@ -474,6 +474,9 @@ static bool write_avif(struct image_writer_ctx *ctx, mp_image_t *image, MP_ERR(ctx, "Error sending frame\n"); goto free_data; } + ret = avcodec_send_frame(avctx, NULL); // send EOF + if (ret < 0) + goto free_data; int pts = 0; log_side_data(ctx, avctx->coded_side_data, avctx->nb_coded_side_data); @@ -485,35 +488,7 @@ static bool write_avif(struct image_writer_ctx *ctx, mp_image_t *image, MP_ERR(ctx, "Error receiving packet\n"); goto free_data; } - pkt->pts = ++pts; - pkt->dts = pts; - pkt->stream_index = stream->index; - log_side_data(ctx, pkt->side_data, pkt->side_data_elems); - - ret = av_write_frame(fmtctx, pkt); - if (ret < 0) { - MP_ERR(ctx, "Error writing frame\n"); - goto free_data; - } - av_packet_unref(pkt); - } - - ret = avcodec_send_frame(avctx, NULL); - if (ret < 0) { - MP_ERR(ctx, "Error sending flushing frame\n"); - goto free_data; - } - - while (ret >= 0) { - ret = avcodec_receive_packet(avctx, pkt); - if (ret == AVERROR_EOF) - break; - if (ret != 0) { - MP_ERR(ctx, "Error receiving packet\n"); - goto free_data; - } - pkt->pts = ++pts; - pkt->dts = pts; + pkt->dts = pkt->pts = ++pts; pkt->stream_index = stream->index; log_side_data(ctx, pkt->side_data, pkt->side_data_elems); |