Можете ли вы сказать мне, что лучший способ реализации кругового буфера с постоянной задержкой времени между входом и выходом в c на linux. Я пишу в буфер в потоке и читаю его по другому. Мне нужно сохранить постоянную разницу во времени между чтением и записью, а поток записи имеет переменный битрейт. Теперь я добавляю timpestamps каждые несколько пакетов, чтобы синхронизировать их, и я получаю временные метки из другого потока, который использует clock_gettime каждые 1 мс.c круговой буфер с постоянной задержкой времени для mpeg-ts
ответ
Общий подход правильный, как вы предложили. Тем не менее, есть много вещей, которые необходимо позаботиться -
Источник нить подчиняясь CBuf и тонуть нить удаления из CBuf.
CBuf должен быть достаточно большим, чтобы данные не терялись.
CBuf должен быть заблокирован обоими темами, чтобы не повредить.
Данные CBuf должны быть указаны с отметкой времени. Эти метки времени должны быть достаточно точными, чтобы не вызвать дрожание передачи.
Потолочная труба должна быть отложена, чтобы обеспечить ее отсутствие.
Нить источника и стока должна выводить время только из общего источника времени, чтобы не было дрейфа между их соответствующей скоростью потока и оттока.
Возможно, если вы думаете о Передавая его в какой-то аппаратной системе снаружи, метка времени точность 1 мс, является довольно низким, поскольку соблюдение передачи MPEG нужно 500 нс. Однако, если вы используете аппаратный адаптер для передачи, тогда обычно он заботится об этом.
спасибо за объяснение, это было именно то, что я искал – ostryck
- 1. Трехмерный круговой буфер
- 2. Как реализовать круговой буфер в C?
- 3. эффективный круговой буфер?
- 4. Круговой буфер с использованием мьютекса
- 5. Круговой буфер сбрасывает память?
- 6. Как реализовать круговой буфер в Objective C для высокой производительности
- 7. Синтезируемый буфер с задержкой в VHDL
- 8. Круговой буфер Threadsafe для хранения указателей
- 9. Чтение данных в круговой буфер
- 10. Qt и Boost круговой буфер
- 11. Как создать фиксированный круговой буфер длины TIME?
- 12. Проблемы с задержкой по времени
- 13. Почему мой кольцевой буфер/круговой буфер в java break?
- 14. Запись видео в круговой буфер на Android
- 15. Как реализовать круговой список (кольцевой буфер) в C?
- 16. Задачи с задержкой C++
- 17. O (1) круговой буфер в haskell?
- 18. Резервный скопируемый круговой буфер в boost
- 19. viewDidAppear проблемы с задержкой времени с UIView
- 20. Задачи C# с динамической задержкой
- 21. Сложность времени для цикла постоянной длины
- 22. Повторить задачу с задержкой по времени в WinJS
- 23. Насколько хорош круговой буфер с памятью в Википедии?
- 24. USRP X310 с задержкой времени хост-компьютера
- 25. Как создать круговой буфер FIFO для анализа данных в реальном времени в Matlab?
- 26. Можно ли использовать круговой буфер для видеокадров на iOS?
- 27. Невозможно перемещать изображение с задержкой по времени
- 28. Рекурсивный вызов функции с задержкой по времени
- 29. сравнить буфер с константой char * в C++
- 30. Ярлык Ios позволяет с некоторой задержкой времени
Непонятно, что вы здесь задаете. –
Я спрашиваю, что является лучшим способом реализовать круговой буфер с постоянной задержкой времени между записью и чтением в c under linux – ostryck
@ostryck Я рекомендую вам прочитать http://stackoverflow.com/questions/how-to-ask, а затем вернитесь и отредактируйте свой вопрос. – JustinDoesWork