appsink event "new-sample" triggered only once

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

appsink event "new-sample" triggered only once

AndrejSlo
Hi!
I am new to gstreamer and I think I have a very basic problem, which I am still unable to solve!

So I have reduced my pipeline, because I was unsuccessful with my real one :)

So my pipeline is: appsrc ! appsink
I keep sending data to pipeline, but I only received one event on appsink and than it all stops :(
Why? How to solve it? I puted queue in between, but the problem is the same....I need to some how tell the pipe that I want the party to go on :) How? :)


0:00:00.036783554  8208 000002137E9696F0 DEBUG                  queue gstqueue.c:477:gst_queue_init:<GstQueue@000002137E95DF80> initialized queue's not_empty & not_full conditions
0:00:00.038108521  8208 000002137E970040 LOG                    queue gstqueue.c:1044:gst_queue_handle_sink_query:<queue> queuing query 000002137E9720F0 (allocation)
Pushing data to appsrc: 1440
0:00:01.561789692  8208 000002137E970040 DEBUG                  queue gstqueue.c:578:apply_segment:<queue> configured SEGMENT 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:01.562197708  8208 000002137E970040 LOG                    queue gstqueue.c:529:update_time_level:<queue> update sink time
0:00:01.562502763  8208 000002137E970040 LOG                    queue gstqueue.c:538:update_time_level:<queue> update src time
0:00:01.562797853  8208 000002137E970040 LOG                    queue gstqueue.c:547:update_time_level:<queue> sink +0:00:00.000000000, src +0:00:00.000000000
0:00:01.563110316  8208 000002137E970040 DEBUG                  queue gstqueue.c:578:apply_segment:<queue> configured SEGMENT 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:01.563457781  8208 000002137E970040 LOG                    queue gstqueue.c:538:update_time_level:<queue> update src time
0:00:01.563751339  8208 000002137E970040 LOG                    queue gstqueue.c:547:update_time_level:<queue> sink +0:00:00.000000000, src +0:00:00.000000000
0:00:01.564074788  8208 000002137E970040 LOG                    queue gstqueue.c:633:apply_buffer:<queue> sink position updated to 0:00:01.097215872
0:00:01.564380864  8208 000002137E970040 LOG                    queue gstqueue.c:529:update_time_level:<queue> update sink time
0:00:01.564675443  8208 000002137E970040 LOG                    queue gstqueue.c:547:update_time_level:<queue> sink +0:00:01.097215872, src +0:00:00.000000000
0:00:01.564995571  8208 000002137E970000 LOG                    queue gstqueue.c:633:apply_buffer:<queue> src position updated to 0:00:01.097215872
0:00:01.565339971  8208 000002137E970000 LOG                    queue gstqueue.c:538:update_time_level:<queue> update src time
0:00:01.565638382  8208 000002137E970000 LOG                    queue gstqueue.c:547:update_time_level:<queue> sink +0:00:01.097215872, src +0:00:01.097215872
Received sample of size: 1440
Pushing data to appsrc: 1440
0:00:02.062884080  8208 000002137E970040 LOG                    queue gstqueue.c:633:apply_buffer:<queue> sink position updated to 0:38:03.848023232
0:00:02.063005949  8208 000002137E970040 LOG                    queue gstqueue.c:529:update_time_level:<queue> update sink time
0:00:02.063108144  8208 000002137E970040 LOG                    queue gstqueue.c:547:update_time_level:<queue> sink +0:38:03.848023232, src +0:00:01.097215872
0:00:02.063224903  8208 000002137E970000 LOG                    queue gstqueue.c:633:apply_buffer:<queue> src position updated to 0:38:03.848023232
0:00:02.063335019  8208 000002137E970000 LOG                    queue gstqueue.c:538:update_time_level:<queue> update src time
0:00:02.063435937  8208 000002137E970000 LOG                    queue gstqueue.c:547:update_time_level:<queue> sink +0:38:03.848023232, src +0:38:03.848023232
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: appsink event "new-sample" triggered only once

Nicolas Dufresne-5


Le 24 mars 2017 5:54 AM, "AndrejSlo" <[hidden email]> a écrit :
Hi!
I am new to gstreamer and I think I have a very basic problem, which I am
still unable to solve!

So I have reduced my pipeline, because I was unsuccessful with my real one
:)

So my pipeline is: appsrc ! appsink
I keep sending data to pipeline, but I only received one event on appsink
and than it all stops :(
Why? How to solve it? I puted queue in between, but the problem is the
same....I need to some how tell the pipe that I want the party to go on :)
How? :)

By default, you only get a new event if you have emptied the appsink queue. So keep pulling until it's empty en it should work.



