Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Well, those are pretty simple. For many reasons (that are debatable, but maybe this isn't the right place?), VLC can decode on the GPU and then gets the data back from the GPU to filter/restream/reencode to finally display it. Even if this isn't the fastest way, there are good reasons for it (I can explain if needed...)

On ATI drivers, the data back path is slow, and you need a special GUID that ATI doesn't want/cannot to communicate. Adobe uses it, we cannot yet. I believe this will be fixed in the future.



(I can explain if needed...)

I'd personally be very interested in hearing some details about this, if you have a few moments to write something up (or even paste a few links to some mailing list posts or the like, somewhere that I can do some reading).


Well, yes.

First, remember that VLC is not a media player. It is a framework, like GStreamer, QT or DS. It works in the same way, with modules/plug-ins/objects that are loaded when needed.

For the matter of GPU/DSP decoding, you have two choices: either you do a codec module abstracted and independent from the rest of the modules or you plug a special codec module to a special renderer module (and violates your clean separation, but well...) The second is faster, of course. But...

But, then you cannot control anything: depending on the GPU/DSP vendor, you will have different filters (deinterlacing, noise, gradient...) that you cannot control, you have different color tones, etc... So depending on the GPU/DSP, you will not have the same experience...

Also, you cannot use that method for restreaming and converting.

Then, you need some hardware specific code, which, of course we want to avoid...

And finally, for each 'API' we need a special renderer, and not use the normal ones. Which makes more code to maintain, and VLC's core team is hardly 5 persons.


Ouch, it sounds like GPUs are a royal pain to work with. (Also: this little bit of perspective makes what you guys do seem even more awesome). Thanks for the details!


Um, this is exactly the right place.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: