Tylko podgląd Directshow i przechwytywanie i podgląd pojedynczego wykresu
Mam aplikację Directshow, która wymaga podglądu wideo z kamery internetowej, a gdy użytkownik kliknie „Nagraj”, musi rozpocząć przechwytywanie wideo do pliku.
W tym celu stworzyłem pojedynczy wykres przechwytywania, z pinem PREVIEW podłączonym do filtra RENDER i pinem CAPTURE podłączonym do filtra AVI_MUX, który zapisuje do pliku.
Wygląda to mniej więcej tak:
/[PREVIEW PIN]-->[VIDEO_RENDERER]--->[SCREEN]
[VIDEO CAPTURE FILTER] /
\
\[CAPTURE PIN]--->[AVI_MUX]--->[FILE WRITER]
Gdy wywołam Run () na wykresie, wideo wyświetla się na ekranie i zostaje poprawnie zapisane w pliku.
Moje pytanie brzmi: jak mogę uruchomić tylko sekcję PREVIEW PIN na wykresie bez sekcji CAPTURE_PIN.
Moim początkowym pomysłem było ręczne uruchomienie / zatrzymanie odpowiednich filtrów, ale potem przyjrzałem się próbce Microsoft Directshow amcap i oni faktycznie tworzą dwa oddzielne wykresy. Jeden do podglądu i jeden do przechwytywania. Jeśli użytkownik chce wyświetlić podgląd wideo, niszczy wykres przechwytywania i tworzy wykres podglądu. A jeśli użytkownik chce nagrywać wideo, niszczy wykres podglądu i tworzy wykres przechwytywania.
Wydaje się to trochę marnotrawstwem, zwłaszcza, że pojedynczy wykres zawiera już szpilki PREVIEW i CAPTURE. Jakie jest właściwe podejście?