Difference between revisions of "VLC Developers Corner"

From VideoLAN Wiki
Jump to navigation Jump to search
m (typo)
 
(137 intermediate revisions by 8 users not shown)
Line 1: Line 1:
__NOTOC__
+
__NOTOC__ __NOEDITSECTION__
<!-- Beginning of header section -->
+
<!-- Beginning of the banner section -->
{|style="width:100%;margin-top:+.7em;background-color:#fcfcfc;border:1px solid #ccc"
+
{{Banner
|style="width:56%;color:#000"|
+
|description=A directory of everything to do with the development of VideoLAN's projects.<br />
{|style="width:280px;border:solid 0px;background:none"
+
Check [[VLC media player|VLC's page]] to get info on VLC.
|-
+
|links=
|style="width:280px;text-align:center;white-space:nowrap;color:#000" |
+
* [[VideoLAN]]
<div style="font-size:162%;border:none;margin: 0;padding:.1em;color:#000">Welcome to [[Developers_Corner|VideoLAN Developers Corner]],</div>
+
* [[VLC media player]]
<div style="top:+0.2em;font-size: 95%"> This is a directory of everything to do with the development of VideoLAN's projects.<br />
+
** [https://addons.videolan.org Add-ons]
Check [[VLC|VLC's page]] to get info on VLC.
+
* [[Documentation:Documentation|Documentation]]
</div>
+
* [[VideoLAN_Sites#Developers|Developers' Sites]]
<div id="articlecount" style="width:100%;text-align:center;font-size:85%;">[[Special:Statistics|{{NUMBEROFARTICLES}}]] articles</div>
+
|links2=
|}
+
* [https://www.videolan.org/developers Developer Zone]
|style="width:11%;font-size:95%;color:#000" valign="top"|
+
* [https://nightlies.videolan.org Nightly builds]
*[[VideoLAN|VideoLAN]]
+
* [https://jenkins.videolan.org Automatic builds]
*[[VLC|VLC media player]]
+
|links3=
*[[Documentation:Documentation|Documentation]]
+
* [https://code.videolan.org/videolan/vlc/-/issues bugs, features, roadmap]
*[[VideoLAN_Sites#Developers|Developers' Websites]]
+
* [https://www.videolan.org/videolan/mirrors.html Mirrors check]
|style="width:14%;font-size:95%" valign="top"|
 
* [http://developers.videolan.org Main Developers Site]
 
* [http://nightlies.videolan.org Nightly builds]
 
* [http://buildbot.videolan.org Buildbot for Automatic Builds]
 
|style="width:18%;font-size:95%" valign="top"|
 
* [http://trac.videolan.org Trac, bugs, features, roadmap]
 
* [http://mirrors.videolan.org Mirrors check]
 
 
* [ftp://ftp.videolan.org/pub/videolan/ Main FTP]
 
* [ftp://ftp.videolan.org/pub/videolan/ Main FTP]
|}
+
}}
<!-- end of the header section -->
+
<!-- End of the banner section -->
  
{|
+
== Coding on VLC ==
|- valign="top" width="100%"
+
* [[Getting Started At Coding|Get started at coding on VLC]]
 
+
* Get the [[GetTheSource|Source Code]] and [[Compile VLC]]
|width="30%" valign="top"|
+
* You might be interested in our [[Mini Projects]] or [[GCodeIn_Ideas|Janitorial projects]]
<div style="border: 1px solid #ddcef2; color: #000; background-color: #faf5ff ; padding: 10px; margin: 6px;">
+
* Read our [[Hacker_Guide|Hacker's Guide]]
 
+
** [[Hacker_Guide/Core|Introduction to VLC's core]]
<h2 style="margin:0;background:#ddcef2;font-size:120%;font-weight:bold;border:1px solid #afa3bf;text-align:left;color:#000;padding:0.2em 0.4em;">
+
** [[Hacker Guide/How To Write a Module|How to write a module]]
VideoLAN other projects</h2>
+
** [[Documentation:VLC_Modules_Loading|How VLC modules load]]
Here is a short list of the main [[VideoLAN projects|projects]] hosted by the VideoLAN project:
+
* [https://www.videolan.org/developers/vlc/doc/doxygen/html/ Code documentation]
* [[VLS]] is a streaming server, used for professional streaming solutions. [[VLC|VLC]] can now do the same. ''VLS is deprecated and unmaintained''.
 
* [[MiniSAPServer]] is a SAP server.
 
* [[x264]], a free [[H264]] / AVC encoder.
 
 
 
=== Libraries ===
 
* [http://en.wikipedia.org/wiki/Libdvdcss libdvdcss], a C library to access DVDs without having to bother about the decryption.
 
* [[libdvbpsi]], a C library to decode and generate MPEG TS and DVB PSI tables.
 
* [http://en.wikipedia.org/wiki/Libdca libdca], a DTS Coherent Acoustics decoder.
 
 
 
Discover also [[VideoLAN projects|lesser known projects]].
 
</div>
 
 
 
<div style="color:#000;background-color:#f5fffa;border:1px solid #a3bfb1;padding:10px;margin:6px; float: left;">
 
<h2 style="margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3bfb1;text-align:left;color:#000;padding:0.2em 0.4em;">
 
VideoLAN's Administration</h2>
 
* [[VideoLAN Machines]]
 
* [[Add a skin|How to add a skin on the skins download page]]
 
* [http://mirrors.videolan.org Download mirrors integritylist]
 
 
 
</div>
 
 
 
|width="35%" rowspan="1" valign="top"|<div style="color:#000;background-color:#f5fffa;border:1px solid #cedff2;padding:10px;margin: 6px">
 
 
 
<h2 style="margin:0;background:#cedff2;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;">
 
Build VLC media player</h2>
 
To build VLC, you first need to get the [[GetTheSource|Source Code]].
 
 
 
* [[UnixCompile|How to compile on Unix/Linux]]
 
* [[Win32Compile|How to compile on Windows]]
 
* [[OSXCompile|How to compile on Mac OS X]]
 
* [[BeOSCompile|How to compile on BeOS]]
 
 
 
* [[Contrib_Status|Contrib Status]] - 3rd party libraries status.
 
* Diego 'Flameeyes' Pettenò 's [http://www.gentoo.org/proj/en/desktop/video/vlc.xml notes] about packaging VLC into [http://www.gentoo.org/ Gentoo].
 
</div>
 
 
 
<div style="margin:6px;border: 1px solid #FFA8D3;background-color:#FFECF5; color: #000; padding:10px; margin-top:12px">
 
 
 
<h2 style="margin:0; background-color:#FFA8D3;font-size:120%;font-weight:bold;border:1px solid #a3bfb1;text-align:left;color:#000;padding:0.2em .4em;"> Code VLC</h2>
 
* [[Unicode and Strings]]
 
 
* [[Code Conventions]]
 
* [[Code Conventions]]
* [[Documentation:Hacker%27s_Guide|Hacker's Guide]]
 
* [http://developers.videolan.org/vlc/vlc/doc/doxygen/html Code documentation]
 
  
=== Start coding on VLC ===
+
=== VLC development links ===
* [[Getting Started At Coding|Get started at coding on VLC]].
+
* [https://code.videolan.org/videolan/vlc/-/issues/ GitLab] list of bugs
* You might be interested in our [[Mini_Projects|Mini Projects]], which are some easy tasks that do not require a lot of VLC Code Knowledge.
+
* vlc-devel [https://www.videolan.org/developers/lists.html mailing list], mailing list.
* It is recommended that you join the vlc-devel [http://developers.videolan.org/lists.html mailing list], where all commits are archived.
+
* [https://www.videolan.org/developers/i18n/ Translation information and stats]
 +
* [https://www.openhub.net/p/vlc Open Hub] statistics
 +
* [https://jenkins.videolan.org Jenkins] (Automatic builds)
 +
* [[Nightly build]]s
 +
* Launchpad ([https://bugs.launchpad.net/distros/ubuntu/+source/vlc/+bugs?field.searchtext=vlc&orderby=-date_last_updated&search=Search&field.status%3Alist=Unconfirmed&field.status%3Alist=Confirmed&field.status%3Alist=In+Progress&field.status%3Alist=Needs+Info&field.status%3Alist=Fix+Committed&field.assignee=&field.owner=&field.omit_dupes=on&field.has_patch=&field.has_no_package= recent bug changes]) ([https://bugs.launchpad.net/distros/ubuntu/+source/vlc/+bugs all bugs])
 +
* [https://code.videolan.org/ code.videolan.org]
 +
* [https://git.videolan.org/ git.videolan.org]
  
=== Tools to code VLC ===
+
== Current technical discussions on VLC ==
* [[Contrib_Status|Contrib Status]] - Contrib Libraries Status
+
* [[Usability Complaints]]
* [http://trac.videolan.org/vlc Trac] list of bugs, todo's and history of commits.
+
* [[WaylandIntegration|Wayland integration]]
* [https://bugs.launchpad.net/products/vlc Launchpad for VLC] ([https://bugs.launchpad.net/distros/ubuntu/+source/vlc/+bugs?field.searchtext=vlc&orderby=-date_last_updated&search=Search&field.status%3Alist=Unconfirmed&field.status%3Alist=Confirmed&field.status%3Alist=In+Progress&field.status%3Alist=Needs+Info&field.status%3Alist=Fix+Committed&field.assignee=&field.owner=&field.omit_dupes=on&field.has_patch=&field.has_no_package= recent bug changes]) ([https://bugs.launchpad.net/distros/ubuntu/+source/vlc/+bugs all bugs])
 
* [http://developers.videolan.org/i18n/vlc.html Translation information and stats]
 
* [http://cia.navi.cx/stats/project/vlc CIA commit statistics]
 
* [http://paste.videolan.org Pasteboard]
 
* [http://buildbot.videolan.org Buildbot]
 
* [http://planet.videolan.org Developer weblog]
 
</div>
 
  
| width="35%" rowspan="1" valign="top" |
+
=== Past discussions ===
<div style="margin:10px;border: 1px solid #f2e0ce; color: #000; background-color: #fffaf5; padding:10px; margin: 6px;">
+
* [[VoutRework|Vout Rework]] - improving the video output subsystem.
 
+
* [[telnet rc rewrite]] - Merging the "telnet" and "rc" controls.
<h2 style="margin:0; background-color:#f2e0ce;font-size:120%;font-weight:bold;border:1px solid #bfb1a3;text-align:left;color:#000;padding:0.2em .4em;"> Development discussions under work</h2>
+
* [[SimplePreferences|Simple Preferences]] - We wish to add a "simple" preferences mode, additionally to the full mode we already have.
 
 
== Current discussions ==
 
* [[VoutRework|Vout Rework]] - improving the video output subsystem
 
* [[telnet rc rewrite]] - Merging the "telnet" and "rc" controls  
 
* [[SimplePreferences|Simple Preferences]] - We wish to add a "simple" preferences mode, additionally to the full mode we already have
 
 
* [[QtIntfTODO|Qt Interface TODO]] - A brand new qt4 interface ... in order to get rid of wxWidgets.
 
* [[QtIntfTODO|Qt Interface TODO]] - A brand new qt4 interface ... in order to get rid of wxWidgets.
=== Design ===
+
** [[QtIntfMockups]]
* [[DefaultSkinRequirements|Default Skin Requirements]] - Specifications of an eligible skin for default skin.
+
*** [[QtImageset]]
 +
*** [[QtIntfMockups-DericksIdea]]
 +
* [[Qt and GTK]]
 +
* [[DBus-spec]] - Specification for a Common, Desktop neutral, Media Player D-Bus interface.
 +
* [[StatsSystem |Stats System]]
 +
* [[InteractionSystem]] - Interaction System
 +
* [[MediaControlAPI|Media Control API]] - an '''OUTDATED''' high level player-independent media API
 +
* [[0.8.5StringReview]]
 +
* [[2005StringsReview]]
 +
* [[Libavcodec regressions]]
 +
* [[Mobile Features]]
 +
* [[AndroidTODO]] - moved to [https://code.videolan.org/videolan/vlc/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=Component%3A%3APort%3A%20Android Gitlab Android Component] and [https://code.videolan.org/videolan/vlc/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=Component%3A%3AInterface%3A%20Android Gitlab Android Interface Component]
 +
* [[SDI API]] - Linux-related: regarding [[wikipedia:Serial digital interface|SDI]] cards for [[V4l2]]
 +
* [[Newplaylist]]
 +
* [[Newsoundslider]]
 +
* [[BOMM3U]] - [[wikipedia:Byte order mark|Byte order mark]] for [[M3U]] playlists. <code>#EXTM3U</code> means [[wikipedia:M3U#Extended_M3U|Extended M3U]]
  
== Passed discussions ==
 
* [[0.9.0PlaylistTODO|0.9.0 Playlist TODO]] - Major changes in the upcoming version
 
* [[ExternalAPI|External API]] - improving the external API to vlc
 
* [[MediaControlAPI|Media Control API]] - an high level player-independent media API, wrapping around our [[ExternalAPI|External API]]
 
 
=== Design ===
 
=== Design ===
 
* [[WebsiteRedesign|Website Redesign]] and [[WebsiteDesign|Design Proposals]]
 
* [[WebsiteRedesign|Website Redesign]] and [[WebsiteDesign|Design Proposals]]
 +
* [[DefaultSkinRequirements|Default Skin Requirements]] - Specifications of an eligible skin for default skin.
  
</div>
+
[[Category:Development]]
 
 
<div style="color:#000;background-color:#f5fffa;border:1px solid #a3bfb1;padding:10px;margin:6px; float: left;">
 
<h2 style="margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3bfb1;text-align:left;color:#000;padding:0.2em 0.4em;">
 
Build an application on VLC</h2>
 
There are several ways to build an application that uses VLC. Some are listed here.
 
* Build a GPL application using libvlc, in C/C++/C#
 
* Use the python bindings
 
* Use the java bindings
 
* Use the ActiveX Controls
 
* Use the JavaScript API
 
* Talk to VLC through the [[DBus]] communication
 
</div>
 
|-
 
|}
 

Latest revision as of 19:45, 7 December 2023

Coding on VLC

VLC development links

Current technical discussions on VLC

Past discussions

Design