g_idle_add() thread removal when state changed from PLAYING to NULL.

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

g_idle_add() thread removal when state changed from PLAYING to NULL.

Sujith reddy
Hi All,

The problem is:

we have appsrc element as input to the pipeline.

Now we are feeding data to the pipeline element by adding g_idle_add().

Suddenly i wanted to stop the pipeline ,i made it has GST_STATE_NULL ,
Now my Question is wheteher g_idle_add() thread is in middle of the push
data then what happens to this thread when we changed from GST_STATE_PLAYING
to GST_STATE_NULL state.


The g_idle_add() is removed or we want to remove the thread forcefully?

 can anyone suggest on this.


Thanks
Sujith



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

Re: g_idle_add() thread removal when state changed from PLAYING to NULL.

Nicolas Dufresne-5
Le vendredi 06 juillet 2018 à 06:54 -0700, Sujith reddy a écrit :

> Hi All,
>
> The problem is:
>
> we have appsrc element as input to the pipeline.
>
> Now we are feeding data to the pipeline element by adding
> g_idle_add().
>
> Suddenly i wanted to stop the pipeline ,i made it has GST_STATE_NULL
> ,
> Now my Question is wheteher g_idle_add() thread is in middle of the
> push
> data then what happens to this thread when we changed from
> GST_STATE_PLAYING
> to GST_STATE_NULL state.
You need to ensure to keep a pipeline ref as long as you have avec
callback that may need access. Though, having a concurrent callback
with state change should work. gst_app_src_push_buffer() should return
GST_FLOW_FLUSHING.

>
>
> The g_idle_add() is removed or we want to remove the thread
> forcefully?

Any reason why not using a g_idle_add() callback to stop the pipeline
in the first place ? It would remove the concurrency. You could also
stop your main loop, and then stop the pipeline when main_loop_run()
returns.

>
>  can anyone suggest on this.
>
>
> Thanks
> Sujith
>
>
>
> --
> Sent from: http://gstreamer-devel.966125.n4.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

signature.asc (201 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: g_idle_add() thread removal when state changed from PLAYING to NULL.

Sujith reddy
Hi,


I wanted to play music album which consists of six songs.

Now when iam playing a first song i wanted to play a second song
Note:first song is not completed .

Here i wanted to quit the main loop and keep state null and agin i will take
the second song and loop run.this was the implementation..

Here when inputting appsrc need data.i have a doubt that when data is not
completed we continuously loop the need data call back by sending
true.suddenly we are quitting the loop and making null state.
Now what happens to the need data call back ..it is  removed or not when
state change state to null?


Thanks
sujith



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