From 9dc76185fc0017b8e225ec242de4548baac103fa Mon Sep 17 00:00:00 2001 From: He Junyan Date: Thu, 27 Oct 2022 14:40:49 +0800 Subject: [PATCH] bitwriter: Fix a nal conversion bug when input is not byte aligned. Part-of: --- .../gst-libs/gst/codecparsers/gsth264bitwriter.c | 6 ++++-- .../gst-libs/gst/codecparsers/gsth265bitwriter.c | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gsth264bitwriter.c b/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gsth264bitwriter.c index 4079924d40..7233c1fe9a 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gsth264bitwriter.c +++ b/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gsth264bitwriter.c @@ -1600,8 +1600,10 @@ gst_h264_bit_writer_convert_to_nal (guint nal_prefix_size, gboolean packetized, goto error; if (raw_size % 8) { - if (!nal_writer_put_bits_uint8 (&nw, *(raw_data + raw_size / 8), - raw_size % 8)) + guint8 data = *(raw_data + raw_size / 8); + + if (!nal_writer_put_bits_uint8 (&nw, + data >> (8 - raw_size % 8), raw_size % 8)) goto error; } diff --git a/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gsth265bitwriter.c b/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gsth265bitwriter.c index 7bd5925332..5f8690b8ad 100644 --- a/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gsth265bitwriter.c +++ b/subprojects/gst-plugins-bad/gst-libs/gst/codecparsers/gsth265bitwriter.c @@ -2267,8 +2267,10 @@ gst_h265_bit_writer_convert_to_nal (guint nal_prefix_size, goto error; if (raw_size % 8) { - if (!nal_writer_put_bits_uint8 (&nw, *(raw_data + raw_size / 8), - raw_size % 8)) + guint8 data = *(raw_data + raw_size / 8); + + if (!nal_writer_put_bits_uint8 (&nw, + data >> (8 - raw_size % 8), raw_size % 8)) goto error; }