h264parser: Remove un-needed checks and inline some functions
authorEdward Hervey <edward.hervey@collabora.co.uk>
Tue, 5 Jun 2012 15:57:41 +0000 (17:57 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Wed, 6 Jun 2012 08:33:18 +0000 (10:33 +0200)
val and nr always exist (&nr, &value)
bits is always called smaller than the width

Makes parsing 30% faster

gst-libs/gst/codecparsers/gsth264parser.c

index 00c151799648b7d58c11b422132fffe9ae35cf9b..9dbfe46b98282a0e4cf051965775c5fe155b01ba 100644 (file)
@@ -188,7 +188,7 @@ nal_reader_init (NalReader * nr, const guint8 * data, guint size)
   nr->cache = 0xff;
 }
 
-static gboolean
+static inline gboolean
 nal_reader_read (NalReader * nr, guint nbits)
 {
   if (G_UNLIKELY (nr->byte * 8 + (nbits - nr->bits_in_cache) > nr->size * 8)) {
@@ -227,8 +227,6 @@ nal_reader_read (NalReader * nr, guint nbits)
 static inline gboolean
 nal_reader_skip (NalReader * nr, guint nbits)
 {
-  g_return_val_if_fail (nr != NULL, FALSE);
-
   if (G_UNLIKELY (!nal_reader_read (nr, nbits)))
     return FALSE;
 
@@ -240,8 +238,6 @@ nal_reader_skip (NalReader * nr, guint nbits)
 static inline gboolean
 nal_reader_skip_to_byte (NalReader * nr)
 {
-  g_return_val_if_fail (nr != NULL, FALSE);
-
   if (nr->bits_in_cache == 0) {
     if (G_LIKELY ((nr->size - nr->byte) > 0))
       nr->byte++;
@@ -278,10 +274,6 @@ nal_reader_get_bits_uint##bits (NalReader *nr, guint##bits *val, guint nbits) \
 { \
   guint shift; \
   \
-  g_return_val_if_fail (nr != NULL, FALSE); \
-  g_return_val_if_fail (val != NULL, FALSE); \
-  g_return_val_if_fail (nbits <= bits, FALSE); \
-  \
   if (!nal_reader_read (nr, nbits)) \
     return FALSE; \
   \
@@ -309,7 +301,6 @@ nal_reader_peek_bits_uint##bits (const NalReader *nr, guint##bits *val, guint nb
 { \
   NalReader tmp; \
   \
-  g_return_val_if_fail (nr != NULL, FALSE); \
   tmp = *nr; \
   return nal_reader_get_bits_uint##bits (&tmp, val, nbits); \
 }
@@ -345,7 +336,7 @@ nal_reader_get_ue (NalReader * nr, guint32 * val)
   return TRUE;
 }
 
-static gboolean
+static inline gboolean
 nal_reader_get_se (NalReader * nr, gint32 * val)
 {
   guint32 value;