alsasink: endianess fix for iec61937

if format supported by driver is S16_LE, data should be swapped only for big endian systems
https://bugzilla.gnome.org/show_bug.cgi?id=757258

Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
diff --git a/ext/alsa/gstalsasink.c b/ext/alsa/gstalsasink.c
index e1bb7d7..282e91d 100644
--- a/ext/alsa/gstalsasink.c
+++ b/ext/alsa/gstalsasink.c
@@ -451,10 +451,12 @@
     /* Try to use big endian first else fallback to le and swap bytes */
     if (snd_pcm_hw_params_set_format (alsa->handle, params, alsa->format) < 0) {
       alsa->format = SND_PCM_FORMAT_S16_LE;
-      alsa->need_swap = TRUE;
+      /* swap needed if system is big endian */
+      alsa->need_swap = (G_BYTE_ORDER == G_BIG_ENDIAN);
       GST_DEBUG_OBJECT (alsa, "falling back to little endian with swapping");
     } else {
-      alsa->need_swap = FALSE;
+      /* swap needed if system is little endian */
+      alsa->need_swap = (G_BYTE_ORDER != G_BIG_ENDIAN);
     }
   }
   CHECK (snd_pcm_hw_params_set_format (alsa->handle, params, alsa->format),