<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sterops</id>
	<title>VideoLAN Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Sterops"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/Sterops/"/>
	<updated>2026-11-04T16:40:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Hacker_Guide/Video_Output&amp;diff=14586</id>
		<title>Hacker Guide/Video Output</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Hacker_Guide/Video_Output&amp;diff=14586"/>
		<updated>2009-08-10T14:30:35Z</updated>

		<summary type="html">&lt;p&gt;Sterops: /* How to write a video output plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The video output layer=&lt;br /&gt;
&lt;br /&gt;
==Data structures and main loop==&lt;br /&gt;
&lt;br /&gt;
Important data structures are defined in include/video.h and include/video_output.h. The main data structure is picture_t, which describes everything a video decoder thread needs. Please refer to this file for more information. Typically, p_data will be a pointer to YUV planar picture.&lt;br /&gt;
&lt;br /&gt;
Note also the subpicture_t structure. In fact the VLC SPU decoder only parses the SPU header, and converts the SPU graphical data to an internal format which can be rendered much faster. So a part of the &amp;quot;real&amp;quot; SPU decoder lies in src/video_output/video_spu.c.&lt;br /&gt;
&lt;br /&gt;
The vout_thread_t structure is much more complex, but you needn&#039;t understand everything. Basically the video output thread manages a heap of pictures and subpictures (5 by default). Every picture has a status (displayed, destroyed, empty...) and eventually a presentation time. The main job of the video output is an infinite loop to : [this is subject to change in the near future]&lt;br /&gt;
&lt;br /&gt;
#Find the next picture to display in the heap.&lt;br /&gt;
#Find the current subpicture to display.&lt;br /&gt;
#Render the picture (if the video output plug-in doesn&#039;t support YUV overlay). Rendering will call an optimized YUV plug-in, which will also do the scaling, add subtitles and an optional picture information field.&lt;br /&gt;
#Sleep until the specified date.&lt;br /&gt;
#Display the picture (plug-in function). For outputs which display RGB data, it is often accomplished with a buffer switching. p_vout-&amp;gt;p_buffer is an array of two buffers where the YUV transform takes place, and p_vout-&amp;gt;i_buffer_index indicates the currently displayed buffer.&lt;br /&gt;
#Manage events. &lt;br /&gt;
&lt;br /&gt;
==Methods used by video decoders==&lt;br /&gt;
&lt;br /&gt;
The video output exports a bunch of functions so that decoders can send their decoded data. The most important function is vout_CreatePicture which allocates the picture buffer to the size indicated by the video decoder. It then just needs to feed (void *) p_picture-&amp;gt;p_data with the decoded data, and call vout_DisplayPicture and vout_DatePicture upon necessary.&lt;br /&gt;
&lt;br /&gt;
*picture_t * vout_CreatePicture ( vout_thread_t *p_vout, int i_type, int i_width, int i_height ) : Returns an allocated picture buffer. i_type will be for instance YUV_420_PICTURE, and i_width and i_height are in pixels.&lt;br /&gt;
&lt;br /&gt;
=Warning=&lt;br /&gt;
&lt;br /&gt;
If no picture is available in the heap, vout_CreatePicture will return NULL.&lt;br /&gt;
&lt;br /&gt;
*vout_LinkPicture ( vout_thread_t *p_vout, picture_t *p_pic ) : Increases the refcount of the picture, so that it doesn&#039;t get accidently freed while the decoder still needs it. For instance, an I or P picture can still be needed after displaying to decode interleaved B pictures.&lt;br /&gt;
*vout_UnlinkPicture ( vout_thread_t *p_vout, picture_t *p_pic ) : Decreases the refcount of the picture. An unlink must be done for every link previously made.&lt;br /&gt;
*vout_DatePicture ( vout_thread_t *p_vout, picture_t *p_pic ) : Gives the picture a presentation date. You can start working on a picture before knowing precisely at what time it will be displayed. For instance to date an I or P picture, you must wait until you have decoded all previous B pictures (which are indeed placed after - decoding order != presentation order).&lt;br /&gt;
*vout_DisplayPicture ( vout_thread_t *p_vout, picture_t *p_pic ) : Tells the video output that a picture has been completely decoded and is ready to be rendered. It can be called before or after vout_DatePicture.&lt;br /&gt;
*vout_DestroyPicture ( vout_thread_t *p_vout, picture_t *p_pic ) : Marks the picture as empty (useful in case of a stream parsing error).&lt;br /&gt;
*subpicture_t * vout_CreateSubPicture ( vout_thread_t *p_vout, int i_channel, int i_type ) : Returns an allocated subpicture buffer. i_channel is the ID of the subpicture channel, i_type is DVD_SUBPICTURE or TEXT_SUBPICTURE, i_size is the length in bytes of the packet.&lt;br /&gt;
*vout_DisplaySubPicture ( vout_thread_t *p_vout, subpicture_t *p_subpic ) : Tells the video output that a subpicture has been completely decoded. It obsoletes the previous subpicture.&lt;br /&gt;
*vout_DestroySubPicture ( vout_thread_t *p_vout, subpicture_t *p_subpic ) : Marks the subpicture as empty. &lt;br /&gt;
&lt;br /&gt;
==How to write a video output plug-in==&lt;br /&gt;
&lt;br /&gt;
A video output takes care of the system calls to display the pictures and manage the output window. For the most minimalistic framework, look at vmem.c, which just &amp;quot;renders&amp;quot; to dummy internal memory. From there, go on to directfb.c and svgalib.c, and finally go for x11 and windows.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Video outputs reside in the modules/video_output/ directory. modules/video_output/x11/xcommon.c gives example of functions you must write :&lt;br /&gt;
* int  Activate   ( vlc_object_t *p_this )&lt;br /&gt;
** As for any VLC module, this function verifies if the module suits VLC core needs, by interrogating p_this structure.&lt;br /&gt;
** In case of success, Activate sets up callback functions needed to run the video output (needed functions explained below), and returns VLC_SUCCESS&lt;br /&gt;
** In case of failure, Activate frees memory and returns an error code (VLC_EGENERIC, VLC_ENOMEM, ...)&lt;br /&gt;
* void Deactivate ( vlc_object_t *p_this )&lt;br /&gt;
** Called to destroy the module: Deactivate needs to free all allocated memory and destroys cleanly the video output thread&lt;br /&gt;
&lt;br /&gt;
The callback functions you need to implement are (callback name, function prototype) :&lt;br /&gt;
* (p_vout-&amp;gt;pf_init, static int  InitVideo      ( vout_thread_t * );)&lt;br /&gt;
** Called at the beginning of the output thread and each time the window is resized, it creates a buffer of output pictures&lt;br /&gt;
* (p_vout-&amp;gt;pf_end, static void EndVideo       ( vout_thread_t * );)&lt;br /&gt;
** Destroys output pictures created by InitVideo&lt;br /&gt;
* (p_vout-&amp;gt;pf_manage, static int  ManageVideo    ( vout_thread_t * );)&lt;br /&gt;
** Manage X11 events, and handle window resizing&lt;br /&gt;
* (p_vout-&amp;gt;pf_render, static void RenderVideo    ( vout_thread_t *, picture_t * );)&lt;br /&gt;
** Optional (set p_vout-&amp;gt;pf_render to NULL if not implemented); Used when pictures from the decoder need to be rendered before display&lt;br /&gt;
* (p_vout-&amp;gt;pf_display, static void DisplayVideo   ( vout_thread_t *, picture_t * );)&lt;br /&gt;
** Does the actual display of pictures onto screen&lt;br /&gt;
* (p_vout-&amp;gt;pf_control, static int  Control        ( vout_thread_t *, int, va_list );)&lt;br /&gt;
** Control facility for the video output&lt;br /&gt;
&lt;br /&gt;
==How to write a YUV plug-in==&lt;br /&gt;
&lt;br /&gt;
Look at the C source plugins/yuv/transforms_yuv.c. You need to redefine just the same transformations. Basically, it is a matrix multiply operation. Good luck.&lt;/div&gt;</summary>
		<author><name>Sterops</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Hacker_Guide/Video_Output&amp;diff=14585</id>
		<title>Hacker Guide/Video Output</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Hacker_Guide/Video_Output&amp;diff=14585"/>
		<updated>2009-08-10T14:29:00Z</updated>

		<summary type="html">&lt;p&gt;Sterops: /* How to write a video output plug-in */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=The video output layer=&lt;br /&gt;
