Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Vlc video architecture

Tags:

vlc

libvlc

vlc-qt

I am studying the VLC source code in order to understand where exactly VLC writes the decoded frame to the screen. I'm basically interested in the qt ui version, and the windows and linux platforms.

I have come as far as tracing from avcodec_decode_video2 up until the point where it writes the frame to a queue using vout_PutPicture and picture_fifo_Push. On the other end, I see there is a Thread object that calls ThreadDisplayRenderPicture, which in turn calls vout_display_Display, which calls Display. I expected this last function to be the one where the bytes for the video frame actually get copied to the frame buffer, but all it does is set the size, and then release the picture.

Could someone explain to me, or point me to a resource that does, where exactly does VLC writes the picture_t structure that is sitting in the queue to the WId structure, effectively writing the frame to the screen? Any link to a more thorough explanation of VLC's video architecture would be great too!

like image 776
user3846684 Avatar asked Oct 30 '25 19:10

user3846684


1 Answers

I cannot directly answer your question, but provide you with a reference to a thorough explanation of VLC's architecture. (As stated in your last sentence)

Christophe Massiot from the University of Klagenfurt has written a paper on the VLC media player API Documentation. You can find it on google here and on google scholar here.

It includes the following illustration, which may lead you in the right direction.

VLC Architecture

I think the document could prove useful to your question. Take a look at Chapter 5 describing the video output layer

like image 136
Mike F Avatar answered Nov 01 '25 09:11

Mike F



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!