Что DirectShow использует для передачи данных между фильтрами?

Порядок оценки элементов в выражении неуточнен (кроме некоторых очень частных случаев, таких как операторы && и || и тернарный оператор, которые вводят точки последовательности ); поэтому не гарантируется, что test будет оцениваться до или после foo(test) (который его модифицирует).

Если ваш код зависит от конкретного порядка оценки, самым простым методом его получения является разделение вашего выражения на несколько разделенных операторов.

1
задан Brian Tompsett - 汤莱恩 17 January 2016 в 23:08
поделиться

1 ответ

DirectShow обрабатывает куски данных в "медиа-образцах", которые являются просто буферами, реализованными через IMediaSample COM-интерфейс. Для выделения сэмплов используется менеджер памяти на базе COM, интерфейс IMemAllocator, который должен быть реализован фильтрами. Для передачи образцов используется метод IMemAllocator::GetBuffer.

Полностью документировано там: Data Flow in the Filter Graph

2
ответ дан 2 September 2019 в 23:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: