Общий подход правильный, как вы предложили. Однако нужно позаботиться о многих вещах -
Исходная нить, отправляющая в CBuf, и нить-приемник, удаляемая из CBuf.
CBuf должен быть достаточно большим, чтобы данные не терялись.
CBuf должен быть заблокирован обоими потоками, чтобы избежать повреждения.
Данные CBuf должны иметь временную отметку. Эти временные метки должны быть достаточно точными, чтобы не вызывать дрожание передачи.
Резьба приемника должна быть задержана, чтобы не допустить потери потока.
Поток источника и приемника должен извлекать время только из общего источника времени, чтобы не было дрейфа между их соответствующей скоростью притока и оттока.
Вероятно, если вы думаете о передаче его на какую-либо аппаратную систему снаружи, точность метки времени, равная 1 мс, достаточно низка, поскольку для соответствия требованиям MPEG требуется 500 нс. Однако, если вы используете аппаратный адаптер для передачи, то, как правило, об этом позаботится.