在传输视频时听变量

时间:2014-01-31 12:45:54

标签: video-streaming gstreamer

我有主要功能和线程,

主函数从客户端获取命令(工作正常) 和流畅地传输视频到客户端的线程(工作正常)

我需要main函数将命令传递给传输视频的线程,线程读取该命令并做出相应的反应 - 播放\暂停。

现在,在“gst_element_set_state(pipeline,GST_STATE_PLAYING);”之后 线程将开始传输视频:

void *thread_function(void * variable)
{
   ...
   ...
   ...
  gst_element_set_state (pipeline, GST_STATE_PLAYING);
  ....
  ....
  gst_object_unref (bus);
  gst_element_set_state (pipeline, GST_STATE_NULL);
  gst_object_unref (pipeline);
  return 0;

}

如何让线程在传输视频时从主节点听一些command_variable? 线程“卡在”“gst_element_set_state”(就像while(1))? 线程假设从main函数获取command_variable并做出相应的反应。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用套接字编程在端口号上创建udptcp套接字,该端口号与您处理视频或任何其他视频的端口号不同媒体就此问题。在这个端口上你应该等待收到的消息。您可以在邮件接收过程中添加身份验证过程。 根据端口收到的消息,您可以采取其他操作,如

GST_STATE (pipeline) == GST_STATE_PAUSED 

或您想要做的任何其他行动。

here您可以找到有关如何创建套接字并执行 LISTENING 操作的示例。