&lt;br /&gt;
==Data structures and main loop==&lt;br /&gt;
&lt;br /&gt;
Important data structures are defined in include/video.h and include/video_output.h. The main data structure is picture_t, which describes everything a video decoder thread needs. Please refer to this file for more information. Typically, p_data will be a pointer to YUV planar picture.&lt;br /&gt;
&lt;br /&gt;
Note also the subpicture_t structure. In fact the VLC SPU decoder only parses the SPU header, and converts the SPU graphical data to an internal format which can be rendered much faster. So a part of the &amp;quot;real&amp;quot; SPU decoder lies in src/video_output/video_spu.c.&lt;br /&gt;
&lt;br /&gt;
The vout_thread_t structure is much more complex, but you needn&#039;t understand everything. Basically the video output thread manages a heap of pictures and subpictures (5 by default). Every picture has a status (displayed, destroyed, empty...) and eventually a presentation time. The main job of the video output is an infinite loop to : [this is subject to change in the near future]&lt;br /&gt;
&lt;br /&gt;
#Find the next picture to display in the heap.&lt;br /&gt;
#Find the current subpicture to display.&lt;br /&gt;
#Render the picture (if the video output plug-in doesn&#039;t support YUV overlay). Rendering will call an optimized YUV plug-in, which will also do the scaling, add subtitles and an optional picture information field.&lt;br /&gt;
#Sleep until the specified date.&lt;br /&gt;
#Display the picture (plug-in function). For outputs which display RGB data, it is often accomplished with a buffer switching. p_vout-&amp;gt;p_buffer is an array of two buffers where the YUV transform takes place, and p_vout-&amp;gt;i_buffer_index indicates the currently displayed buffer.&lt;br /&gt;
#Manage events. &lt;br /&gt;
&lt;br /&gt;
==Methods used by video decoders==&lt;br /&gt;
&lt;br /&gt;
The video output exports a bunch of functions so that decoders can send their decoded data. The most important function is vout_CreatePicture which allocates the picture buffer to the size indicated by the video decoder. It then just needs to feed (void *) p_picture-&amp;gt;p_data with the decoded data, and call vout_DisplayPicture and vout_DatePicture upon necessary.&lt;br /&gt;
&lt;br /&gt;
*picture_t * vout_CreatePicture ( vout_thread_t *p_vout, int i_type, int i_width, int i_height ) : Returns an allocated picture buffer. i_type will be for instance YUV_420_PICTURE, and i_width and i_height are in pixels.&lt;br /&gt;
&lt;br /&gt;
=Warning=&lt;br /&gt;
&lt;br /&gt;
If no picture is available in the heap, vout_CreatePicture will return NULL.&lt;br /&gt;
&lt;br /&gt;
*vout_LinkPicture ( vout_thread_t *p_vout, picture_t *p_pic ) : Increases the refcount of the picture, so that it doesn&#039;t get accidently freed while the decoder still needs it. For instance, an I or P picture can still be needed after displaying to decode interleaved B pictures.&lt;br /&gt;
*vout_UnlinkPicture ( vout_thread_t *p_vout, picture_t *p_pic ) : Decreases the refcount of the picture. An unlink must be done for every link previously made.&lt;br /&gt;
*vout_DatePicture ( vout_thread_t *p_vout, picture_t *p_pic ) : Gives the picture a presentation date. You can start working on a picture before knowing precisely at what time it will be displayed. For instance to date an I or P picture, you must wait until you have decoded all previous B pictures (which are indeed placed after - decoding order != presentation order).&lt;br /&gt;
*vout_DisplayPicture ( vout_thread_t *p_vout, picture_t *p_pic ) : Tells the video output that a picture has been completely decoded and is ready to be rendered. It can be called before or after vout_DatePicture.&lt;br /&gt;
*vout_DestroyPicture ( vout_thread_t *p_vout, picture_t *p_pic ) : Marks the picture as empty (useful in case of a stream parsing error).&lt;br /&gt;
*subpicture_t * vout_CreateSubPicture ( vout_thread_t *p_vout, int i_channel, int i_type ) : Returns an allocated subpicture buffer. i_channel is the ID of the subpicture channel, i_type is DVD_SUBPICTURE or TEXT_SUBPICTURE, i_size is the length in bytes of the packet.&lt;br /&gt;
*vout_DisplaySubPicture ( vout_thread_t *p_vout, subpicture_t *p_subpic ) : Tells the video output that a subpicture has been completely decoded. It obsoletes the previous subpicture.&lt;br /&gt;
*vout_DestroySubPicture ( vout_thread_t *p_vout, subpicture_t *p_subpic ) : Marks the subpicture as empty. &lt;br /&gt;
&lt;br /&gt;
==How to write a video output plug-in==&lt;br /&gt;
&lt;br /&gt;
A video output takes care of the system calls to display the pictures and manage the output window. For the most minimalistic framework, look at vmem.c, which just &amp;quot;renders&amp;quot; to dummy internal memory. From there, go on to directfb.c and svgalib.c, and finally go for x11 and windows.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Video outputs reside in the modules/video_output/ directory. modules/video_output/x11/xcommon.c gives example of functions you must write :&lt;br /&gt;
# int  Activate   ( vlc_object_t *p_this )&lt;br /&gt;
## As for any VLC module, this function verifies if the module suits VLC core needs, by interrogating p_this structure.&lt;br /&gt;
## In case of success, Activate sets up callback functions needed to run the video output (needed functions explained below), and returns VLC_SUCCESS&lt;br /&gt;
## In case of failure, Activate frees memory and returns an error code (VLC_EGENERIC, VLC_ENOMEM, ...)&lt;br /&gt;
# void Deactivate ( vlc_object_t *p_this )&lt;br /&gt;
## Called to destroy the module: Deactivate needs to free all allocated memory and destroys cleanly the video output thread&lt;br /&gt;
&lt;br /&gt;
The callback functions you need to implement are (callback name, function prototype) :&lt;br /&gt;
# (p_vout-&amp;gt;pf_init, static int  InitVideo      ( vout_thread_t * );)&lt;br /&gt;
## Called at the beginning of the output thread and each time the window is resized, it creates a buffer of output pictures&lt;br /&gt;
# (p_vout-&amp;gt;pf_end, static void EndVideo       ( vout_thread_t * );)&lt;br /&gt;
## Destroys output pictures created by InitVideo&lt;br /&gt;
# (p_vout-&amp;gt;pf_manage, static int  ManageVideo    ( vout_thread_t * );)&lt;br /&gt;
## Manage X11 events, and handle window resizing&lt;br /&gt;
# (p_vout-&amp;gt;pf_render, static void RenderVideo    ( vout_thread_t *, picture_t * );)&lt;br /&gt;
## Optional (set p_vout-&amp;gt;pf_render to NULL if not implemented); Used when pictures from the decoder need to be rendered before display&lt;br /&gt;
# (p_vout-&amp;gt;pf_display, static void DisplayVideo   ( vout_thread_t *, picture_t * );)&lt;br /&gt;
## Does the actual display of pictures onto screen&lt;br /&gt;
# (p_vout-&amp;gt;pf_control, static int  Control        ( vout_thread_t *, int, va_list );)&lt;br /&gt;
## Control facility for the video output&lt;br /&gt;
&lt;br /&gt;
==How to write a YUV plug-in==&lt;br /&gt;
&lt;br /&gt;
Look at the C source plugins/yuv/transforms_yuv.c. You need to redefine just the same transformations. Basically, it is a matrix multiply operation. Good luck.&lt;/div&gt;</summary>
		<author><name>Sterops</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2009_projects&amp;diff=14291</id>
		<title>SoC 2009 projects</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2009_projects&amp;diff=14291"/>
		<updated>2009-05-31T09:47:10Z</updated>

		<summary type="html">&lt;p&gt;Sterops: GPU decoding&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a list of the accepted projects for Google Summer of Code 2OO9.&lt;br /&gt;
