"no-more-pads" for urisourcebin will not be called

I have an C++ Application and use the urisourcebin.
Gst 1.24.4

    auto sourceElement = gst_element_factory_make("urisourcebin", "urisourcebin");

    g_signal_connect(sourceElement, "pad-added", G_CALLBACK(source_on_pad_added_cb), &mCustomData);
    g_signal_connect(sourceElement, "pad-removed", G_CALLBACK(source_on_pad_removed_cb),
    g_signal_connect(sourceElement, "no-more-pads", G_CALLBACK(source_on_no_more_pads_cb),
    g_signal_connect(sourceElement, "source-setup", G_CALLBACK(source_on_source_setup_cb),
    g_signal_connect(sourceElement, "about-to-finish", G_CALLBACK(source_on_about_to_finish_cb),

The no-more-pads callback will never be called.
source is an mpeg-ts http stream.

After the urisourcebin i have an parse bin.
I also tried to add an no-more-pads callback to the parsebin element.

    g_signal_connect(parsebin, "autoplug-select", G_CALLBACK(parsebin_autoplug_select_callback),
    g_signal_connect(parsebin, "element-added", G_CALLBACK(parsebin_element_added_callback), data);
    g_signal_connect(parsebin, "pad-added", G_CALLBACK(parsebin_on_pad_added_callback), data);
    g_signal_connect(parsebin, "no-more-pads", G_CALLBACK(parsebin_no_more_pads_callback), data);
    g_signal_connect(parsebin, "drained", G_CALLBACK(parsebin_drained_callback), data);

finally i have added the same to the hole pipeline (don’t know if it works)

    g_signal_connect(data->pipeline, "no-more-pads", G_CALLBACK(pipeline_no_more_pads_callback), data);

i also tried the “drained” and “about-to-finish” callback.
none of them is called.

Those elements don’t emit the no-more-pads signal because pads can be added/removed at any point in time.

ok. it makes sense for ts files.
Is my only option then to wait a defined time (e.g. 1s)?
Or something more intelligent: wait until there is at least one audio and one video? (and note that there are also video/audio only streams)

You can get the list of streams from the GST_MESSAGE_STREAM_COLLECTION message.