summaryrefslogtreecommitdiffstats
path: root/video
diff options
context:
space:
mode:
authorsfan5 <sfan5@live.de>2023-07-17 20:16:22 +0200
committersfan5 <sfan5@live.de>2023-07-19 13:01:08 +0200
commitd7ef91fecdd57e581f4b32451b926be982c4868d (patch)
treeccd813526374576e29f067635253a94ec5d4424c /video
parent608b430b56983c7dfacc59d75ed147e91f68a4ef (diff)
downloadmpv-d7ef91fecdd57e581f4b32451b926be982c4868d.tar.bz2
mpv-d7ef91fecdd57e581f4b32451b926be982c4868d.tar.xz
image_writer: remove duplicate packet writing code
Diffstat (limited to 'video')
-rw-r--r--video/image_writer.c33
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);