mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-30 13:41:48 +00:00
avimux: adds support to wma
This commit is contained in:
parent
f43b442cf9
commit
52482a3741
1 changed files with 30 additions and 1 deletions
|
@ -180,7 +180,10 @@ static GstStaticPadTemplate audio_sink_factory =
|
||||||
"audio/x-alaw, "
|
"audio/x-alaw, "
|
||||||
"rate = (int) [ 1000, 48000 ], " "channels = (int) [ 1, 2 ]; "
|
"rate = (int) [ 1000, 48000 ], " "channels = (int) [ 1, 2 ]; "
|
||||||
"audio/x-mulaw, "
|
"audio/x-mulaw, "
|
||||||
"rate = (int) [ 1000, 48000 ], " "channels = (int) [ 1, 2 ]; ")
|
"rate = (int) [ 1000, 48000 ], " "channels = (int) [ 1, 2 ]; "
|
||||||
|
"audio/x-wma, "
|
||||||
|
"rate = (int) [ 1000, 96000 ], " "channels = (int) [ 1, 2 ], "
|
||||||
|
"wmaversion = (int) [ 1, 2 ] ")
|
||||||
);
|
);
|
||||||
|
|
||||||
static void gst_avi_mux_base_init (gpointer g_class);
|
static void gst_avi_mux_base_init (gpointer g_class);
|
||||||
|
@ -752,6 +755,32 @@ gst_avi_mux_audsink_set_caps (GstPad * pad, GstCaps * vscaps)
|
||||||
avipad->auds.size = 8;
|
avipad->auds.size = 8;
|
||||||
avipad->auds.blockalign = avipad->auds.channels;
|
avipad->auds.blockalign = avipad->auds.channels;
|
||||||
avipad->auds.av_bps = avipad->auds.blockalign * avipad->auds.rate;
|
avipad->auds.av_bps = avipad->auds.blockalign * avipad->auds.rate;
|
||||||
|
} else if (!strcmp (mimetype, "audio/x-wma")) {
|
||||||
|
gint version;
|
||||||
|
gint bitrate;
|
||||||
|
gint block_align;
|
||||||
|
|
||||||
|
if (gst_structure_get_int (structure, "wmaversion", &version)) {
|
||||||
|
switch (version) {
|
||||||
|
case 1:
|
||||||
|
avipad->auds.format = GST_RIFF_WAVE_FORMAT_WMAV1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
avipad->auds.format = GST_RIFF_WAVE_FORMAT_WMAV2;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (avipad->auds.format != 0) {
|
||||||
|
if (gst_structure_get_int (structure, "block_align", &block_align)) {
|
||||||
|
avipad->auds.blockalign = block_align;
|
||||||
|
}
|
||||||
|
if (gst_structure_get_int (structure, "bitrate", &bitrate)) {
|
||||||
|
avipad->auds.av_bps = bitrate / 8;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue