From 8d424cf1c77f53e3c556eff27811d6ffa59ed9db Mon Sep 17 00:00:00 2001 From: jp9000 Date: Thu, 28 Sep 2017 06:15:58 -0700 Subject: [PATCH] obs-outputs: Fix FLV muxing bug The end of an FLV tag would contain the size of the tag, but the code was erroneously including the end size value in addition, which it's not supposed to do normally. --- plugins/obs-outputs/flv-mux.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/obs-outputs/flv-mux.c b/plugins/obs-outputs/flv-mux.c index 6d4063fb5..6183e5a62 100644 --- a/plugins/obs-outputs/flv-mux.c +++ b/plugins/obs-outputs/flv-mux.c @@ -164,7 +164,7 @@ bool flv_meta_data(obs_output_t *context, uint8_t **output, size_t *size, s_write(&s, meta_data, meta_data_size); - s_wb32(&s, (uint32_t)serializer_get_pos(&s) - start_pos + 4 - 1); + s_wb32(&s, (uint32_t)serializer_get_pos(&s) - start_pos - 1); *output = data.bytes.array; *size = data.bytes.num; @@ -209,7 +209,7 @@ static void flv_video(struct serializer *s, int32_t dts_offset, s_write(s, packet->data, packet->size); /* write tag size (starting byte doesn't count) */ - s_wb32(s, (uint32_t)serializer_get_pos(s) + 4 - 1); + s_wb32(s, (uint32_t)serializer_get_pos(s) - 1); } static void flv_audio(struct serializer *s, int32_t dts_offset, @@ -242,7 +242,7 @@ static void flv_audio(struct serializer *s, int32_t dts_offset, s_write(s, packet->data, packet->size); /* write tag size (starting byte doesn't count) */ - s_wb32(s, (uint32_t)serializer_get_pos(s) + 4 - 1); + s_wb32(s, (uint32_t)serializer_get_pos(s) - 1); } void flv_packet_mux(struct encoder_packet *packet, int32_t dts_offset,