[FFmpeg-cvslog] r15006 - trunk/libavformat/utils.c

rbultje subversion
Thu Aug 28 14:00:58 CEST 2008


Author: rbultje
Date: Thu Aug 28 14:00:58 2008
New Revision: 15006

Log:
Change implementation for ff_data_to_hex(), this is faster. See discussion on
mailinglist in "Realmedia patch" thread.



Modified:
   trunk/libavformat/utils.c

Modified: trunk/libavformat/utils.c
==============================================================================
--- trunk/libavformat/utils.c	(original)
+++ trunk/libavformat/utils.c	Thu Aug 28 14:00:58 2008
@@ -3213,22 +3213,17 @@ void url_split(char *proto, int proto_si
     }
 }
 
-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;




More information about the ffmpeg-cvslog mailing list