VLC 1.2.0 features: part 1, video output
By Jean-Baptiste Kempf on Sunday, June 5 2011, 17:37 - VideoLAN - Permalink
Introduction
As promised in my last major post, I will try to discuss about features that are getting shaped for VLC 1.2.0.
This post is therefore the first of the series.
Be careful, this post is a bit technical.
tl;dr version: VLC 1.2.0 will be awesome, faster and have better display quality.
Video Output Rework
When I joined the VideoLAN project and the VLC development team, something like 5 years ago, people were already speaking about the Video Output rework.
This Arlésienne was, to me, a bit like our DNF.
However, during the development of VLC 1.1, VLC guru Laurent Aimar, aka 'fenrir' started to work on it. The VLC 1.1.x series has had part of this work in it, but most of the nice features were hidden to the users.
Vout Rework features
VLC 1.2.0 has seen enormous amount of work to go on this project and this work is almost finished.
This means:
- Most of the Video Outputs have been rewritten in a way or another, and their priority revised;
- Other Video Outputs were just dropped, like gapi, omapfb, hd1000v;
- OpenGL output has now got shaders to do YUV->RGB conversions in the GPU,
- Most video filters were ported to the new API, and most of them should be transcodable and streamable now.
New features
But this also means new features, like:
- Sharper subtitles rendering,
- New Video Outputs were written, notably for Direct2D, for iOS and Android,
- Important changes for the deinterlacers,
- New filter for debanding videos,
- New filter for anti-flickering of videos,
- New posterize and sepia filters for more fun.
I would like to speak about 2 of those features, in the following parts of this post.
Subtitles rendering in VLC
Definitions
- What we call
source size
is the original size in pixels of the video in the file. It is often what people callvideo definition
, like 480x640, 576x720, 720x1280, 1080x1920.
- What we call
window size
is the display size in pixels of the video in the file. It is often what people callwindow resolution
. It depends on the size of your VLC window, whether you resize it or not or if you are in full-screen mode or not.
- What we call
text OSD
are text subtitles and OSD were the text is rendered on the screen. Using arenderer
, like Freetype, it converts the text into an image.
- What we call
blending
of 2 images, if what people would callmerging
.
How does VLC display subtitles
Those days, to display subtitles, we have the following steps:
- the
text OSD
is rendered to thesource size
, - the rendered OSD is blended into the source image,
- the resulting image is passed to the video output, that scales to the
window size
and does it usually in your hardware GPU.
As you can imagine, if your source is 640x480 and your monitor is full HD, the text will be badly scaled.
However, doing this that way is better for your resources, because the most costly operation (scaling) is done in your hardware.
How will VLC display subtitles
But those days, with very powerful GPUs, can't we do differently?
Yes, we can. Using Direct3D or OpenGL.
To display subtitles, we will have the following steps:
- the
text OSD
is rendered to thewindow size
, - the rendered OSD passed to the video output in a texture,
- the
source image
is passed to the video output in a texture, - the video output scales the
source texture
fromsource size
towindow size
, - the video output blends both textures.
You can see quickly that the new way is sharper (you might need to click on the images)

