2017-07-13 83 views
0

私はシンプルなmjpegパイプラインを持っており、ptsにレイテンシを計算させるためにシンクのバッファにアクセスしたいと思います。Gstreamerバッファーpts

パイプライン: souphttpsrc - > jpegparse - > imxvpudec - > imxipusink

これを行うための最善の方法は何ですか?いくつかのコード例は素晴らしいでしょう。 gstreamerの時間が私を少し混乱させます。その後

souphttpsrc ! jpegparse ! identity ! imxvpudec ! imxipusink 

「ハンドオフ」信号に接続します:

+0

特に興味のあるタイミングデータはありますか?非常に多くのタイミング、待ち時間、タイムスタンプがあります。 –

答えて

1

私はあなたがPTSを分析するあなたのパイプラインでID要素を追加したいあなたが見ている場合は

static void pts_analysis_cb(GstElement *identity, 
          GstBuffer *buffer, 
          gpointer user_data) { 
    GstClockTime pts = GST_BUFFER_PTS(buffer); 
    //analysis 
} 

g_signal_connect_data(identity, "handoff", 
         G_CALLBACK(pts_analysis_cb), 
         NULL, NULL, GConnectFlags()); 

MJPEGに関連する遅延時間は、テール要素にsync=falseを設定するか、バッファが落ち込んだ場合にバッファを落とすようにフラグを設定するだけです。

+0

ありがとうございます=) –