aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/encoder/encoder.c
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2026-08-05 14:56:59 +0200
committerdec05eba <dec05eba@protonmail.com>2026-08-05 14:56:59 +0200
commite6c1cf0ec1ce220912a6ef6b6fac5ba9b2e98276 (patch)
tree5e5636b9bc485a0efc37af6b03fccc99401d671b /src/encoder/encoder.c
parentfbc31a9561d16418226c0efa65e2a73923516dbd (diff)
workaround ffmpeg hybrid_fragmented bug when no packets have been recorded yet
Diffstat (limited to 'src/encoder/encoder.c')
-rw-r--r--src/encoder/encoder.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/encoder/encoder.c b/src/encoder/encoder.c
index 2df4666..3aebb7a 100644
--- a/src/encoder/encoder.c
+++ b/src/encoder/encoder.c
@@ -1,6 +1,7 @@
#include "../../include/encoder/encoder.h"
#include "../../include/log.h"
#include "../../include/utils.h"
+#include "../../include/ffmpeg_utils.h"
#include <string.h>
#include <stdio.h>
@@ -152,6 +153,8 @@ void gsr_encoder_receive_packets(gsr_encoder *self, AVCodecContext *codec_contex
// TODO: Is av_interleaved_write_frame needed?. Answer: might be needed for mkv but dont use it! it causes frames to be inconsistent, skipping frames and duplicating frames.
// TODO: av_interleaved_write_frame might be needed for cfr, or always for flv
const int ret = av_write_frame(recording_destination->format_context, av_packet);
+ if(ret >= 0)
+ gsr_av_format_context_mark_packet_written(recording_destination->format_context);
if(ret < 0) {
char error_buffer[AV_ERROR_MAX_STRING_SIZE];
if(av_strerror(ret, error_buffer, sizeof(error_buffer)) < 0)