Skip to content
Snippets Groups Projects
Commit c194390c authored by Sebastian Dröge's avatar Sebastian Dröge :tea: Committed by GStreamer Marge Bot
Browse files

flacenc: Pass audio info from set_format() to query_total_samples() explicitly

This fixes writing of the seek table header.

gst_audio_encoder_get_audio_info() will still return old/unset audio
info until set_format() has actually returned, which then results in
query_total_samples() to always return 0.

Thanks to Jacob Kauffmann for debugging this and finding the main cause.

Fixes #756

Part-of: <!661>
parent 57b556be
No related branches found
No related tags found
No related merge requests found
Pipeline #171065 passed
......@@ -811,11 +811,10 @@ gst_flac_enc_getcaps (GstAudioEncoder * enc, GstCaps * filter)
}
static guint64
gst_flac_enc_peer_query_total_samples (GstFlacEnc * flacenc, GstPad * pad)
gst_flac_enc_peer_query_total_samples (GstFlacEnc * flacenc, GstPad * pad,
GstAudioInfo * info)
{
gint64 duration;
GstAudioInfo *info =
gst_audio_encoder_get_audio_info (GST_AUDIO_ENCODER (flacenc));
GST_DEBUG_OBJECT (flacenc, "querying peer for DEFAULT format duration");
if (gst_pad_peer_query_duration (pad, GST_FORMAT_DEFAULT, &duration)
......@@ -884,7 +883,7 @@ gst_flac_enc_set_format (GstAudioEncoder * enc, GstAudioInfo * info)
flacenc->channel_reorder_map);
total_samples = gst_flac_enc_peer_query_total_samples (flacenc,
GST_AUDIO_ENCODER_SINK_PAD (enc));
GST_AUDIO_ENCODER_SINK_PAD (enc), info);
FLAC__stream_encoder_set_bits_per_sample (flacenc->encoder,
GST_AUDIO_INFO_DEPTH (info));
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment