mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-18 22:36:33 +00:00
wavpackenc: query downstream for BYTE seeking support
This commit is contained in:
parent
03bde3f0d2
commit
e4e38f9a0f
1 changed files with 19 additions and 0 deletions
|
@ -783,6 +783,8 @@ gst_wavpack_enc_rewrite_first_block (GstWavpackEnc * enc)
|
||||||
{
|
{
|
||||||
GstSegment segment;
|
GstSegment segment;
|
||||||
gboolean ret;
|
gboolean ret;
|
||||||
|
GstQuery *query;
|
||||||
|
gboolean seekable = FALSE;
|
||||||
|
|
||||||
g_return_if_fail (enc);
|
g_return_if_fail (enc);
|
||||||
g_return_if_fail (enc->first_block);
|
g_return_if_fail (enc->first_block);
|
||||||
|
@ -791,6 +793,23 @@ gst_wavpack_enc_rewrite_first_block (GstWavpackEnc * enc)
|
||||||
WavpackUpdateNumSamples (enc->wp_context, enc->first_block);
|
WavpackUpdateNumSamples (enc->wp_context, enc->first_block);
|
||||||
|
|
||||||
/* try to seek to the beginning of the output */
|
/* try to seek to the beginning of the output */
|
||||||
|
query = gst_query_new_seeking (GST_FORMAT_BYTES);
|
||||||
|
if (gst_pad_peer_query (GST_AUDIO_ENCODER_SRC_PAD (enc), query)) {
|
||||||
|
GstFormat format;
|
||||||
|
|
||||||
|
gst_query_parse_seeking (query, &format, &seekable, NULL, NULL);
|
||||||
|
if (format != GST_FORMAT_BYTES)
|
||||||
|
seekable = FALSE;
|
||||||
|
} else {
|
||||||
|
GST_LOG_OBJECT (enc, "SEEKING query not handled");
|
||||||
|
}
|
||||||
|
gst_query_unref (query);
|
||||||
|
|
||||||
|
if (!seekable) {
|
||||||
|
GST_DEBUG_OBJECT (enc, "downstream not seekable; not rewriting");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
gst_segment_init (&segment, GST_FORMAT_BYTES);
|
gst_segment_init (&segment, GST_FORMAT_BYTES);
|
||||||
ret = gst_pad_push_event (GST_AUDIO_ENCODER_SRC_PAD (enc),
|
ret = gst_pad_push_event (GST_AUDIO_ENCODER_SRC_PAD (enc),
|
||||||
gst_event_new_segment (&segment));
|
gst_event_new_segment (&segment));
|
||||||
|
|
Loading…
Reference in a new issue