&lt;br /&gt;
= List of current VLC projects =&lt;br /&gt;
&lt;br /&gt;
== QuickTimeVR Playback ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2009/QuickTimeVR Playback]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Leonox|León Moctezuma]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:Dionoea|Antoine Cellerier]]&lt;br /&gt;
* &#039;&#039;&#039;Comentor&#039;&#039;&#039;: Yuval Levy&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:  VLC is a cross platform media player widely used and FreePV is a panoramic viewer that was initially developed due to the lack of an implementation of QuickTime and Shockwave for Linux, both work with QuickTime files and the problem arise from that, since video and vr share the mime type, to solve this, the main goal is to integrate the FreePV library into VLC to enable it to play QuickTimeVR contents, the second goal is to explore the use of wiimote as an advance interaction method.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Media Library==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2009/Media Library]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:jetru|Srikanth Raju]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:J-Peg|Jean-Philippe Andre]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:  The project is about extending the Media Library(ML) for VLC Player. The media library will allow users to manage all their local and network media. The project will use the basic structure that already exists for the ML and will focus on extending the features. New features include Search, Smart playlists, Annotations and &amp;quot;Just play music&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Lua Services Discovery==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2009/Lua Services Discovery]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Sephiroth87|Fabio Ritrovato]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:J-Peg|Jean-Philippe Andre]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:The main goal of this project will be giving VideoLAN a Lua framework to load scriptable services discovery, to make them easier to write, if they don&#039;t require C complexity.&lt;br /&gt;
:Second goal will be giving VideoLAN access to a great number of online music and video services, like Jamendo, Magnatune, youtube, Dailymotion, etc..., using the new Lua modules.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==A Media Center Interface for VLC==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2009/Media Center Interface for VLC]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:barrywardell|Barry Wardell]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:ILEoo|Ilkka Ollakka]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:While it is easy to use and functional, the existing default, Qt based GUI for VLC is quite minimal and basic. I propose to develop a new &amp;quot;Media Center&amp;quot; style GUI. This GUI will be based on Qt/OpenGL and will aim to be aesthetically pleasing, while remaining easy to use and functional. It will draw on many nice features of other popular media center software such as Front Row, Windows Media Center and XBMC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Qt Interface Improvements==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2009/Qt Interface Improvements]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:cyril7|Cyril Nikolaev]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:J-b|Jean-Baptiste Kempf]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:Though existing Qt interface offers the user extensive control over VLC functionality, there is much to do from a usability point of view. The project aims to streamline the interface, deliver it from pointless elements and integrate neatly the uncoordinated dilog boxes (like Adjustments or Playlist) into main interface. Reorganization of the interface would reduce user efforts (and mouse click) needed to access desired feature.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==DXVA integration==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2009/DXVA integration]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Geal|Geoffroy Couprie]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: Jérôme Decoodt&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:The Windows DXVA API gives access to video decoding and processing in the graphic card. Decoding with the GPU will reduce the load on the CPU and (hopefully) speed up the decoding. This project aims at creating a MPEG2 and H.264 decoder for VLC using this API.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==RTMP Flash Streaming==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2009/RTMP Flash Streaming]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:zhigang|Zhigang Wang]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:Courmisch|Remi Denis-Courmont]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:This project is about to implement the RTMP Streaming function for VLC media player. It includes RTMP input and output parts(Fix bugs in RTMP input module and total rewrite the RTMP output module). while Adobe is about to publish the RTMP protocol spec in the first half of this year, It&#039;s the time to do this job.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Audio Filters in lua ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC_2009/Audio_Filter_Improvement]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: Xiang Wang&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:Dionoea|Antoine Cellerier]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:Lua script language has been used successfully to VLC.First I&#039;ll try to create scriptable new audio filters in lua and enable users to create whatever audio filtering function they want in a Lua script. The second task is to implement new algorithm for 3D effects of VLC filters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GPU Decoding ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC_2009/GPU_Decoding_Support]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:Sterops|Etienne Membrives]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: [[User:jpsaman|Jean-Paul Saman]]&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:The Video Acceleration API is an API designed to provide hardware acceleration for graphic application using the processing power of graphic cards. Drivers exists for Intel graphic cards. This project aims to implement a decoder and the corresponding video output for VLC, using the power of VA API to reduce CPU consumption while reading h.264, VC-1 and MPEG-4 videos.&lt;br /&gt;
&lt;br /&gt;
= List of current x264 projects =&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= List of current VLMC projects =&lt;br /&gt;
==Enhancing VLMC==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Project page: [[SoC 2009/Enhancing VLMC]]&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Student&#039;&#039;&#039;: [[User:chouquette|Hugo Beauzee-Luyssen]]&lt;br /&gt;
* &#039;&#039;&#039;Mentor&#039;&#039;&#039;: Ludovic &#039;etix&#039; Fauvet&lt;br /&gt;
* &#039;&#039;&#039;Abstract&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
:The aim of this student project is to provide a functionnal video generation workflow for the video editing tool &#039;VLMC&#039;. It includes an effect and a transition API, in order to allow developpers to create new modules for this application. This project will be developped closely with VLMC team, so they can add required features, such as the timeline, a previsualisation widget, and many others...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:SoC_2009_Project]][[Category:SoC]]&lt;/div&gt;</summary>
		<author><name>Sterops</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2009/GPU_Decoding_Support&amp;diff=14151</id>
		<title>SoC 2009/GPU Decoding Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2009/GPU_Decoding_Support&amp;diff=14151"/>
		<updated>2009-05-18T14:39:20Z</updated>

		<summary type="html">&lt;p&gt;Sterops: Git repository&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoCProject|year=2009|student=[[User:Sterops|Etienne Membrives]]|mentor=[[User:jpsaman|Jean-Paul Saman]]}}&lt;br /&gt;
