2

複数のトラックを含むビデオ ファイルを再生する 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 ファイルをテスト用に使用しています。この問題が他の形式で発生するかどうかはわかりません。

4

0 に答える 0