2016-03-25 14 views
2

Ich untersuche den VLC-Quellcode, um zu verstehen, wo genau VLC den decodierten Frame auf den Bildschirm schreibt. Ich bin grundsätzlich an der qt-ui-Version und den Windows- und Linux-Plattformen interessiert.Vlc video architecture

Ich bin so weit gekommen, von avcodec_decode_video2 bis zu dem Punkt zu verfolgen, wo es den Rahmen in eine Warteschlange schreibt, die vout_PutPicture und picture_fifo_Push verwendet. Am anderen Ende sehe ich, dass es ein Thread Objekt gibt, das ThreadDisplayRenderPicture aufruft, das wiederum vout_display_Display aufruft, dasaufruft. Ich habe erwartet, dass diese letzte Funktion diejenige ist, bei der die Bytes für den Videoframe tatsächlich in den Framebuffer kopiert werden, aber alles, was sie tut, ist die Größe einzustellen und dann das Bild freizugeben.

Könnte mir jemand erklären, oder zeigen Sie mich auf eine Ressource, die, wo genau schreibt VLC die picture_t Struktur, die in der Warteschlange in der WId Struktur sitzt, effektiv den Rahmen auf dem Bildschirm schreiben? Jeder Link zu einer ausführlicheren Erklärung der VLC-Video-Architektur wäre auch toll!

Antwort

4

Ich kann Ihre Frage nicht direkt beantworten, aber gebe Ihnen einen Verweis auf eine gründliche Erklärung der VLC-Architektur. (Wie in Ihrem letzten Satz angegeben)

Christophe Massiot von der Universität Klagenfurt hat einen Artikel über die VLC Media Player API Dokumentation geschrieben. Sie finden es auf Google here und auf Google Scholar here.

Es enthält die folgende Abbildung, die Sie in die richtige Richtung führen kann.

VLC Architecture

Ich denke, das Dokument auf Ihre Frage als nützlich erweisen könnte. Sehen Sie sich Kapitel 5 an, in dem die Videoausgabeschicht beschrieben wird

+1

Vielen Dank Michael! Das habe ich gesucht! Es ist schade, dass ich nicht den Ruf habe, deine Antwort zu akzeptieren, denn du hast mich auf das Material hingewiesen, das ich brauchte. Danke noch einmal. – user3846684

+0

@ user3846684 froh, ich könnte helfen; Bitte versuche die Antwort erneut zu akzeptieren, es sollte kein Reputationsminimum für die Annahme von Antworten geben (siehe: http://meta.stackexchange.com/q/5234), nur um Antworten zu verbessern. Vielen Dank! –