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;
}
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)
{
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);