Before people scream, yes, it isn't exactly the same frame which is why the colors are different and yes, white on white isn't very readable. But this is beyond the point. The point is the difference in sharpness. I'll do better screenshots, when I got time (never :D).
Compatible Video Outputs
At the time of this writing, the video outputs that can do this blending are:
- Direct3D, default on Vista and 7
- OpenGL,
- x11.
However, notable video outputs like DirectDraw and Xv are not able to work in this mode.
Deinterlacers
In addition to this work, an important amount of work was done on the VLC deinterlacers by Juha.
Notably, he has written new deinterlacer modes, fixed bugs, cleaned the code and written an impressive documentation.
The most notable parts of the work include:
- a complete InVerse TeleCine deinterlacer, very useful for old NTSC anime,
- a framerate doubling CRT TV simulator mode, named Phosphor.
And all of them are properly documented on our .
Moreover, as previously told, all modes of deinterlacing should be transcodable or streamable.
Thanks for the support. To be continued...
Read: Update of this article
Comments
Please add the 'Add Picture' in Media Information menu.
Subtitles look awesome... thanks for making my favorite program ever better. BTW i use it for music and movies
Hy and congratulations for your job! you are very great!
I'd like if VLC can playback good and smoothly (without jumpiness or pixelated effects) the HD content: AVC h264 1080i50, 1080p25...on my Vista32 SP2 + platform upgrade, GeForce8800GT driver 266.58 (DXVA2) VLC's GPU accel enabled. Interlaced content: bad playback with linear and yadif too! and jumpiness and pixelated effects in my TS files from DVB-T. But...the same files on the same machnine playback fine with divxplusplayer and powerdvd, so I think that this is not due to my (old??) PC. And please can you add the support for download smooth streaming content (A/V files chunked) in the future, here an example:
http://www.rai.tv/dl/replaytv/repla...
(not commercials at the beginning), this is very very hard, because I cannot find the \Menifest url. perhaps a good script in the folder Lua...Thanks a lot in advance. Best regards.
@airp13: sorry, I don't understand you. File a bugreport.
@Slobo: thanks.
@Trilly: we are adding multi-threading decoding to VLC 1.2 too... But that is for another post.
What I'd like to see somewhen and what seems to maybe be possible (to my unknowing mind) with the current method of subtitle rendering would be to be able to display the subtitles in the black part of the letterbox - there you always have good contrast, you don't disturb the image, and with all the very widescreen movies the space is unused on most screens anyways.
Yet if you plan to implement this or not, VLC is *already* hands-down the best (cross-plattform) AV-Player bar none, commercial or free. And that says something. Kudos and thanks to all you developers!
Hi !
I'm very happy to see the "mintyness" of this French App ! Cocorico !
But I'm wondering something: I use a very old and low power laptop (2004 with intel pentium with discrete graphic card), do the new subtitles rendering in VLC will use more CPU power than previous version of VLC ? Because this is one of the most popular feature/ability (for me and many others) is its very low CPU footprint !
What do you think ?
@Runo: well, yes, this might be possible with this rework.
@Yohan: if your computer is on Windows XP and has Direct3D support, it should work just fine with the D3D module. If it doesn't, then just use the old DirectX module, that is unchanged from VLC 1.1.x
what about doing post processing in the GPU like media player classic, and add more feature to enhance video quality, there is also something else that i will not call it a problem but it's pretty annoing, when having 10 instance of vlc opened and paused (video) there still a big amount of cpu used let's say 3% each process plus a big use of gpu which cause a temperature hit in my laptop
@VLC4Ever: post-processing on the GPU, I doubt it. But we are working D3D shaders those days to do some filtering in the GPU.
Moreover, we have a student that will work on Assembly Optimization for the video filters during the summer.
also we need to show subs on black border under the movie
can you add a zoom feature cause i want to be able to zoom in the video not resize the window
@maglev45: we are working on that too.
@2v1l: already there since a long time. Use the 'o' key.
I would like to know will this new version of VLC be able to display the subtitles in the black part of the letterbox, e.g. when witching widescreen movie on display with different aspect? Another much needed feature (at least for me) is the possibility to remember the playlist from the last launch of VLC,
@svetlisashkov: see above comment
@Jean-Baptiste Kempf: Good to hear that! Keep up the good work!
will one of the many windows developers please consider helping out the core VLC devs ASAP and make the 1.1. or 1.2 branch auto tuning of DVB USB sticks work and save their channel info to a default that can be picked up next runtime please ?
currently setting tune of zero on windows does not work here in windows XPSP3 , but works fine in Linux OC, and i and many others have waited a very long time for some win dev to try and improve these windows DVB-T tuner problems, please make the time and help out ASAP if you can.
also if a 3rd party dev or two could find their way to also port to vlc 1.1/1.2 a working and tested msharpen and Mplayer hqn3d filter for streaming and cleaning up crap low bit-rate DivX and related encodes please do so as the limited time of the core VLC devs dont have the time for these visual quality streaming niceties
@TU: many developers? Last time I checked the number of developers was holding on one hand. We have a new sharpen and a new debanding algorithm in VLC.
will 1.2 support GPU acceleration transcoding?
I just book marked your blog on Digg and StumbleUpon.I enjoy reading your commentaries.
Hi,
I have just found your post after having started to code a Direct3D interface in WPF. Is there any chance to get the source of the Direct2D vout module so that I can take inspiration from it to do it in WPF ?
Thanks,
Nicolas
@neonp: direct2D source. However, D2D only supports RGB, not YUV, so it isn't a nice fit for Video.
Hello,
I am a user and a big fan of vlc.
I want to know something,
Its for windows na?, and when it will get released, i want to use it asap.
And, what is font-cache rebuild, it takes a long time, is it fixed in this version?
Please reply.
Fontcache is already fixed in 1.1.10
Thanks for the quick reply.
Keep up the great work....
When will it release?
Whats the official release date?
Is it fixed or not?
Thanks, and reply please.
Hi,I am a fun of Vlc but the last update version 1.1.10 has disappointed me,it is not robust and crashes when it encounters scratches on the Vcd,I send the bug report.ALSO why can't vlc auto detect media type whether it is vcd,dvd or cd without manual selection the way other players do?Thank you
I can't explain it by comment. Can i upload a picture, please.