&lt;br /&gt;
== Project Abstract ==&lt;br /&gt;
The Video Acceleration API is an API designed to provide hardware acceleration for graphic application using the processing power of graphic cards. Drivers exists for Intel graphic cards. A backend for the VDPAU API (by nVidia) has been released and the same is under way for ATI cards.&lt;br /&gt;
Thus, this project aims to implement a decoder and the corresponding video output for VLC, using the power of VA API to reduce CPU consumption while reading h.264, VC-1 and MPEG-4 videos.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
* &#039;&#039;&#039;March, 23&#039;&#039;&#039;: Official start date&lt;br /&gt;
* &#039;&#039;&#039;June, 5&#039;&#039;&#039;: End of classes, I will be fully available for GSoC from this date&lt;br /&gt;
* &#039;&#039;&#039;June, 8&#039;&#039;&#039;: (&#039;&#039;Report 0&#039;&#039;) Report on already existing solutions (other softwares)&lt;br /&gt;
* &#039;&#039;&#039;June, 15&#039;&#039;&#039;: (&#039;&#039;Report 1&#039;&#039;) &lt;br /&gt;
* &#039;&#039;&#039;June, 22&#039;&#039;&#039;: (&#039;&#039;Report 2&#039;&#039;) Functional VAAPI Decoder&lt;br /&gt;
* &#039;&#039;&#039;June, 29&#039;&#039;&#039;: (&#039;&#039;Report 3&#039;&#039;) &lt;br /&gt;
* &#039;&#039;&#039;July, 5&#039;&#039;&#039;: (&#039;&#039;Report 4&#039;&#039;) Functional VAAPI Video Output&lt;br /&gt;
* &#039;&#039;&#039;July, 12&#039;&#039;&#039;: (&#039;&#039;Report 5&#039;&#039;) Mid-term evaluations&lt;br /&gt;
* &#039;&#039;&#039;July, 19&#039;&#039;&#039;: (&#039;&#039;Report 6&#039;&#039;) Integration of video filters&lt;br /&gt;
* &#039;&#039;&#039;July, 26&#039;&#039;&#039;: (&#039;&#039;Report 7&#039;&#039;) Debugging&lt;br /&gt;
* &#039;&#039;&#039;August, 3&#039;&#039;&#039;: (&#039;&#039;Report 8&#039;&#039;) Documentation&lt;br /&gt;
* &#039;&#039;&#039;August, 10&#039;&#039;&#039;: «Pencil down» date&lt;br /&gt;
&lt;br /&gt;
== GIT Repository ==&lt;br /&gt;
* GitWeb : [http://membrives.fr/cgi-bin/gitweb.cgi?p=vlc/.git]&lt;/div&gt;</summary>
		<author><name>Sterops</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2009/VAAPI_Support&amp;diff=14109</id>
		<title>SoC 2009/VAAPI Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2009/VAAPI_Support&amp;diff=14109"/>
		<updated>2009-05-16T20:32:01Z</updated>

		<summary type="html">&lt;p&gt;Sterops: SoC 2009/VAAPI Support moved to SoC 2009/GPU Decoding Support: More general subject for the project&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[SoC 2009/GPU Decoding Support]]&lt;/div&gt;</summary>
		<author><name>Sterops</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2009/GPU_Decoding_Support&amp;diff=14108</id>
		<title>SoC 2009/GPU Decoding Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2009/GPU_Decoding_Support&amp;diff=14108"/>
		<updated>2009-05-16T20:32:01Z</updated>

		<summary type="html">&lt;p&gt;Sterops: SoC 2009/VAAPI Support moved to SoC 2009/GPU Decoding Support: More general subject for the project&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoCProject|year=2009|student=[[User:Sterops|Etienne Membrives]]|mentor=[[User:jpsaman|Jean-Paul Saman]]}}&lt;br /&gt;
