mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-05 15:08:53 +00:00
parent
3708ca37a8
commit
cc0da016f8
1 changed files with 16 additions and 0 deletions
|
@ -199,6 +199,8 @@ audioringbuffer_thread_func (GstRingBuffer * buf)
|
||||||
GstAudioSrcClass *csrc;
|
GstAudioSrcClass *csrc;
|
||||||
GstAudioRingBuffer *abuf = GST_AUDIORING_BUFFER (buf);
|
GstAudioRingBuffer *abuf = GST_AUDIORING_BUFFER (buf);
|
||||||
ReadFunc readfunc;
|
ReadFunc readfunc;
|
||||||
|
GstMessage *message;
|
||||||
|
GValue val = { 0 };
|
||||||
|
|
||||||
src = GST_AUDIO_SRC (GST_OBJECT_PARENT (buf));
|
src = GST_AUDIO_SRC (GST_OBJECT_PARENT (buf));
|
||||||
csrc = GST_AUDIO_SRC_GET_CLASS (src);
|
csrc = GST_AUDIO_SRC_GET_CLASS (src);
|
||||||
|
@ -209,6 +211,14 @@ audioringbuffer_thread_func (GstRingBuffer * buf)
|
||||||
if (readfunc == NULL)
|
if (readfunc == NULL)
|
||||||
goto no_function;
|
goto no_function;
|
||||||
|
|
||||||
|
g_value_init (&val, G_TYPE_POINTER);
|
||||||
|
g_value_set_pointer (&val, src->thread);
|
||||||
|
message = gst_message_new_stream_status (GST_OBJECT_CAST (buf),
|
||||||
|
GST_STREAM_STATUS_TYPE_ENTER, GST_ELEMENT_CAST (src));
|
||||||
|
gst_message_set_stream_status_object (message, &val);
|
||||||
|
GST_DEBUG_OBJECT (src, "posting ENTER stream status");
|
||||||
|
gst_element_post_message (GST_ELEMENT_CAST (src), message);
|
||||||
|
|
||||||
while (TRUE) {
|
while (TRUE) {
|
||||||
gint left, len;
|
gint left, len;
|
||||||
guint8 *readptr;
|
guint8 *readptr;
|
||||||
|
@ -251,6 +261,7 @@ audioringbuffer_thread_func (GstRingBuffer * buf)
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Will never be reached */
|
/* Will never be reached */
|
||||||
|
g_assert_not_reached ();
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* ERROR */
|
/* ERROR */
|
||||||
|
@ -263,6 +274,11 @@ stop_running:
|
||||||
{
|
{
|
||||||
GST_OBJECT_UNLOCK (abuf);
|
GST_OBJECT_UNLOCK (abuf);
|
||||||
GST_DEBUG ("stop running, exit thread");
|
GST_DEBUG ("stop running, exit thread");
|
||||||
|
message = gst_message_new_stream_status (GST_OBJECT_CAST (buf),
|
||||||
|
GST_STREAM_STATUS_TYPE_LEAVE, GST_ELEMENT_CAST (src));
|
||||||
|
gst_message_set_stream_status_object (message, &val);
|
||||||
|
GST_DEBUG_OBJECT (src, "posting LEAVE stream status");
|
||||||
|
gst_element_post_message (GST_ELEMENT_CAST (src), message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue