Video break when using with splitmuxsink

classic Classic list List threaded Threaded
15 messages Options
Reply | Threaded
Open this post in threaded view
|

Video break when using with splitmuxsink

ToanVnET
I'm using splitmuxsink in Gstreamer with C language to record video. This is
my pipeline:

source -> frameratefilter -> encoder -> h264parse -> splitmuxsink

My pipeline is working good. But my video has been broken when I stop the
pipeline by send EOS event to elements. I set video duration is 5 minutes.
By some reason, I want to close it earlier. This is way I close them:

  gst_element_send_event(source, gst_event_new_eos());
  gst_element_send_event(splitmuxsink, gst_event_new_eos());
  gst_element_send_event(frameratefilter, gst_event_new_eos());
  gst_element_send_event(encoder, gst_event_new_eos());
  gst_element_send_event(h264parse, gst_event_new_eos());
  gst_element_send_event(pipeline, gst_event_new_eos());

  gst_object_unref (bus);
  gst_element_set_state (pipeline, GST_STATE_NULL);
  gst_object_unref (pipeline);
And this is the error I got:

ERROR GStreamer encountered a general stream error. for file://video1.mp4
ERROR debug information:
../../../imx-gst1.0-plugin-4.1.6/plugins/aiurdemux/aiurdemux.c(1015):
aiurdemux_pull_task ():
/GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstAiurDemux:aiurdemux0:
streaming stopped, reason error, state 1 Reached end of play list.

I also try to set state of elements from: PLAYING --> PAUSED --> READY -->
NULL --> send EOS. But It's also not working.

How can I fix it ?



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

AW: Video break when using with splitmuxsink

Thornton, Keith
Hi,
it is enough when you send EOS to the pipeline, but you have to wait for an EOS message on the message bus before setting the pipeline to NULL.
Gruesse

-----Ursprüngliche Nachricht-----
Von: gstreamer-devel <[hidden email]> Im Auftrag von ToanVnET
Gesendet: Samstag, 29. August 2020 11:40
An: [hidden email]
Betreff: Video break when using with splitmuxsink

I'm using splitmuxsink in Gstreamer with C language to record video. This is my pipeline:

source -> frameratefilter -> encoder -> h264parse -> splitmuxsink

My pipeline is working good. But my video has been broken when I stop the pipeline by send EOS event to elements. I set video duration is 5 minutes.
By some reason, I want to close it earlier. This is way I close them:

  gst_element_send_event(source, gst_event_new_eos());
  gst_element_send_event(splitmuxsink, gst_event_new_eos());
  gst_element_send_event(frameratefilter, gst_event_new_eos());
  gst_element_send_event(encoder, gst_event_new_eos());
  gst_element_send_event(h264parse, gst_event_new_eos());
  gst_element_send_event(pipeline, gst_event_new_eos());

  gst_object_unref (bus);
  gst_element_set_state (pipeline, GST_STATE_NULL);
  gst_object_unref (pipeline);
And this is the error I got:

ERROR GStreamer encountered a general stream error. for file://video1.mp4 ERROR debug information:
../../../imx-gst1.0-plugin-4.1.6/plugins/aiurdemux/aiurdemux.c(1015):
aiurdemux_pull_task ():
/GstPlayBin:playbin/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstAiurDemux:aiurdemux0:
streaming stopped, reason error, state 1 Reached end of play list.

I also try to set state of elements from: PLAYING --> PAUSED --> READY --> NULL --> send EOS. But It's also not working.

How can I fix it ?



--
Sent from: https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgstreamer-devel.966125.n4.nabble.com%2F&amp;data=02%7C01%7C%7C562c7c1d2bf5487f523408d84c08ac38%7C28042244bb514cd680347776fa3703e8%7C1%7C0%7C637342947430416216&amp;sdata=aWvJFmDuwfQWK%2F5EkH4fswP5bhwGdgzNkWohFV7rhe0%3D&amp;reserved=0
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Fgstreamer-devel&amp;data=02%7C01%7C%7C562c7c1d2bf5487f523408d84c08ac38%7C28042244bb514cd680347776fa3703e8%7C1%7C0%7C637342947430416216&amp;sdata=qUuOt3G88ShgnI5wpGhXQsz25Ao%2BKtjmQTIhAYvTSTY%3D&amp;reserved=0
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: AW: Video break when using with splitmuxsink

ToanVnET
This post was updated on .
Hi,
Thank you  for your reply.
I added:
msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE,
GST_MESSAGE_ERROR | GST_MESSAGE_EOS);
  if (msg != NULL){
    gst_message_unref (msg);
  }

before:

  gst_object_unref (bus);
  gst_element_set_state (pipeline, GST_STATE_NULL);
  gst_object_unref (pipeline);

But my application seem stuck in it.

[UPDATE]
I also set:
g_object_set(G_OBJECT(splitmuxsink), "async-handling", 1, NULL);
To set special format filename.

Did you think the problem in it ?

For sure, I also set the opposite value before send EOS event to the
elements. But the video is still break.



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

AW: AW: Video break when using with splitmuxsink

