diff utils.c @ 3789:aa89bbf3fa48 libavformat

Change implementation for ff_data_to_hex(), this is faster. See discussion on mailinglist in "Realmedia patch" thread.
author rbultje
date Thu, 28 Aug 2008 12:00:58 +0000
parents ca6df1ecb412
children 6a1d266be2fc
line wrap: on
line diff
--- a/utils.c	Wed Aug 27 23:43:28 2008 +0000
+++ b/utils.c	Thu Aug 28 12:00:58 2008 +0000
@@ -3213,22 +3213,17 @@
     }
 }
 
-static void digit_to_char(char *dst, uint8_t src)
-{
-    if (src < 10) {
-        *dst = '0' + src;
-    } else {
-        *dst = 'A' + src - 10;
-    }
-}
-
 char *ff_data_to_hex(char *buff, const uint8_t *src, int s)
 {
     int i;
+    static const char hex_table[16] = { '0', '1', '2', '3',
+                                        '4', '5', '6', '7',
+                                        '8', '9', 'A', 'B',
+                                        'C', 'D', 'E', 'F' };
 
     for(i = 0; i < s; i++) {
-        digit_to_char(buff + 2 * i, src[i] >> 4);
-        digit_to_char(buff + 2 * i + 1, src[i] & 0xF);
+        buff[i * 2]     = hex_table[src[i] >> 4];
+        buff[i * 2 + 1] = hex_table[src[i] & 0xF];
     }
 
     return buff;