2016-03-25 2 views
2

Я изучаю исходный код 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 будет отличной!

ответ

4

Я не могу ответить на ваш вопрос напрямую, но предоставил вам ссылку на подробное объяснение архитектуры VLC. (Как указано в вашем последнем предложении)

Christophe Massiot из Клагенфуртского университета написал статью о документации API-интерфейса проигрывателя VLC. Вы можете найти его на google here и на google ученом here.

Включает следующую иллюстрацию, которая может привести вас в правильном направлении.

VLC Architecture

Я думаю, что этот документ может оказаться полезным для вашего вопроса. Взгляните на главу 5, описывающую уровень выходного видеосигнала

+1

Большое спасибо, Майкл! Это то, что я искал! Жаль, что у меня нет репутации, чтобы принять ваш ответ, потому что вы, конечно, указали мне на материал, который мне нужен. Еще раз спасибо. – user3846684

+0

@ user3846684 рад, что я мог бы помочь; повторите попытку, повторите ответ, не должно быть минимума репутации для принятия ответов (см. http://meta.stackexchange.com/q/5234), только для ответа на вопрос. Спасибо! –

Смежные вопросы