Я изучаю исходный код VLC, чтобы понять, где именно VLC записывает декодированный кадр на экран. Меня в основном интересует версия qt ui, а также окна и платформы Linux.Архитектура видео Vlc
Я дошел до avcodec_decode_video2
до момента, когда он записывает кадр в очередь, используя vout_PutPicture
и picture_fifo_Push
. На другом конце я вижу объект Thread
, который вызывает ThreadDisplayRenderPicture
, который, в свою очередь, вызывает vout_display_Display
, который вызывает Display
. Я ожидал, что эта последняя функция будет той, где байты для видеокадра фактически будут скопированы в буфер кадров, но все, что он делает, задает размер, а затем отпускает изображение.
Может кто-нибудь объяснить мне или указать мне на ресурс, который делает, где именно VLC пишет структуру picture_t
, которая находится в очереди в структуре WId, эффективно записывая кадр на экран? Любая ссылка на более подробное объяснение видеоархитектуры VLC будет отличной!
Большое спасибо, Майкл! Это то, что я искал! Жаль, что у меня нет репутации, чтобы принять ваш ответ, потому что вы, конечно, указали мне на материал, который мне нужен. Еще раз спасибо. – user3846684
@ user3846684 рад, что я мог бы помочь; повторите попытку, повторите ответ, не должно быть минимума репутации для принятия ответов (см. http://meta.stackexchange.com/q/5234), только для ответа на вопрос. Спасибо! –