[vlc-commits] format: remove endianess conversions

Rémi Denis-Courmont git at videolan.org
Thu Nov 15 22:25:49 CET 2012


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Thu Nov 15 23:23:33 2012 +0200| [2df0519d7c45d9209fdf5d521000106409e21218] | committer: Rémi Denis-Courmont

format: remove endianess conversions

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

 modules/audio_filter/converter/format.c |   88 +------------------------------
 1 file changed, 2 insertions(+), 86 deletions(-)

diff --git a/modules/audio_filter/converter/format.c b/modules/audio_filter/converter/format.c
index 862d073..3ff3f1d 100644
--- a/modules/audio_filter/converter/format.c
+++ b/modules/audio_filter/converter/format.c
@@ -61,19 +61,15 @@ static block_t *Filter(filter_t *, block_t *);
 
 typedef block_t *(*cvt_direct_t)(filter_t *, block_t *);
 typedef void (*cvt_indirect_t)(block_t *, const block_t *);
-typedef void (*cvt_swap_t)(block_t *);
 
 struct filter_sys_t {
-    cvt_swap_t     pre;
     cvt_direct_t   directs[2];
     cvt_indirect_t indirects[2];
     unsigned       indirects_ratio[2][2];
-    cvt_swap_t     post;
 };
 
 static cvt_direct_t FindDirect(vlc_fourcc_t src, vlc_fourcc_t dst);
 static cvt_indirect_t FindIndirect(vlc_fourcc_t src, vlc_fourcc_t dst);
-static cvt_swap_t FindSwap(vlc_fourcc_t *dst, vlc_fourcc_t src);
 
 /* */
 static int Open(vlc_object_t *object)
@@ -101,24 +97,13 @@ static int Open(vlc_object_t *object)
         return VLC_ENOMEM;
 
     /* Find the cost minimal conversion */
-    for (unsigned mask = 0; mask <= 0x07; mask++) {
+    for (unsigned mask = 0; mask <= 0x01; mask ++) {
         memset(sys, 0, sizeof(*sys));
 
         vlc_fourcc_t fsrc = src->i_codec;
         vlc_fourcc_t fdst = dst->i_codec;
 
-        if (mask & 0x01) {
-            sys->pre = FindSwap(&fsrc, fsrc);
-            if (!sys->pre)
-                continue;
-        }
-        if (mask & 0x02) {
-            sys->post = FindSwap(&fdst, fdst);
-            if (!sys->post)
-                continue;
-        }
-
-        const bool has_middle = mask & 0x04;
+        const bool has_middle = mask & 0x01;
         for (int i = 0; fsrc != fdst && i < 1 + has_middle; i++) {
             /* XXX Hardcoded middle format: native 16 bits */
             vlc_fourcc_t ftarget = has_middle && i == 0 ? VLC_CODEC_S16N : fdst;
@@ -166,9 +151,6 @@ static block_t *Filter(filter_t *filter, block_t *block)
 {
     filter_sys_t *sys = filter->p_sys;
 
-    if (sys->pre)
-        sys->pre(block);
-
     for (int i = 0; i < 2; i++) {
         if (sys->directs[i]) {
             block = sys->directs[i](filter, block);
@@ -192,8 +174,6 @@ static block_t *Filter(filter_t *filter, block_t *block)
         }
     }
 
-    if (sys->post)
-        sys->post(block);
     return block;
 }
 
@@ -480,42 +460,6 @@ static void S24toFl32(block_t *bdst, const block_t *bsrc)
 }
 
 /* */
-static void Swap64(block_t *b)
-{
-    uint64_t *data = (uint64_t *)b->p_buffer;
-    for (size_t i = 0; i < b->i_buffer / 8; i++) {
-        *data = bswap64 (*data);
-        data++;
-    }
-}
-static void Swap32(block_t *b)
-{
-    uint32_t *data = (uint32_t *)b->p_buffer;
-    for (size_t i = 0; i < b->i_buffer / 4; i++) {
-        *data = bswap32 (*data);
-        data++;
-    }
-}
-static void Swap24(block_t *b)
-{
-    uint8_t *data = (uint8_t *)b->p_buffer;
-    for (size_t i = 0; i < b->i_buffer / 3; i++) {
-        uint8_t buf = data[0];
-        data[0] = data[2];
-        data[2] = buf;
-        data += 3;
-    }
-}
-static void Swap16(block_t *b)
-{
-    uint16_t *data = (uint16_t *)b->p_buffer;
-    for (size_t i = 0; i < b->i_buffer / 2; i++) {
-        *data = bswap16 (*data);
-        data++;
-    }
-}
-
-/* */
 static const struct {
     vlc_fourcc_t src;
     vlc_fourcc_t dst;
@@ -561,21 +505,6 @@ static const struct {
     { VLC_CODEC_U8,   VLC_CODEC_S16N, U8toS16 },
     { 0, 0, NULL }
 };
-static const struct {
-    vlc_fourcc_t a;
-    vlc_fourcc_t b;
-    cvt_swap_t   convert;
-} cvt_swaps[] = {
-    { VLC_CODEC_F64L, VLC_CODEC_F64B, Swap64 },
-    { VLC_CODEC_F32L, VLC_CODEC_F32B, Swap32 },
-    { VLC_CODEC_S32L, VLC_CODEC_S32B, Swap32 },
-    { VLC_CODEC_U32L, VLC_CODEC_U32B, Swap32 },
-    { VLC_CODEC_S24L, VLC_CODEC_S24B, Swap24 },
-    { VLC_CODEC_U24L, VLC_CODEC_U24B, Swap24 },
-    { VLC_CODEC_S16L, VLC_CODEC_S16B, Swap16 },
-    { VLC_CODEC_U16L, VLC_CODEC_U16B, Swap16 },
-    { 0, 0, NULL }
-};
 
 static cvt_direct_t FindDirect(vlc_fourcc_t src, vlc_fourcc_t dst)
 {
@@ -595,17 +524,4 @@ static cvt_indirect_t FindIndirect(vlc_fourcc_t src, vlc_fourcc_t dst)
     }
     return NULL;
 }
-static cvt_swap_t FindSwap(vlc_fourcc_t *dst, vlc_fourcc_t src)
-{
-    for (int i = 0; cvt_swaps[i].convert; i++) {
-        if (cvt_swaps[i].a == src) {
-            *dst = cvt_swaps[i].b;
-            return cvt_swaps[i].convert;
-        } else if (cvt_swaps[i].b == src) {
-            *dst = cvt_swaps[i].a;
-            return cvt_swaps[i].convert;
-        }
-    }
-    return NULL;
-}
 



More information about the vlc-commits mailing list