在Playbin2中播放时更改当前视频会使视频停止播放

时间:2012-11-01 17:16:44

标签: gstreamer playbin2

我有一个播放带有多个曲目的视频文件的playbin2管道。我可以通过设置current-video属性来更改当前播放的曲目:

current-video       : Currently playing video stream (-1 = auto)
                      flags: readable, writable
                      Integer. Range: -1 - 2147483647 Default: -1

然而,一旦我设置了这个,视频就会挂起然后最终变成灰色。音频一直在播放。一位同事建议冲洗管道可能会修复它,但唯一的方法就是用GST_SEEK_FLAG_FLUSH来寻找目前的位置。使用搜索确实有效,但看起来很混乱:

g_object_set(m_playBin, "current-video", video, NULL);
GstClockTime = getCurrentTime();
gst_element_seek(m_playBin, m_player->rate(),
        GST_FORMAT_TIME,
        (GstSeekFlags)(GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE),
        GST_SEEK_TYPE_SET, clockTime,
        GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE)

设置current-video时我做错了什么?是否有更简单的方法来刷新管道?

注意:我正在使用Ogg Theora文件进行测试,因为它很容易构建,因此我不确定此问题是否会以其他格式显示。

0 个答案:

没有答案