Thornton, Keith
Hi,
I don't know where the valve is in your pipeline but g_object_set(G_OBJECT(valve), "drop",1 ,NULL); drops the EOS message as well( at least up to and including 1.16.2) so EOS wouldn't reach splitmuxsink.
Gruesse

-----Ursprüngliche Nachricht-----
Von: gstreamer-devel <[hidden email]> Im Auftrag von ToanVnET
Gesendet: Montag, 31. August 2020 07:30
An: [hidden email]
Betreff: Re: AW: Video break when using with splitmuxsink

Hi,
I also add:
msg = gst_bus_timed_pop_filtered (bus, GST_CLOCK_TIME_NONE, GST_MESSAGE_ERROR | GST_MESSAGE_EOS);
  if (msg != NULL){
    gst_message_unref (msg);
  }

before:

  gst_object_unref (bus);
  gst_element_set_state (pipeline, GST_STATE_NULL);
  gst_object_unref (pipeline);

But my application seem stuck in it.

[UPDATE]
I also set:
g_object_set(G_OBJECT(splitmuxsink), "async-handling", 1, NULL); To set special format filename.
g_object_set(G_OBJECT(valve), "drop",1 ,NULL); To stop a thread which unnecessary in some case.

Did you think the problem in it ?

For sure, I also set the opposite value before send EOS event to the elements. But the video is still break.



--
Sent from: https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgstreamer-devel.966125.n4.nabble.com%2F&amp;data=02%7C01%7C%7Cecdedbcde2f34b19f21208d84d797688%7C28042244bb514cd680347776fa3703e8%7C1%7C0%7C637344531371457869&amp;sdata=9kf0ZjZS8RJpyACsxpXVbvUTPTzHSwDIf53XxfVGHSw%3D&amp;reserved=0
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Fgstreamer-devel&amp;data=02%7C01%7C%7Cecdedbcde2f34b19f21208d84d797688%7C28042244bb514cd680347776fa3703e8%7C1%7C0%7C637344531371457869&amp;sdata=93%2B5j0SxL4vEhdDDHo92q6LrNSwAnkoVztKBPvDxyeM%3D&amp;reserved=0
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: AW: AW: Video break when using with splitmuxsink

ToanVnET
This is my mistake. There is no valve element in my pipeline. I updated my
answer then. I quite obstructive now. May you give me some details guide in
code. I also can post my code if needed.



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

AW: AW: AW: Video break when using with splitmuxsink

Thornton, Keith
Hi,
If you can post the code (as simple as possible) and also details of the environment where your pipeline runs I will take a look
Gruesse

-----Ursprüngliche Nachricht-----
Von: gstreamer-devel <[hidden email]> Im Auftrag von ToanVnET
Gesendet: Montag, 31. August 2020 12:16
An: [hidden email]
Betreff: Re: AW: AW: Video break when using with splitmuxsink

This is my mistake. There is no valve element in my pipeline. I updated my answer then. I quite obstructive now. May you give me some details guide in code. I also can post my code if needed.



--
Sent from: https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgstreamer-devel.966125.n4.nabble.com%2F&amp;data=02%7C01%7C%7Cd0eac5e2fd8b4706cb8d08d84da15a96%7C28042244bb514cd680347776fa3703e8%7C1%7C0%7C637344702683106355&amp;sdata=ERSuOIbfMqAqwnKK9RZOWKcel9Aj5Hsdl8BbtWU8AZ8%3D&amp;reserved=0
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Fgstreamer-devel&amp;data=02%7C01%7C%7Cd0eac5e2fd8b4706cb8d08d84da15a96%7C28042244bb514cd680347776fa3703e8%7C1%7C0%7C637344702683106355&amp;sdata=OX4jeS%2ByA7g3NqD8H29b6P%2BAKAKVlytj9Tk%2Fc%2B5dqmo%3D&amp;reserved=0
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: AW: AW: AW: Video break when using with splitmuxsink

ToanVnET
This post was updated on .
Hi,
This is my code simple version:

static gchar* cb_FormatLocation(GstElement* splitmuxsink, guint fragment_id,
const int* offset){
  //Set filename
  return filename;
}

gboolean timeout_callback(gpointer data){
  if ( //meet signal stop video ){
    g_main_loop_quit((GMainLoop*)data);
    return FALSE;  
  }
  return TRUE;
}

