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?

questionAnswers(2)

yourAnswerToTheQuestion