0:00:00.036783554  8208 000002137E9696F0 DEBUG                  queue
gstqueue.c:477:gst_queue_init:<GstQueue@000002137E95DF80> initialized
queue's not_empty & not_full conditions
0:00:00.038108521  8208 000002137E970040 LOG                    queue
gstqueue.c:1044:gst_queue_handle_sink_query:<queue> queuing query
000002137E9720F0 (allocation)
Pushing data to appsrc: 1440
0:00:01.561789692  8208 000002137E970040 DEBUG                  queue
gstqueue.c:578:apply_segment:<queue> configured SEGMENT 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:01.562197708  8208 000002137E970040 LOG                    queue
gstqueue.c:529:update_time_level:<queue> update sink time
0:00:01.562502763  8208 000002137E970040 LOG                    queue
gstqueue.c:538:update_time_level:<queue> update src time
0:00:01.562797853  8208 000002137E970040 LOG                    queue
gstqueue.c:547:update_time_level:<queue> sink +0:00:00.000000000, src
+0:00:00.000000000
0:00:01.563110316  8208 000002137E970040 DEBUG                  queue
gstqueue.c:578:apply_segment:<queue> configured SEGMENT 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:01.563457781  8208 000002137E970040 LOG                    queue
gstqueue.c:538:update_time_level:<queue> update src time
0:00:01.563751339  8208 000002137E970040 LOG                    queue
gstqueue.c:547:update_time_level:<queue> sink +0:00:00.000000000, src
+0:00:00.000000000
0:00:01.564074788  8208 000002137E970040 LOG                    queue
gstqueue.c:633:apply_buffer:<queue> sink position updated to
0:00:01.097215872
0:00:01.564380864  8208 000002137E970040 LOG                    queue
gstqueue.c:529:update_time_level:<queue> update sink time
0:00:01.564675443  8208 000002137E970040 LOG                    queue
gstqueue.c:547:update_time_level:<queue> sink +0:00:01.097215872, src
+0:00:00.000000000
0:00:01.564995571  8208 000002137E970000 LOG                    queue
gstqueue.c:633:apply_buffer:<queue> src position updated to
0:00:01.097215872
0:00:01.565339971  8208 000002137E970000 LOG                    queue
gstqueue.c:538:update_time_level:<queue> update src time
0:00:01.565638382  8208 000002137E970000 LOG                    queue
gstqueue.c:547:update_time_level:<queue> sink +0:00:01.097215872, src
+0:00:01.097215872
Received sample of size: 1440
Pushing data to appsrc: 1440
0:00:02.062884080  8208 000002137E970040 LOG                    queue
gstqueue.c:633:apply_buffer:<queue> sink position updated to
0:38:03.848023232
0:00:02.063005949  8208 000002137E970040 LOG                    queue
gstqueue.c:529:update_time_level:<queue> update sink time
0:00:02.063108144  8208 000002137E970040 LOG                    queue
gstqueue.c:547:update_time_level:<queue> sink +0:38:03.848023232, src
+0:00:01.097215872
0:00:02.063224903  8208 000002137E970000 LOG                    queue
gstqueue.c:633:apply_buffer:<queue> src position updated to
0:38:03.848023232
0:00:02.063335019  8208 000002137E970000 LOG                    queue
gstqueue.c:538:update_time_level:<queue> update src time
0:00:02.063435937  8208 000002137E970000 LOG                    queue
gstqueue.c:547:update_time_level:<queue> sink +0:38:03.848023232, src
+0:38:03.848023232



--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/appsink-event-new-sample-triggered-only-once-tp4682392.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: appsink event "new-sample" triggered only once

AndrejSlo
Hi! Tank you for you response! But I've already solved the simplest example: appsrc ! appsink
And it's was actually silly mistake of typecast, which I will omit later. And it was not the problem you suggested, because I made my self easy problem so I made sure that I did you pushed two times before my appsink queue was empty, but I was wondering how to get all of the elements out....

So now I am still not done, because when I putt other elements in between do not get them out. I've just manned to put rtpjitterbuffer in between, but I still fail to put also rtph264depay in between :(
I've managed to put rtpjitterbuffer in between by those two lines below, which I do not fully understand :)

caps = gst_caps_from_string("application/x-rtp, media=(string)video, clock-rate = (int)90000, encoding-name = (string)H264");
g_object_set(G_OBJECT(appsrc), "caps", caps, NULL);


Any ideas what I have to do to succeed whit this pipeline?

appsrc! rtpjitterbuffer ! rtph264depay ! appsink
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: appsink event "new-sample" triggered only once

AndrejSlo
I would just like to inform you that it work! I was just not pussing enough RTPs in simulation to get any output of rtph264depay.
And no I do not need to empty the appsink queue. I receive all the events!
Loading...