int main(int argc, char * argv[]){
  GstElement *pipeline, *source, *frameratefilter_, *h264parse, *encoder,
*splitmuxsink;

  /* Initialize GStreamer */
  gst_init (&argc, &argv);
  loop = g_main_loop_new ( NULL , FALSE );

  /* Create the empty pipeline */
  pipeline = gst_pipeline_new ("test-pipeline");

  /* Create the elements */
  source = gst_element_factory_make ("imxv4l2src", NULL);
  h264parse = gst_element_factory_make("h264parse",NULL);
  encoder = gst_element_factory_make("vpuenc_h264",NULL);
  frameratefilter = gst_element_factory_make("capsfilter", NULL);
  splitmuxsink = gst_element_factory_make("splitmuxsink", NULL);

  // Set parameters for some elements
  g_object_set(G_OBJECT(source), "device", "/dev/video0", NULL);
  g_object_set(G_OBJECT(splitmuxsink), "location", filename, NULL);
  g_object_set(G_OBJECT(splitmuxsink), "max-size-time", nanoDuration, NULL);
  g_object_set(G_OBJECT(splitmuxsink), "async-handling", 1, NULL);
  g_signal_connect (G_OBJECT(splitmuxsink), "format-location",
G_CALLBACK(cb_FormatLocation), &offset);
  g_object_set(G_OBJECT(frameratefilter), "caps",
gst_caps_from_string("video/x-raw,format=
(string)NV12,width=640,height=480,framerate=(fraction)30/1"), NULL);

  /* Build the pipeline */
  gst_bin_add_many (GST_BIN (pipeline), source, overlay, frameratefilter,
encoder, h264parse, splitmuxsink,  NULL);
  if ( gst_element_link_many(source, overlay, frameratefilter, encoder,
h264parse, splitmuxsink, NULL) != TRUE ){
    g_error("Failed to link save elements!");
    gst_object_unref (pipeline);
    return -1;
  }

  /* Start playing */
  ret = gst_element_set_state (pipeline, GST_STATE_PLAYING);
  if (ret == GST_STATE_CHANGE_FAILURE) {
    g_printerr ("Unable to set the pipeline to the playing state.\n");
    gst_object_unref (pipeline);
    return -1;
  }                

  g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, 1 , timeout_callback ,
loop, NULL);
  g_main_loop_run (loop);
  g_main_loop_unref(loop);

  bus = gst_element_get_bus (pipeline);

  gst_element_send_event(source, gst_event_new_eos());
  gst_element_set_state (splitmuxsink, GST_STATE_PAUSED);
  gst_element_set_state (splitmuxsink, GST_STATE_READY);
  gst_element_set_state (splitmuxsink, GST_STATE_NULL);
  gst_element_send_event(splitmuxsink, gst_event_new_eos());

  gst_element_send_event(frameratefilter, gst_event_new_eos());
  gst_element_send_event(encoder, gst_event_new_eos());
  gst_element_send_event(h264parse, gst_event_new_eos());
  gst_element_send_event(pipeline, gst_event_new_eos());
 
  gst_object_unref (bus);
  gst_element_set_state (pipeline, GST_STATE_NULL);
  gst_object_unref (pipeline);
  return 0;
}



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

AW: AW: AW: AW: Video break when using with splitmuxsink

Thornton, Keith
Hi,
why not replace all these
  gst_element_send_event(source, gst_event_new_eos()); ...
with
  gst_element_send_event(pipeline, gst_event_new_eos());

Then add a message handler along the lines of

    GstBusSyncReply GstreamerCamera:: BusFunc(GstBus* bus, GstMessage* message, gpointer user_data)
    {
        (void)bus;
        GstBusSyncReply busReply = GST_BUS_PASS;
        switch (GST_MESSAGE_TYPE(message))
        {
            case GST_MESSAGE_EOS:
            {
               pRecorder->setEosReceived();
            }
            break;
          }

They you must wait for EOS. Use a condition variable or promise and future or sum such event before setting the pipeline state.

-----Ursprüngliche Nachricht-----
Von: gstreamer-devel <[hidden email]> Im Auftrag von ToanVnET
Gesendet: Dienstag, 1. September 2020 06:07
An: [hidden email]
Betreff: Re: AW: AW: AW: Video break when using with splitmuxsink

Hi,
This is my code simple version:

static gchar* cb_FormatLocation(GstElement* splitmuxsink, guint fragment_id, const int* offset){
  //Set filename
  return filename;
}

gboolean timeout_callback(gpointer data){
  if ( //meet signal stop video ){
    g_main_loop_quit((GMainLoop*)data);
    return FALSE;
  }
  return TRUE;
}

int main(int argc, char * argv[]){
  GstElement *pipeline, *source, *frameratefilter_, *h264parse, *encoder, *splitmuxsink;

  /* Initialize GStreamer */
  gst_init (&argc, &argv);
  loop = g_main_loop_new ( NULL , FALSE );

  /* Create the empty pipeline */
  pipeline = gst_pipeline_new ("test-pipeline");

  /* Create the elements */
  source = gst_element_factory_make ("imxv4l2src", NULL);
  h264parse = gst_element_factory_make("h264parse",NULL);
  encoder = gst_element_factory_make("vpuenc_h264",NULL);
  frameratefilter = gst_element_factory_make("capsfilter", NULL);
  splitmuxsink = gst_element_factory_make("splitmuxsink", NULL);

  // Set parameters for some elements
  g_object_set(G_OBJECT(source), "device", "/dev/video0", NULL);
  g_object_set(G_OBJECT(splitmuxsink), "location", filename, NULL);
  g_object_set(G_OBJECT(splitmuxsink), "max-size-time", nanoDuration, NULL);
  g_object_set(G_OBJECT(splitmuxsink), "async-handling", 1, NULL);
  g_signal_connect (G_OBJECT(splitmuxsink), "format-location", G_CALLBACK(cb_FormatLocation), &offset);
  g_object_set(G_OBJECT(frameratefilter_write), "caps", gst_caps_from_string("video/x-raw,format=
(string)NV12,width=640,height=480,framerate=(fraction)30/1"), NULL);

  /* Build the pipeline */
  gst_bin_add_many (GST_BIN (pipeline), source, overlay, frameratefilter, encoder, h264parse, splitmuxsink,  NULL);
  if ( gst_element_link_many(source, overlay, frameratefilter, encoder, h264parse, splitmuxsink, NULL) != TRUE ){
    g_error("Failed to link save elements!");
    gst_object_unref (pipeline);
    return -1;
  }

  /* Start playing */
  ret = gst_element_set_state (pipeline, GST_STATE_PLAYING);
  if (ret == GST_STATE_CHANGE_FAILURE) {
    g_printerr ("Unable to set the pipeline to the playing state.\n");
    gst_object_unref (pipeline);
    return -1;
  }                

  g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, 1 , timeout_callback , loop, NULL);
  g_main_loop_run (loop);
  g_main_loop_unref(loop);

  bus = gst_element_get_bus (pipeline);

  gst_element_send_event(source, gst_event_new_eos());
  gst_element_send_event(tee, gst_event_new_eos());
  gst_element_send_event(queue_write, gst_event_new_eos());
  gst_element_set_state (splitmuxsink, GST_STATE_PAUSED);
  gst_element_set_state (splitmuxsink, GST_STATE_READY);
  gst_element_set_state (splitmuxsink, GST_STATE_NULL);
  gst_element_send_event(splitmuxsink, gst_event_new_eos());

  gst_element_send_event(frameratefilter, gst_event_new_eos());
  gst_element_send_event(encoder, gst_event_new_eos());
  gst_element_send_event(h264parse, gst_event_new_eos());
  gst_element_send_event(pipeline, gst_event_new_eos());
 
  gst_object_unref (bus);
  gst_element_set_state (pipeline, GST_STATE_NULL);
  gst_object_unref (pipeline);
  return 0;
}



--
Sent from: https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgstreamer-devel.966125.n4.nabble.com%2F&amp;data=02%7C01%7C%7C2721801169704c30c8df08d84e361e82%7C28042244bb514cd680347776fa3703e8%7C1%7C0%7C637345341626441390&amp;sdata=aaAA9bWel4KzwX%2FiaoygpFDWzdVCuyuRpG03werSB2o%3D&amp;reserved=0
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Fgstreamer-devel&amp;data=02%7C01%7C%7C2721801169704c30c8df08d84e361e82%7C28042244bb514cd680347776fa3703e8%7C1%7C0%7C637345341626441390&amp;sdata=kPnKPmx3TRuZMzKsSL0AobqnrHxx7CP%2B5rOXYCt2QxE%3D&amp;reserved=0
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: AW: AW: AW: AW: Video break when using with splitmuxsink

ToanVnET
Hi, I tried add the message handler but it's like C++ and I'm using C. And I
built with error:

     error: expected '=', ',', ';', 'asm' or '__attribute__' before '::'
token

I quite new in Gstreamer. So may you guide me how to use this message
handler ? I very appreciate that.



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

AW: AW: AW: AW: AW: Video break when using with splitmuxsink

Thornton, Keith
Hi,
the code where you call gst_element_send_event(pipeline, gst_event_new_eos());
is in a different thread from the streaming thread which calls your message handler. It should not be a problem in C to wait in the calling thread until EOS is reported in the streaming thread. I just listed the various possibilities in C++ but setting a variable in one thread and looping in the other thread until the variable is set should also be possible in plain vanilla C.
Gruesse

-----Ursprüngliche Nachricht-----
Von: gstreamer-devel <[hidden email]> Im Auftrag von ToanVnET
Gesendet: Dienstag, 1. September 2020 10:09
An: [hidden email]
Betreff: Re: AW: AW: AW: AW: Video break when using with splitmuxsink

Hi, I tried add the message handler but it's like C++ and I'm using C. And I built with error:

     error: expected '=', ',', ';', 'asm' or '__attribute__' before '::'
token

I quite new in Gstreamer. So may you guide me how to use this message handler ? I very appreciate that.



--
Sent from: https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgstreamer-devel.966125.n4.nabble.com%2F&amp;data=02%7C01%7C%7Ccf14fc3a0d36408ce86a08d84e579ea6%7C28042244bb514cd680347776fa3703e8%7C1%7C0%7C637345485513049696&amp;sdata=l3Y28mpM%2FJWsjCRhLh5gNmIS6H8ApG4O1sV%2BI3IomNA%3D&amp;reserved=0
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Fgstreamer-devel&amp;data=02%7C01%7C%7Ccf14fc3a0d36408ce86a08d84e579ea6%7C28042244bb514cd680347776fa3703e8%7C1%7C0%7C637345485513049696&amp;sdata=JFMoVV4yEpjvDtulEH9uIjGiZyrsjL7grp9jCSe0hJE%3D&amp;reserved=0
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: AW: AW: AW: AW: AW: Video break when using with splitmuxsink

ToanVnET
The information you post is very helpful. I also think send eos event will
not effect critically. Before that, I use filesink element instead of
splitmuxsink. I send eos event to pipeline and video is still playable. But
with splitmuxsink, I can't do that.
In my case, may you can give me some keyword and relevant code, function in
details. It helps me a lots. I tried to solved this problem in 3 days and my
brain is going to burn out.



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

AW: AW: AW: AW: AW: AW: Video break when using with splitmuxsink

Thornton, Keith
Hi,
can you run your pipeline with GST_DEBUG=GST_EVENT*:4 set.
Gruesse

-----Ursprüngliche Nachricht-----
Von: gstreamer-devel <[hidden email]> Im Auftrag von ToanVnET
Gesendet: Dienstag, 1. September 2020 12:23
An: [hidden email]
Betreff: Re: AW: AW: AW: AW: AW: Video break when using with splitmuxsink

The information you post is very helpful. I also think send eos event will not effect critically. Before that, I use filesink element instead of splitmuxsink. I send eos event to pipeline and video is still playable. But with splitmuxsink, I can't do that.
In my case, may you can give me some keyword and relevant code, function in details. It helps me a lots. I tried to solved this problem in 3 days and my brain is going to burn out.



--
Sent from: https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgstreamer-devel.966125.n4.nabble.com%2F&amp;data=02%7C01%7C%7C1eeba6fa7dd445ab61ff08d84e6accbc%7C28042244bb514cd680347776fa3703e8%7C1%7C0%7C637345567886366152&amp;sdata=fc31v7axIztdIsizFNJTOHj1aJjJl7tMgE2q%2BFKRxpM%3D&amp;reserved=0
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Fgstreamer-devel&amp;data=02%7C01%7C%7C1eeba6fa7dd445ab61ff08d84e6accbc%7C28042244bb514cd680347776fa3703e8%7C1%7C0%7C637345567886366152&amp;sdata=fiDwV6UVn%2FhB%2BN2%2FaeWPYNxIsOFQtKJomOyNbkXZSV0%3D&amp;reserved=0
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: AW: AW: AW: AW: AW: AW: Video break when using with splitmuxsink

ToanVnET
Yes. I can.
This is debug output level 4: [I cut some duplicate content]

====== IMXV4L2SRC: 4.1.6 build on Aug 17 2020 17:13:43. ======
0:00:00.403524667 20016 0x56088e40 INFO               GST_EVENT
gstevent.c:1382:gst_event_new_reconfigure: creating reconfigure event
0:00:00.403896667 20016 0x56088e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<imxv4l2src0:src> Received event
on flushing pad. Discarding
0:00:00.407062000 20016 0x56088e40 INFO               GST_EVENT
gstevent.c:1382:gst_event_new_reconfigure: creating reconfigure event
0:00:00.407375333 20016 0x56088e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<capsfilter0:src> Received event
on flushing pad. Discarding
0:00:00.408146333 20016 0x56088e40 INFO               GST_EVENT
gstevent.c:1382:gst_event_new_reconfigure: creating reconfigure event
0:00:00.408408333 20016 0x56088e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<vpuenc_h264-0:src> Received
event on flushing pad. Discarding
0:00:00.410748333 20016 0x56088e40 INFO               GST_EVENT
gstevent.c:1382:gst_event_new_reconfigure: creating reconfigure event
0:00:00.411112333 20016 0x56088e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<multiqueue:src_0> Received event
on flushing pad. Discarding
0:00:00.411956333 20016 0x56088e40 INFO               GST_EVENT
gstevent.c:1382:gst_event_new_reconfigure: creating reconfigure event
0:00:00.413363667 20016 0x56088e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<h264parse0:src> Received event
on flushing pad. Discarding
0:00:00.414714000 20016 0x56088e40 INFO               GST_EVENT
gstevent.c:1382:gst_event_new_reconfigure: creating reconfigure event
0:00:00.415053667 20016 0x56088e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<muxer:src> Received event on
flushing pad. Discarding
[INFO]  Product Info: i.MX6Q/D/S
====== VPUENC: 4.1.6 build on Aug 17 2020 17:13:59. ======
        wrapper: 1.0.68 (VPUWRAPPER_ARM_LINUX Build on Aug 17 2020 15:52:15)
        vpulib: 5.4.35
        firmware: 3.1.1.570363

...

0:00:00.573036000 20016 0x56088e40 INFO               GST_EVENT
gstevent.c:1253:gst_event_new_latency: creating latency event
0:00:00.000000000
0:00:00.578725333 20016 0x560478f0 INFO               GST_EVENT
gstevent.c:679:gst_event_new_caps: creating caps event video/x-raw,
format=(string)NV12, width=(int)1280, height=(int)720,
framerate=(fraction)30/1
0:00:01.393626000 20016 0x560478f0 INFO               GST_EVENT
gstevent.c:760:gst_event_new_segment: creating segment event time segment
start=0:00:00.000000000, offset=0:00:00.000000000, stop=99:99:99.999999999,
rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000,
base=0:00:00.000000000, position 0:00:00.000000000, duration
99:99:99.999999999
[INFO]  ringBufferEnable 0, chromaInterleave 1, mapType 0,
linear2TiledEnable 0
[WARN]  VPU iram is less than needed, some parts don't use iram
0:00:01.803796667 20016 0x560478f0 INFO               GST_EVENT
gstevent.c:679:gst_event_new_caps: creating caps event video/x-h264,
width=(int)1280, height=(int)720, stream-format=(string)avc,
alignment=(string)au, framerate=(fraction)30/1,
codec_data=(buffer)0142401fffe100096742401fa6805005b901000468ce3880,
pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true,
profile=(string)constrained-baseline, level=(string)3.1
0:00:01.805094333 20016 0x560478f0 INFO               GST_EVENT
gstevent.c:760:gst_event_new_segment: creating segment event time segment
start=0:00:00.000000000, offset=0:00:00.000000000, stop=99:99:99.999999999,
rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000,
base=0:00:00.000000000, position 0:00:00.000000000, duration
99:99:99.999999999
0:00:02.731437000 20016 0x56047a90 INFO               GST_EVENT
gstevent.c:679:gst_event_new_caps: creating caps event video/quicktime,
variant=(string)iso
0:00:02.743947000 20016 0x56047a90 INFO               GST_EVENT
gstevent.c:760:gst_event_new_segment: creating segment event bytes segment
start=0, offset=0, stop=-1, rate=1.000000, applied_rate=1.000000,
flags=0x00, time=0, base=0, position 0, duration -1
0:00:13.122608001 20016 0x56088e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<splitmuxsink0:video> Received
event on flushing pad. Discarding

And this is debug output level 5 when I stop  the pipeline:

0:00:14.927594335 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b170 eos 28174
0:00:14.946297335 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b128 eos 28174
0:00:14.946422335 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b0e0 eos 28174
0:00:14.946506335 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b098 eos 28174
0:00:14.946583668 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b050 eos 28174
0:00:14.946658002 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b008 eos 28174
0:00:14.946733335 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6af60 eos 28174
0:00:14.946809002 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6af60 eos 28174
0:00:14.946920002 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b008 eos 28174
0:00:14.949387668 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b050 eos 28174

0:00:14.949892002 20227 0x55ce3e40 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<splitmuxsink0:video> have event
type eos event: 0x55b6b050, time 99:99:99.999999999, seq-num 8610, (NULL)
0:00:14.950435002 20227 0x55ce3e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<splitmuxsink0:video> Received
event on flushing pad. Discarding
0:00:14.951042002 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b098 eos 28174
0:00:14.951594668 20227 0x55ce3e40 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<capsfilter0:sink> have event
type eos event: 0x55b6b098, time 99:99:99.999999999, seq-num 8611, (NULL)
0:00:14.951859002 20227 0x55ce3e40 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<vpuenc_h264-0:sink> have event
type eos event: 0x55b6b098, time 99:99:99.999999999, seq-num 8611, (NULL)
0:00:14.952538668 20227 0x55ce3e40 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<h264parse0:sink> have event type
eos event: 0x55b6b098, time 99:99:99.999999999, seq-num 8611, (NULL)
0:00:14.950342002 20227 0x55ca28f0 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<textoverlay:video_sink> have
event type eos event: 0x55b6b170, time 99:99:99.999999999, seq-num 8587,
(NULL)
0:00:14.953315335 20227 0x55ca28f0 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<capsfilter0:sink> have event
type eos event: 0x55b6b170, time 99:99:99.999999999, seq-num 8587, (NULL)
0:00:14.953753335 20227 0x55ce3e40 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<splitmuxsink0:video> have event
type eos event: 0x55b6b098, time 99:99:99.999999999, seq-num 8611, (NULL)
0:00:14.953990335 20227 0x55ce3e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<splitmuxsink0:video> Received
event on flushing pad. Discarding
0:00:14.954883668 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b0e0 eos 28174
0:00:14.955373668 20227 0x55ce3e40 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<vpuenc_h264-0:sink> have event
type eos event: 0x55b6b0e0, time 99:99:99.999999999, seq-num 8612, (NULL)
0:00:14.956013335 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b128 eos 28174
0:00:14.956592668 20227 0x55ce3e40 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<h264parse0:sink> have event type
eos event: 0x55b6b128, time 99:99:99.999999999, seq-num 8613, (NULL)
0:00:14.957167002 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b1b8 eos 28174

Thank you for your help. I very appreciate that !



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

AW: AW: AW: AW: AW: AW: AW: Video break when using with splitmuxsink

Thornton, Keith
Hi,
remove the code where you send eos to the individual elements leaving only the line in which you send the eos to the pipeline. When you then look at the debug output you should see that the first element in the pipeling gets the eos first and that the downstream elements follow.
Gruesse

-----Ursprüngliche Nachricht-----
Von: gstreamer-devel <[hidden email]> Im Auftrag von ToanVnET
Gesendet: Mittwoch, 2. September 2020 19:24
An: [hidden email]
Betreff: Re: AW: AW: AW: AW: AW: AW: Video break when using with splitmuxsink

Yes. I can.
This is debug output level 4: [I cut some duplicate content]

====== IMXV4L2SRC: 4.1.6 build on Aug 17 2020 17:13:43. ======
0:00:00.403524667 20016 0x56088e40 INFO               GST_EVENT
gstevent.c:1382:gst_event_new_reconfigure: creating reconfigure event
0:00:00.403896667 20016 0x56088e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<imxv4l2src0:src> Received event on flushing pad. Discarding
0:00:00.407062000 20016 0x56088e40 INFO               GST_EVENT
gstevent.c:1382:gst_event_new_reconfigure: creating reconfigure event
0:00:00.407375333 20016 0x56088e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<capsfilter0:src> Received event on flushing pad. Discarding
0:00:00.408146333 20016 0x56088e40 INFO               GST_EVENT
gstevent.c:1382:gst_event_new_reconfigure: creating reconfigure event
0:00:00.408408333 20016 0x56088e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<vpuenc_h264-0:src> Received event on flushing pad. Discarding
0:00:00.410748333 20016 0x56088e40 INFO               GST_EVENT
gstevent.c:1382:gst_event_new_reconfigure: creating reconfigure event
0:00:00.411112333 20016 0x56088e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<multiqueue:src_0> Received event on flushing pad. Discarding
0:00:00.411956333 20016 0x56088e40 INFO               GST_EVENT
gstevent.c:1382:gst_event_new_reconfigure: creating reconfigure event
0:00:00.413363667 20016 0x56088e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<h264parse0:src> Received event on flushing pad. Discarding
0:00:00.414714000 20016 0x56088e40 INFO               GST_EVENT
gstevent.c:1382:gst_event_new_reconfigure: creating reconfigure event
0:00:00.415053667 20016 0x56088e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<muxer:src> Received event on flushing pad. Discarding [INFO]  Product Info: i.MX6Q/D/S ====== VPUENC: 4.1.6 build on Aug 17 2020 17:13:59. ======
        wrapper: 1.0.68 (VPUWRAPPER_ARM_LINUX Build on Aug 17 2020 15:52:15)
        vpulib: 5.4.35
        firmware: 3.1.1.570363

...

0:00:00.573036000 20016 0x56088e40 INFO               GST_EVENT
gstevent.c:1253:gst_event_new_latency: creating latency event
0:00:00.000000000
0:00:00.578725333 20016 0x560478f0 INFO               GST_EVENT
gstevent.c:679:gst_event_new_caps: creating caps event video/x-raw, format=(string)NV12, width=(int)1280, height=(int)720,
framerate=(fraction)30/1
0:00:01.393626000 20016 0x560478f0 INFO               GST_EVENT
gstevent.c:760:gst_event_new_segment: creating segment event time segment start=0:00:00.000000000, offset=0:00:00.000000000, stop=99:99:99.999999999, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000, base=0:00:00.000000000, position 0:00:00.000000000, duration
99:99:99.999999999
[INFO]  ringBufferEnable 0, chromaInterleave 1, mapType 0, linear2TiledEnable 0 [WARN]  VPU iram is less than needed, some parts don't use iram
0:00:01.803796667 20016 0x560478f0 INFO               GST_EVENT
gstevent.c:679:gst_event_new_caps: creating caps event video/x-h264, width=(int)1280, height=(int)720, stream-format=(string)avc, alignment=(string)au, framerate=(fraction)30/1, codec_data=(buffer)0142401fffe100096742401fa6805005b901000468ce3880,
pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true, profile=(string)constrained-baseline, level=(string)3.1
0:00:01.805094333 20016 0x560478f0 INFO               GST_EVENT
gstevent.c:760:gst_event_new_segment: creating segment event time segment start=0:00:00.000000000, offset=0:00:00.000000000, stop=99:99:99.999999999, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0:00:00.000000000, base=0:00:00.000000000, position 0:00:00.000000000, duration
99:99:99.999999999
0:00:02.731437000 20016 0x56047a90 INFO               GST_EVENT
gstevent.c:679:gst_event_new_caps: creating caps event video/quicktime, variant=(string)iso
0:00:02.743947000 20016 0x56047a90 INFO               GST_EVENT
gstevent.c:760:gst_event_new_segment: creating segment event bytes segment start=0, offset=0, stop=-1, rate=1.000000, applied_rate=1.000000, flags=0x00, time=0, base=0, position 0, duration -1
0:00:13.122608001 20016 0x56088e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<splitmuxsink0:video> Received event on flushing pad. Discarding

And this is debug output level 5 when I stop  the pipeline:

0:00:14.927594335 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b170 eos 28174
0:00:14.946297335 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b128 eos 28174
0:00:14.946422335 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b0e0 eos 28174
0:00:14.946506335 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b098 eos 28174
0:00:14.946583668 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b050 eos 28174
0:00:14.946658002 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b008 eos 28174
0:00:14.946733335 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6af60 eos 28174
0:00:14.946809002 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6af60 eos 28174
0:00:14.946920002 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b008 eos 28174
0:00:14.949387668 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b050 eos 28174

0:00:14.949892002 20227 0x55ce3e40 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<splitmuxsink0:video> have event type eos event: 0x55b6b050, time 99:99:99.999999999, seq-num 8610, (NULL)
0:00:14.950435002 20227 0x55ce3e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<splitmuxsink0:video> Received event on flushing pad. Discarding
0:00:14.951042002 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b098 eos 28174
0:00:14.951594668 20227 0x55ce3e40 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<capsfilter0:sink> have event type eos event: 0x55b6b098, time 99:99:99.999999999, seq-num 8611, (NULL)
0:00:14.951859002 20227 0x55ce3e40 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<vpuenc_h264-0:sink> have event type eos event: 0x55b6b098, time 99:99:99.999999999, seq-num 8611, (NULL)
0:00:14.952538668 20227 0x55ce3e40 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<h264parse0:sink> have event type eos event: 0x55b6b098, time 99:99:99.999999999, seq-num 8611, (NULL)
0:00:14.950342002 20227 0x55ca28f0 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<textoverlay:video_sink> have event type eos event: 0x55b6b170, time 99:99:99.999999999, seq-num 8587,
(NULL)
0:00:14.953315335 20227 0x55ca28f0 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<capsfilter0:sink> have event type eos event: 0x55b6b170, time 99:99:99.999999999, seq-num 8587, (NULL)
0:00:14.953753335 20227 0x55ce3e40 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<splitmuxsink0:video> have event type eos event: 0x55b6b098, time 99:99:99.999999999, seq-num 8611, (NULL)
0:00:14.953990335 20227 0x55ce3e40 INFO               GST_EVENT
gstpad.c:5622:gst_pad_send_event_unchecked:<splitmuxsink0:video> Received event on flushing pad. Discarding
0:00:14.954883668 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b0e0 eos 28174
0:00:14.955373668 20227 0x55ce3e40 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<vpuenc_h264-0:sink> have event type eos event: 0x55b6b0e0, time 99:99:99.999999999, seq-num 8612, (NULL)
0:00:14.956013335 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b128 eos 28174
0:00:14.956592668 20227 0x55ce3e40 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<h264parse0:sink> have event type eos event: 0x55b6b128, time 99:99:99.999999999, seq-num 8613, (NULL)
0:00:14.957167002 20227 0x55ce3e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55b6b1b8 eos 28174

Thank you for your help. I very appreciate that !



--
Sent from: https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fgstreamer-devel.966125.n4.nabble.com%2F&amp;data=02%7C01%7C%7Cb8371df66ec146031da308d84f6e598b%7C28042244bb514cd680347776fa3703e8%7C1%7C0%7C637346682648934817&amp;sdata=sSYHyvkAD6bVg3UlEA63eZnZhrL0URDtlB3n6CgoE38%3D&amp;reserved=0
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Fgstreamer-devel&amp;data=02%7C01%7C%7Cb8371df66ec146031da308d84f6e598b%7C28042244bb514cd680347776fa3703e8%7C1%7C0%7C637346682648934817&amp;sdata=jzWiStlqtdDf%2F61fXulC8ZSFgiCBX%2BwSGet0G%2Fsbm3o%3D&amp;reserved=0
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: AW: AW: AW: AW: AW: AW: AW: Video break when using with splitmuxsink

ToanVnET
This post was updated on .
Hi,
This is the code after modify:

  g_timeout_add_seconds_full (G_PRIORITY_DEFAULT, 1 , timeout_callback ,
loop, NULL);
  g_main_loop_run (loop);
  g_main_loop_unref(loop);
  bus = gst_element_get_bus (pipeline);
  gst_element_send_event(pipeline, gst_event_new_eos());
  msg = gst_bus_timed_pop_filtered (bus,
GST_CLOCK_TIME_NONE,GST_MESSAGE_ERROR | GST_MESSAGE_EOS);
    if (msg != NULL){
     gst_message_unref (msg);
  }
  gst_object_unref (bus);
  gst_element_set_state (pipeline, GST_STATE_NULL);
  gst_object_unref (pipeline);


And this is debug output after EOS event sent:

0:00:07.159878001  3540 0x55fa1e40 DEBUG              GST_EVENT
gstevent.c:302:gst_event_new_custom: creating new event 0x55e29170 eos 28174
0:00:07.175796001  3540 0x55f608f0 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<textoverlay:video_sink> have
event type eos event: 0x55e29170, time 99:99:99.999999999, seq-num 3317,
(NULL)
0:00:07.176252335  3540 0x55f608f0 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<capsfilter0:sink> have event
type eos event: 0x55e29170, time 99:99:99.999999999, seq-num 3317, (NULL)
0:00:07.176545668  3540 0x55f608f0 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<vpuenc_h264-0:sink> have event
type eos event: 0x55e29170, time 99:99:99.999999999, seq-num 3317, (NULL)
0:00:07.177118335  3540 0x55f608f0 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<h264parse0:sink> have event type
eos event: 0x55e29170, time 99:99:99.999999999, seq-num 3317, (NULL)
0:00:07.177668668  3540 0x55f608f0 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<splitmuxsink0:video> have event
type eos event: 0x55e29170, time 99:99:99.999999999, seq-num 3317, (NULL)
0:00:07.178213668  3540 0x55f608f0 DEBUG              GST_EVENT
gstpad.c:5517:gst_pad_send_event_unchecked:<multiqueue:sink_0> have event
type eos event: 0x55e29170, time 99:99:99.999999999, seq-num 3317, (NULL)

And my app is still hang on there.

What should I do next ?
 



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel