Hi,
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