diff options
Diffstat (limited to 'gst-libs')
-rw-r--r-- | gst-libs/gst/codecparsers/gsth264parser.c | 12 | ||||
-rw-r--r-- | gst-libs/gst/codecparsers/nalutils.c | 15 | ||||
-rw-r--r-- | gst-libs/gst/codecparsers/nalutils.h | 1 |
3 files changed, 8 insertions, 20 deletions
diff --git a/gst-libs/gst/codecparsers/gsth264parser.c b/gst-libs/gst/codecparsers/gsth264parser.c index 63312d666..99f083554 100644 --- a/gst-libs/gst/codecparsers/gsth264parser.c +++ b/gst-libs/gst/codecparsers/gsth264parser.c @@ -882,10 +882,14 @@ gst_h264_parser_parse_sei_message (GstH264NalParser * nalparser, res = gst_h264_parser_parse_pic_timing (nalparser, &sei->payload.pic_timing, nr); } else { - /* Just consume payloadSize */ - guint32 i; - for (i = 0; i < payloadSize; i++) - nal_reader_skip_to_next_byte (nr); + /* Just consume payloadSize bytes, which does not account for + emulation prevention bytes */ + guint nbits = payload_size % 8; + while (payload_size > 0) { + nal_reader_skip (nr, nbits); + payload_size -= nbits; + nbits = 8; + } res = GST_H264_PARSER_OK; } diff --git a/gst-libs/gst/codecparsers/nalutils.c b/gst-libs/gst/codecparsers/nalutils.c index 60ec0f3a5..694066d95 100644 --- a/gst-libs/gst/codecparsers/nalutils.c +++ b/gst-libs/gst/codecparsers/nalutils.c @@ -124,21 +124,6 @@ nal_reader_skip (NalReader * nr, guint nbits) return TRUE; } -inline gboolean -nal_reader_skip_to_next_byte (NalReader * nr) -{ - if (nr->bits_in_cache == 0) { - if (G_LIKELY ((nr->size - nr->byte) > 0)) - nr->byte++; - else - return FALSE; - } - - nr->bits_in_cache = 0; - - return TRUE; -} - inline guint nal_reader_get_pos (const NalReader * nr) { diff --git a/gst-libs/gst/codecparsers/nalutils.h b/gst-libs/gst/codecparsers/nalutils.h index 44a0e6089..5d231f22d 100644 --- a/gst-libs/gst/codecparsers/nalutils.h +++ b/gst-libs/gst/codecparsers/nalutils.h @@ -57,7 +57,6 @@ void nal_reader_init (NalReader * nr, const guint8 * data, guint size); gboolean nal_reader_read (NalReader * nr, guint nbits); gboolean nal_reader_skip (NalReader * nr, guint nbits); -gboolean nal_reader_skip_to_next_byte (NalReader * nr); guint nal_reader_get_pos (const NalReader * nr); guint nal_reader_get_remaining (const NalReader * nr); guint nal_reader_get_epb_count (const NalReader * nr); |