2011-07-31 9 views
-2

奇妙なフレームワークが実装されているため、実際にデータを送信する前に、特定のtcpsinkでいくつのバイトが配信されるかを知る必要があります。 (データのかなり大量の、実際に。いくつかの100メガバイト。)特定のシンクでどれだけのデータが送信されたか

  • 私のように、オーディオおよびビデオ・データ・ファイル(たとえばVorbisの、AAC、TheoraのおよびH.264)と私の「デーモン」行為を分離しています要求どおりにデータを多重化するWebサービス。

  • 残念ながら、正しいContent-Lengthヘッダーを配信する必要があります。その理由は、少なくとも1回マルチプレキシングプロセスを再生しない限り、配信される実際のデータ量を知る方法がないからです。

私の質問は次のとおりです。最初の実行時にパイプの最後にフェイクシンクを入れ、それを何バイト受信したかを照会します。どのように私はそれを照会するでしょうか?

これまでのところ、私はfdsinkを使用して読み込んだバイト数をカウントしましたが、より良い方法があると思います。より良い方法がありますか? :)

+0

Downvoter:コメントしてください。 – kay

答えて

1

あなたは多くの方法でそれを行うことができます。頭に浮かぶ1つの方法は、fakesinkを使用し、バッファプローブをfakesinkに送るsrcパッドに接続することです。各バッファのコールバックを取得し、単純にバイト数をカウントできます。

同じ効果のために、ハンドオフコールバックでappsinkを使用することができます。

関連する問題