mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-24 16:18:16 +00:00
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 https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/756 Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/661>
This commit is contained in:
parent
57b556befa
commit
c194390ce9
1 changed files with 3 additions and 4 deletions
|
@ -811,11 +811,10 @@ gst_flac_enc_getcaps (GstAudioEncoder * enc, GstCaps * filter)
|
||||||
}
|
}
|
||||||
|
|
||||||
static guint64
|
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;
|
gint64 duration;
|
||||||
GstAudioInfo *info =
|
|
||||||
gst_audio_encoder_get_audio_info (GST_AUDIO_ENCODER (flacenc));
|
|
||||||
|
|
||||||
GST_DEBUG_OBJECT (flacenc, "querying peer for DEFAULT format duration");
|
GST_DEBUG_OBJECT (flacenc, "querying peer for DEFAULT format duration");
|
||||||
if (gst_pad_peer_query_duration (pad, GST_FORMAT_DEFAULT, &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);
|
flacenc->channel_reorder_map);
|
||||||
|
|
||||||
total_samples = gst_flac_enc_peer_query_total_samples (flacenc,
|
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,
|
FLAC__stream_encoder_set_bits_per_sample (flacenc->encoder,
|
||||||
GST_AUDIO_INFO_DEPTH (info));
|
GST_AUDIO_INFO_DEPTH (info));
|
||||||
|
|
Loading…
Reference in a new issue