How to add two audio src with pads to the pipeline

a pipeline is made to play video/audio files in C++ code.

    /* Create elements */
    pipeline = gst_pipeline_new("mkv-player");
    source = gst_element_factory_make("filesrc", "file-source");
    g_object_set(G_OBJECT(source), "location", "your_file.mkv", NULL);
    decodebin3 = gst_element_factory_make("decodebin3", "decodebin");

    /* Build the pipeline */
    gst_bin_add_many(GST_BIN(pipeline), source, decodebin, NULL);
    gst_element_link(source, decodebin);
    g_signal_connect(decodebin, "pad-added", G_CALLBACK(on_pad_added), NULL);

static void on_pad_added(GstElement *element, GstPad *pad, gpointer data) {
      add video sink bin <======== ok no issues
      //there are two audio srcs with different formats
      //???????? how to add these two audio srcs to the pipeline
      add audio sink bin
}

The following pipeline works from command line
gst-launch-1.0 filesrc location=path/file.mkv ! decodebin3 name=demux ! videoconvert ! autovideosink demux.audio_0 ! queue ! audioconvert ! audioresample ! autoaudiosink

video/audio sinks are added explicitly and specifically in the C++ code. The problem is two audio pads come from decodebin3. Not sure how to add them with the same audio sink.

there are only two pads from decodebin3 in the diagram of gst-launch-1.0 filesrc location=path/file.mkv ! decodebin3 name=demux ! videoconvert ! autovideosink demux.audio_0 ! queue ! audioconvert ! audioresample ! autoaudiosink

But in C++ code padAdded signal of decodebin3 sends out three pads(one video and two audios).

coding error. decodebin3 has only two pads. Problem is solved.