[vlc-commits] stream_filter: smooth: fix endianness creating smoo box

Francois Cartegnie git at videolan.org
Mon Nov 10 12:59:23 CET 2014


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Mon Nov 10 12:02:14 2014 +0100| [5107980ba879299a5490c640b0c7f90b38f0d506] | committer: Francois Cartegnie

stream_filter: smooth: fix endianness creating smoo box

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=5107980ba879299a5490c640b0c7f90b38f0d506
---

 modules/stream_filter/smooth/downloader.c |   51 +++++++++++++++--------------
 1 file changed, 26 insertions(+), 25 deletions(-)

diff --git a/modules/stream_filter/smooth/downloader.c b/modules/stream_filter/smooth/downloader.c
index 8c83133..8400fc1 100644
--- a/modules/stream_filter/smooth/downloader.c
+++ b/modules/stream_filter/smooth/downloader.c
@@ -344,57 +344,58 @@ static int build_smoo_box( stream_t *s, chunk_t *p_chunk )
     p_chunk->size = i_size;
     uint8_t *smoo_box = p_chunk->data;
 
-    smoo_box[2] = (i_size & 0xff00)>>8;
-    smoo_box[3] = i_size & 0xff;
+    SetWBE( &smoo_box[2], i_size );
     smoo_box[4] = 'u';
     smoo_box[5] = 'u';
     smoo_box[6] = 'i';
     smoo_box[7] = 'd';
 
+    uint32_t *smoo_box32 = (uint32_t *)smoo_box;
     /* UUID is e1da72ba-24d7-43c3-a6a5-1b5759a1a92c */
-    ((uint32_t *)smoo_box)[2] = bswap32( 0xe1da72ba );
-    ((uint32_t *)smoo_box)[3] = bswap32( 0x24d743c3 );
-    ((uint32_t *)smoo_box)[4] = bswap32( 0xa6a51b57 );
-    ((uint32_t *)smoo_box)[5] = bswap32( 0x59a1a92c );
+    SetDWBE( &smoo_box32[2], 0xe1da72ba );
+    SetDWBE( &smoo_box32[3], 0x24d743c3 );
+    SetDWBE( &smoo_box32[4], 0xa6a51b57 );
+    SetDWBE( &smoo_box32[5], 0x59a1a92c );
 
     int i = 0;
     FOREACH_ARRAY( sms_stream_t *sms, p_sys->sms_selected );
     uint8_t *stra_box = smoo_box + i++ * STRA_SIZE;
+    uint16_t *stra_box16 = (uint16_t *)stra_box;
+    uint32_t *stra_box32 = (uint32_t *)stra_box;
+    uint64_t *stra_box64 = (uint64_t *)stra_box;
 
-    stra_box[26] = (STRA_SIZE & 0xff00)>>8;
-    stra_box[27] = STRA_SIZE & 0xff;
+    SetWBE( &stra_box[26], STRA_SIZE );
     stra_box[28] = 'u';
     stra_box[29] = 'u';
     stra_box[30] = 'i';
     stra_box[31] = 'd';
 
     /* UUID is b03ef770-33bd-4bac-96c7-bf25f97e2447 */
-    ((uint32_t *)stra_box)[8] = bswap32( 0xb03ef770 );
-    ((uint32_t *)stra_box)[9] = bswap32( 0x33bd4bac );
-    ((uint32_t *)stra_box)[10] = bswap32( 0x96c7bf25 );
-    ((uint32_t *)stra_box)[11] = bswap32( 0xf97e2447 );
+    SetDWBE( &stra_box32[8], 0xb03ef770 );
+    SetDWBE( &stra_box32[9], 0x33bd4bac );
+    SetDWBE( &stra_box32[10], 0x96c7bf25 );
+    SetDWBE( &stra_box32[11], 0xf97e2447 );
 
     stra_box[48] = sms->type;
     stra_box[49] = 0; /* reserved */
-    stra_box[50] = (sms->id & 0xff00)>>8;
-    stra_box[51] = sms->id & 0xff;
+    SetWBE( &stra_box[50], sms->id );
 
-    ((uint32_t *)stra_box)[13] = bswap32( sms->timescale );
-    ((uint64_t *)stra_box)[7] = bswap64( p_sys->vod_duration );
+    SetDWBE( &stra_box32[13], sms->timescale );
+    SetQWBE( &stra_box64[7], p_sys->vod_duration );
 
     const quality_level_t *qlvl = sms->current_qlvl;
     if ( qlvl )
     {
         FourCC = qlvl->FourCC ? qlvl->FourCC : sms->default_FourCC;
-        ((uint32_t *)stra_box)[16] = bswap32( FourCC );
-        ((uint32_t *)stra_box)[17] = bswap32( qlvl->Bitrate );
-        ((uint32_t *)stra_box)[18] = bswap32( qlvl->MaxWidth );
-        ((uint32_t *)stra_box)[19] = bswap32( qlvl->MaxHeight );
-        ((uint32_t *)stra_box)[20] = bswap32( qlvl->SamplingRate );
-        ((uint32_t *)stra_box)[21] = bswap32( qlvl->Channels );
-        ((uint32_t *)stra_box)[22] = bswap32( qlvl->BitsPerSample );
-        ((uint32_t *)stra_box)[23] = bswap32( qlvl->AudioTag );
-        ((uint16_t *)stra_box)[48] = bswap16( qlvl->nBlockAlign );
+        SetDWBE( &stra_box32[16], FourCC );
+        SetDWBE( &stra_box32[17], qlvl->Bitrate );
+        SetDWBE( &stra_box32[18], qlvl->MaxWidth );
+        SetDWBE( &stra_box32[19], qlvl->MaxHeight );
+        SetDWBE( &stra_box32[20], qlvl->SamplingRate );
+        SetDWBE( &stra_box32[21], qlvl->Channels );
+        SetDWBE( &stra_box32[22], qlvl->BitsPerSample );
+        SetDWBE( &stra_box32[23], qlvl->AudioTag );
+        SetWBE( &stra_box16[48], qlvl->nBlockAlign );
 
         if( !qlvl->CodecPrivateData )
             continue;



More information about the vlc-commits mailing list