Сколько данных было передано в конкретном приемнике - PullRequest
0 голосов
/ 01 августа 2011

Реализовав странную структуру, я должен знать, сколько байтов будет доставлено на определенный tcpsink, прежде чем на самом деле передавать данные.(На самом деле довольно большой объем данных. Около 100 мегабайт.)

  • Я разделил файлы аудио и видео данных (скажем, Vorbis, AAC, Theora и h.264) и мой "демон "действует как веб-сервис, который объединяет данные в соответствии с запросом.

  • К сожалению, мне нужно предоставить правильный заголовок Content-Length и, разумеется, нет способа узнать фактический объем данных, который будет доставлен, если вы хотя бы раз не сыграете процесс мультиплексирования.

Мой вопрос таков: могу ли я, например, поставить поддон в конце канала при первом запуске и запросить его, сколько байт получено?Как бы я запросил это?

К настоящему времени я использую fdsink и подсчитываю прочитанные байты, но я думаю, что есть лучший способ.Есть ли способ лучше?:)

1 Ответ

1 голос
/ 16 августа 2011

Вы можете сделать это разными способами.Один из способов, который приходит на ум, - это использование fakesink и подключение буферного зонда к источнику fakesink.Затем вы получите обратный вызов для каждого буфера и можете просто считать байты.

Вы можете использовать appsink с обратным вызовом передачи обслуживания для того же эффекта.

...