}
}
+static void gst_avi_mux_audsink_set_fields (GstAviMux * avimux,
+ GstAviAudioPad * avipad);
+
static GstFlowReturn
gst_avi_mux_audsink_scan_mpeg_audio (GstAviMux * avimux, GstAviPad * avipad,
GstBuffer * buffer)
spf = 576;
}
- if (G_UNLIKELY (avipad->hdr.scale <= 1))
+ if (G_UNLIKELY (avipad->hdr.scale <= 1)) {
avipad->hdr.scale = spf;
- else if (G_UNLIKELY (avipad->hdr.scale != spf)) {
+ gst_avi_mux_audsink_set_fields (avimux, (GstAviAudioPad *) avipad);
+ } else if (G_UNLIKELY (avipad->hdr.scale != spf)) {
GST_WARNING_OBJECT (avimux, "input mpeg audio has varying frame size");
goto cbr_fallback;
}
{
GST_WARNING_OBJECT (avimux, "falling back to CBR muxing");
avipad->hdr.scale = 1;
+ gst_avi_mux_audsink_set_fields (avimux, (GstAviAudioPad *) avipad);
/* no need to check further */
avipad->hook = NULL;
goto done;