# HG changeset patch # User rbultje # Date 1219924858 0 # Node ID aa89bbf3fa482d1c40b3ce01f354e224e5fb5be3 # Parent ca6df1ecb412b989e2da5cec328a633c8b176eb5 Change implementation for ff_data_to_hex(), this is faster. See discussion on mailinglist in "Realmedia patch" thread. diff -r ca6df1ecb412 -r aa89bbf3fa48 utils.c --- 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;