Bug 777696: Fix gstreamer backend on big endian architectures. r=doublec
--- a/content/media/gstreamer/nsGStreamerReader.cpp
+++ b/content/media/gstreamer/nsGStreamerReader.cpp
@@ -127,20 +127,28 @@ nsresult nsGStreamerReader::Init(nsBuilt
GstPad *sinkpad = gst_element_get_pad(GST_ELEMENT(mVideoAppSink), "sink");
gst_pad_add_event_probe(sinkpad,
G_CALLBACK(&nsGStreamerReader::EventProbeCb), this);
gst_object_unref(sinkpad);
mAudioSink = gst_parse_bin_from_description("capsfilter name=filter ! "
#ifdef MOZ_SAMPLE_TYPE_FLOAT32
"appsink name=audiosink sync=true caps=audio/x-raw-float,"
+#ifdef IS_LITTLE_ENDIAN
"channels={1,2},rate=44100,width=32,endianness=1234", TRUE, NULL);
#else
+ "channels={1,2},rate=44100,width=32,endianness=4321", TRUE, NULL);
+#endif
+#else
"appsink name=audiosink sync=true caps=audio/x-raw-int,"
+#ifdef IS_LITTLE_ENDIAN
"channels={1,2},rate=48000,width=16,endianness=1234", TRUE, NULL);
+#else
+ "channels={1,2},rate=48000,width=16,endianness=4321", TRUE, NULL);
+#endif
#endif
mAudioAppSink = GST_APP_SINK(gst_bin_get_by_name(GST_BIN(mAudioSink),
"audiosink"));
gst_app_sink_set_callbacks(mAudioAppSink, &mSinkCallbacks,
(gpointer) this, NULL);
sinkpad = gst_element_get_pad(GST_ELEMENT(mAudioAppSink), "sink");
gst_pad_add_event_probe(sinkpad,
G_CALLBACK(&nsGStreamerReader::EventProbeCb), this);