From 18770dac2e560c88daa3ca9944917be561c3548f Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Sun, 30 Jan 2011 00:58:45 +0000 Subject: Use __builtin_constant_p() to select the best byteswapping method: constant or target optimized. Same macro can then be used for constant values and inits as well as non-constant. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29171 a1c6a512-1295-4272-9138-f99709370657 --- apps/codecs/aiff_enc.c | 13 ++++++++----- apps/codecs/libffmpegFLAC/shndec.c | 2 +- apps/codecs/wav_enc.c | 6 +++--- apps/codecs/wavpack_enc.c | 6 +++--- 4 files changed, 15 insertions(+), 12 deletions(-) (limited to 'apps') diff --git a/apps/codecs/aiff_enc.c b/apps/codecs/aiff_enc.c index cfbc95196f..2d55dff755 100644 --- a/apps/codecs/aiff_enc.c +++ b/apps/codecs/aiff_enc.c @@ -56,15 +56,15 @@ struct aiff_header aiff_header = 0, /* form_size (*) */ { 'A', 'I', 'F', 'F' }, /* aiff_id */ { 'C', 'O', 'M', 'M' }, /* comm_id */ - H_TO_BE32(18), /* comm_size */ + htobe32(18), /* comm_size */ 0, /* num_channels (*) */ 0, /* num_sample_frames (*) */ - H_TO_BE16(PCM_DEPTH_BITS), /* sample_size */ + htobe16(PCM_DEPTH_BITS), /* sample_size */ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, /* sample_rate (*) */ { 'S', 'S', 'N', 'D' }, /* ssnd_id */ 0, /* ssnd_size (*) */ - H_TO_BE32(0), /* offset */ - H_TO_BE32(0), /* block_size */ + htobe32(0), /* offset */ + htobe32(0), /* block_size */ }; /* (*) updated when finalizing file */ @@ -96,7 +96,10 @@ STATICIRAM void uint32_h_to_ieee754_extended_be(uint8_t f[10], uint32_t l) f[1] = (uint8_t)exp; /* mantissa is value left justified with most significant non-zero bit stored in bit 63 - bits 0-63 */ - *(uint32_t *)&f[2] = htobe32(l); + f[2] = (uint8_t)(l >> 24); + f[3] = (uint8_t)(l >> 16); + f[4] = (uint8_t)(l >> 8); + f[5] = (uint8_t)(l >> 0); } /* uint32_h_to_ieee754_extended_be */ /* called version often - inline */ diff --git a/apps/codecs/libffmpegFLAC/shndec.c b/apps/codecs/libffmpegFLAC/shndec.c index 78914f6252..40e7211b87 100644 --- a/apps/codecs/libffmpegFLAC/shndec.c +++ b/apps/codecs/libffmpegFLAC/shndec.c @@ -60,7 +60,7 @@ #define get_le32(gb) bswap_32(get_bits_long(gb, 32)) /* converts fourcc string to int */ -static int ff_get_fourcc(const char *s){ +static unsigned int ff_get_fourcc(const char *s){ //assert( strlen(s)==4 ); return (s[0]) + (s[1]<<8) + (s[2]<<16) + (s[3]<<24); } diff --git a/apps/codecs/wav_enc.c b/apps/codecs/wav_enc.c index b11c3a2e99..193181d825 100644 --- a/apps/codecs/wav_enc.c +++ b/apps/codecs/wav_enc.c @@ -71,14 +71,14 @@ static const struct riff_header riff_header = /* format header */ { 'W', 'A', 'V', 'E' }, /* format */ { 'f', 'm', 't', ' ' }, /* format_id */ - H_TO_LE32(16), /* format_size */ + htole32(16), /* format_size */ /* format data */ - H_TO_LE16(1), /* audio_format */ + htole16(1), /* audio_format */ 0, /* num_channels (*) */ 0, /* sample_rate (*) */ 0, /* byte_rate (*) */ 0, /* block_align (*) */ - H_TO_LE16(PCM_DEPTH_BITS), /* bits_per_sample */ + htole16(PCM_DEPTH_BITS), /* bits_per_sample */ /* data header */ { 'd', 'a', 't', 'a' }, /* data_id */ 0 /* data_size (*) */ diff --git a/apps/codecs/wavpack_enc.c b/apps/codecs/wavpack_enc.c index 652a320546..66263cf1a1 100644 --- a/apps/codecs/wavpack_enc.c +++ b/apps/codecs/wavpack_enc.c @@ -85,14 +85,14 @@ static const struct riff_header riff_header = /* format header */ { 'W', 'A', 'V', 'E' }, /* format */ { 'f', 'm', 't', ' ' }, /* format_id */ - H_TO_LE32(16), /* format_size */ + htole32(16), /* format_size */ /* format data */ - H_TO_LE16(1), /* audio_format */ + htole16(1), /* audio_format */ 0, /* num_channels (*) */ 0, /* sample_rate (*) */ 0, /* byte_rate (*) */ 0, /* block_align (*) */ - H_TO_LE16(PCM_DEPTH_BITS), /* bits_per_sample */ + htole16(PCM_DEPTH_BITS), /* bits_per_sample */ /* data header */ { 'd', 'a', 't', 'a' }, /* data_id */ 0 /* data_size (*) */ -- cgit v1.2.3