Piszę oprogramowanie, które szeroko korzysta z ffmpeg i jest wielowątkowe, z wieloma instancjami klasy.Wykrywanie limitu czasu w ffmpeg
Jeśli połączenie sieciowe zostanie przerwane, ffmpeg zawiesza się przy odczycie. Znalazłem sposób przypisać zwrotnego że FFmpeg pożarów okresowo w celu sprawdzenia, czy powinien przerwać lub nie:
static int interrupt_cb(void *ctx)
{
// do something
return 0;
}
static const libffmpeg::AVIOInterruptCB int_cb = { interrupt_cb, NULL };
...
AVFormatContext* formatContext = libffmpeg::avformat_alloc_context();
formatContext->interrupt_callback = int_cb;
if (libffmpeg::avformat_open_input(&formatContext, fileName, NULL, NULL) !=0) {...}
to wszystko jest w porządku, ale nigdzie w internecie mogę znaleźć co * ctx zawiera i jak określić, czy wywołanie zwrotne powinno zwrócić wartość 1 lub 0. Nie mogę przypisać statycznej flagi "Przerwij", ponieważ klasa ma wiele instancji. Nie mogę również debugować kodu, ponieważ z jakiegoś powodu studio graficzne nie chce ustawić punktu przerwania na powrocie 0; linii, twierdząc, że żaden kod wykonywalny nie jest powiązany z lokalizacją. Jakieś pomysły?
Cześć dzięki, tak, czytam to, nie mam pojęcia, co o paque zawiera. – Sean
Ah OK - więc co powinienem tam umieścić? Jeśli jest statyczna, to nie będzie dobrze grać z wieloma instancjami ... – Sean
OK, świetny, dzięki! Z dostępem do formatuContext jak mogę wykryć, że upłynął limit czasu strumienia? – Sean