&lt;br /&gt;
== Project Abstract ==&lt;br /&gt;
The Video Acceleration API is an API designed to provide hardware acceleration for graphic application using the processing power of graphic cards. Drivers exists for Intel graphic cards. A backend for the VDPAU API (by nVidia) has been released and the same is under way for ATI cards.&lt;br /&gt;
Thus, this project aims to implement a decoder and the corresponding video output for VLC, using the power of VA API to reduce CPU consumption while reading h.264, VC-1 and MPEG-4 videos.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
* &#039;&#039;&#039;March, 23&#039;&#039;&#039;: Official start date&lt;br /&gt;
* &#039;&#039;&#039;June, 5&#039;&#039;&#039;: End of classes, I will be fully available for GSoC from this date&lt;br /&gt;
* &#039;&#039;&#039;June, 8&#039;&#039;&#039;: (&#039;&#039;Report 0&#039;&#039;) Report on already existing solutions (other softwares)&lt;br /&gt;
* &#039;&#039;&#039;June, 15&#039;&#039;&#039;: (&#039;&#039;Report 1&#039;&#039;) &lt;br /&gt;
* &#039;&#039;&#039;June, 22&#039;&#039;&#039;: (&#039;&#039;Report 2&#039;&#039;) Functional VAAPI Decoder&lt;br /&gt;
* &#039;&#039;&#039;June, 29&#039;&#039;&#039;: (&#039;&#039;Report 3&#039;&#039;) &lt;br /&gt;
* &#039;&#039;&#039;July, 5&#039;&#039;&#039;: (&#039;&#039;Report 4&#039;&#039;) Functional VAAPI Video Output&lt;br /&gt;
* &#039;&#039;&#039;July, 12&#039;&#039;&#039;: (&#039;&#039;Report 5&#039;&#039;) Mid-term evaluations&lt;br /&gt;
* &#039;&#039;&#039;July, 19&#039;&#039;&#039;: (&#039;&#039;Report 6&#039;&#039;) Integration of video filters&lt;br /&gt;
* &#039;&#039;&#039;July, 26&#039;&#039;&#039;: (&#039;&#039;Report 7&#039;&#039;) Debugging&lt;br /&gt;
* &#039;&#039;&#039;August, 3&#039;&#039;&#039;: (&#039;&#039;Report 8&#039;&#039;) Documentation&lt;br /&gt;
* &#039;&#039;&#039;August, 10&#039;&#039;&#039;: «Pencil down» date&lt;/div&gt;</summary>
		<author><name>Sterops</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2009/GPU_Decoding_Support&amp;diff=14107</id>
		<title>SoC 2009/GPU Decoding Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2009/GPU_Decoding_Support&amp;diff=14107"/>
		<updated>2009-05-16T20:03:32Z</updated>

		<summary type="html">&lt;p&gt;Sterops: Timeline&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoCProject|year=2009|student=[[User:Sterops|Etienne Membrives]]|mentor=[[User:jpsaman|Jean-Paul Saman]]}}&lt;br /&gt;
