diff --git a/gst/qtmux/gstqtmux.c b/gst/qtmux/gstqtmux.c index ba155f6a55..f100196624 100644 --- a/gst/qtmux/gstqtmux.c +++ b/gst/qtmux/gstqtmux.c @@ -1553,10 +1553,16 @@ gst_qt_mux_audio_sink_set_caps (GstPad * pad, GstCaps * caps) if (!gst_structure_get_int (structure, "width", &width) || !gst_structure_get_int (structure, "depth", &depth) || - !gst_structure_get_boolean (structure, "signed", &sign) || - !gst_structure_get_int (structure, "endianness", &endianness)) { - GST_DEBUG_OBJECT (qtmux, - "broken caps, width/depth/signed/endianness field missing"); + !gst_structure_get_boolean (structure, "signed", &sign)) { + GST_DEBUG_OBJECT (qtmux, "broken caps, width/depth/signed field missing"); + goto refuse_caps; + } + + if (depth <= 8) { + endianness = G_BYTE_ORDER; + } else if (!gst_structure_get_boolean (structure, + "endianness", &endianness)) { + GST_DEBUG_OBJECT (qtmux, "broken caps, endianness field missing"); goto refuse_caps; }