Lines Matching refs:nr
68 nal_reader_init (NalReader * nr, const guint8 * data, guint size) in nal_reader_init() argument
70 nr->data = data; in nal_reader_init()
71 nr->size = size; in nal_reader_init()
72 nr->n_epb = 0; in nal_reader_init()
74 nr->byte = 0; in nal_reader_init()
75 nr->bits_in_cache = 0; in nal_reader_init()
77 nr->first_byte = 0xff; in nal_reader_init()
78 nr->epb_cache = 0xff; in nal_reader_init()
79 nr->cache = 0xff; in nal_reader_init()
83 nal_reader_read (NalReader * nr, guint nbits) in nal_reader_read() argument
85 if (G_UNLIKELY (nr->byte * 8 + (nbits - nr->bits_in_cache) > nr->size * 8)) { in nal_reader_read()
87 "bits %u", nbits, nr->bits_in_cache, nr->byte * 8, nr->size * 8); in nal_reader_read()
91 while (nr->bits_in_cache < nbits) { in nal_reader_read()
95 if (G_UNLIKELY (nr->byte >= nr->size)) in nal_reader_read()
98 byte = nr->data[nr->byte++]; in nal_reader_read()
99 nr->epb_cache = (nr->epb_cache << 8) | byte; in nal_reader_read()
102 if ((nr->epb_cache & 0xffffff) == 0x3) { in nal_reader_read()
103 nr->n_epb++; in nal_reader_read()
106 nr->cache = (nr->cache << 8) | nr->first_byte; in nal_reader_read()
107 nr->first_byte = byte; in nal_reader_read()
108 nr->bits_in_cache += 8; in nal_reader_read()
117 nal_reader_skip (NalReader * nr, guint nbits) in nal_reader_skip() argument
119 g_assert (nbits <= 8 * sizeof (nr->cache)); in nal_reader_skip()
121 if (G_UNLIKELY (!nal_reader_read (nr, nbits))) in nal_reader_skip()
124 nr->bits_in_cache -= nbits; in nal_reader_skip()
131 nal_reader_skip_long (NalReader * nr, guint nbits) in nal_reader_skip_long() argument
134 const guint skip_size = 4 * sizeof (nr->cache); in nal_reader_skip_long()
139 if (!nal_reader_skip (nr, nbits)) in nal_reader_skip_long()
148 nal_reader_get_pos (const NalReader * nr) in nal_reader_get_pos() argument
150 return nr->byte * 8 - nr->bits_in_cache; in nal_reader_get_pos()
154 nal_reader_get_remaining (const NalReader * nr) in nal_reader_get_remaining() argument
156 return (nr->size - nr->byte) * 8 + nr->bits_in_cache; in nal_reader_get_remaining()
160 nal_reader_get_epb_count (const NalReader * nr) in nal_reader_get_epb_count() argument
162 return nr->n_epb; in nal_reader_get_epb_count()
167 nal_reader_get_bits_uint##bits (NalReader *nr, guint##bits *val, guint nbits) \
171 if (!nal_reader_read (nr, nbits)) \
175 shift = nr->bits_in_cache - nbits; \
176 *val = nr->first_byte >> shift; \
178 *val |= nr->cache << (8 - shift); \
183 nr->bits_in_cache = shift; \
194 nal_reader_peek_bits_uint##bits (const NalReader *nr, guint##bits *val, guint nbits) \
198 tmp = *nr; \
205 nal_reader_get_ue (NalReader * nr, guint32 * val) in nal_reader_get_ue() argument
211 if (G_UNLIKELY (!nal_reader_get_bits_uint8 (nr, &bit, 1))) in nal_reader_get_ue()
216 if (G_UNLIKELY (!nal_reader_get_bits_uint8 (nr, &bit, 1))) in nal_reader_get_ue()
223 if (G_UNLIKELY (!nal_reader_get_bits_uint32 (nr, &value, i))) in nal_reader_get_ue()
232 nal_reader_get_se (NalReader * nr, gint32 * val) in nal_reader_get_se() argument
236 if (G_UNLIKELY (!nal_reader_get_ue (nr, &value))) in nal_reader_get_se()
248 nal_reader_is_byte_aligned (NalReader * nr) in nal_reader_is_byte_aligned() argument
250 if (nr->bits_in_cache != 0) in nal_reader_is_byte_aligned()
256 nal_reader_has_more_data (NalReader * nr) in nal_reader_has_more_data() argument
262 remaining = nal_reader_get_remaining (nr); in nal_reader_has_more_data()
266 nr_tmp = *nr; in nal_reader_has_more_data()
267 nr = &nr_tmp; in nal_reader_has_more_data()
279 if (!nal_reader_get_bits_uint8 (nr, &rbsp_stop_one_bit, 1)) in nal_reader_has_more_data()
286 if (!nal_reader_get_bits_uint8 (nr, &zero_bits, nbits)) in nal_reader_has_more_data()