&lt;br /&gt;
== Project Abstract ==&lt;br /&gt;
The Video Acceleration API is an API designed to provide hardware acceleration for graphic application using the processing power of graphic cards. Drivers exists for Intel graphic cards. A backend for the VDPAU API (by nVidia) has been released and the same is under way for ATI cards.&lt;br /&gt;
Thus, this project aims to implement a decoder and the corresponding video output for VLC, using the power of VA API to reduce CPU consumption while reading h.264, VC-1 and MPEG-4 videos.&lt;br /&gt;
&lt;br /&gt;
== Timeline ==&lt;br /&gt;
* &#039;&#039;&#039;March, 23&#039;&#039;&#039;: Official start date&lt;br /&gt;
* &#039;&#039;&#039;June, 5&#039;&#039;&#039;: End of classes, I will be fully available for GSoC from this date&lt;br /&gt;
* &#039;&#039;&#039;June, 8&#039;&#039;&#039;: (&#039;&#039;Report 0&#039;&#039;) Report on already existing solutions (other softwares)&lt;br /&gt;
* &#039;&#039;&#039;June, 15&#039;&#039;&#039;: (&#039;&#039;Report 1&#039;&#039;) &lt;br /&gt;
* &#039;&#039;&#039;June, 22&#039;&#039;&#039;: (&#039;&#039;Report 2&#039;&#039;) Functional VAAPI Decoder&lt;br /&gt;
* &#039;&#039;&#039;June, 29&#039;&#039;&#039;: (&#039;&#039;Report 3&#039;&#039;) &lt;br /&gt;
* &#039;&#039;&#039;July, 5&#039;&#039;&#039;: (&#039;&#039;Report 4&#039;&#039;) Functional VAAPI Video Output&lt;br /&gt;
* &#039;&#039;&#039;July, 12&#039;&#039;&#039;: (&#039;&#039;Report 5&#039;&#039;) Mid-term evaluations&lt;br /&gt;
* &#039;&#039;&#039;July, 19&#039;&#039;&#039;: (&#039;&#039;Report 6&#039;&#039;) Integration of video filters&lt;br /&gt;
* &#039;&#039;&#039;July, 26&#039;&#039;&#039;: (&#039;&#039;Report 7&#039;&#039;) Debugging&lt;br /&gt;
* &#039;&#039;&#039;August, 3&#039;&#039;&#039;: (&#039;&#039;Report 8&#039;&#039;) Documentation&lt;br /&gt;
* &#039;&#039;&#039;August, 10&#039;&#039;&#039;: «Pencil down» date&lt;/div&gt;</summary>
		<author><name>Sterops</name></author>
	</entry>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=SoC_2009/GPU_Decoding_Support&amp;diff=14106</id>
		<title>SoC 2009/GPU Decoding Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=SoC_2009/GPU_Decoding_Support&amp;diff=14106"/>
		<updated>2009-05-16T19:07:22Z</updated>

		<summary type="html">&lt;p&gt;Sterops: Initial page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SoCProject|year=2009|student=[[User:Sterops|Etienne Membrives]]|mentor=[[User:jpsaman|Jean-Paul Saman]]}}&lt;br /&gt;
&lt;br /&gt;
== Project Abstract ==&lt;br /&gt;
The Video Acceleration API is an API designed to provide hardware acceleration for graphic application using the processing power of graphic cards. Drivers exists for Intel graphic cards. A backend for the VDPAU API (by nVidia) has been released and the same is under way for ATI cards.&lt;br /&gt;
Thus, this project aims to implement a decoder and the corresponding video output for VLC, using the power of VA API to reduce CPU consumption while reading h.264, VC-1 and MPEG-4 videos.&lt;/div&gt;</summary>
		<author><name>Sterops</name></author>
	</entry>
</feed>