EOS message is not received


I have used android tutorial-3 to build a pipeline that display and record at the same time.

pipeline_video = “udpsrc buffer-size=50000 port=5478 ! application/x-rtp,payload=96 ! rtpjitterbuffer latency=300 ! rtph264depay ! tee name=t t. ! queue ! h264parse ! mp4mux ! filesink name=fdisk async=false location=/storage/emulated/0/Download/test.mp4 t. ! queue ! decodebin ! videoconvert ! autovideosink sync=false”

the issue is that the generated file is not playable due to missing EOS. I have searched to find a solution for this but really couldn’t reach anywhere.
1- send EOS in the gst_native_finalize (before and after quitting the main loop):

gst_element_send_event(data->pipeline_video, gst_event_new_eos());
GstMessage *msg;
msg = gst_bus_timed_pop_filtered(gst_element_get_bus(data->pipeline_video),
                                     2 * GST_SECOND, 
                                     (GstMessageType) (GST_MESSAGE_ERROR | GST_MESSAGE_EOS));

2- tried to send eos directly to mp4mux/fliesink, it gives me errors.
3- tried this one also

/* tell pipeline to forward EOS message from filesink immediately and not
     * hold it back until it also got an EOS message from the video sink */
    g_object_set(data->pipeline_video, "message-forward", TRUE, NULL);

for some reason EOS is not reaching the pipeline, i tried to catch the messages everywhere in element, eos … nothing received

the file is in:

i would appreciate any hint

You might be hitting this bug? Please try the patch and let us know. This code needs a unit test to be merged.

thanks for the hint but I’m developing on android so i do not know how to prepare the gstreamer universal binaries with this patch.

Build using Cerbero, it will create the Android binaries for you from my understanding.