You could, but you will need implement I420 to RGB transform. It's consuming, and that's why I'm using (btw QtMultimedia too) shaders for it.To show "I420" decoded images I cannot use QImage I guess?
I don't know what exactly you didn't understand in this approach.Can you explain how your approach is working?
maybe some platform specific implementation will be better...What are the drawbacks of your approach?
you have to use shaders for it, and how good you do it, so good it will be.How about scaling,anti aliasing quality?
I think Rémi Denis-Courmont has much more knowledge in this area.But can you please answer also 1)?
Is there GPU decoding on, when not why?
You could do it with VBO (if your hardware supports it) - there is no need of any special support on libvlc side.Can I not simply provide some memory space on the VRAM and VLC can directly render to it?
and you failed why?You could do it with VBO (if your hardware supports it) - there is no need of any special support on libvlc side.Can I not simply provide some memory space on the VRAM and VLC can directly render to it?
I want to try it long time...
There are no any need to support I420 pixel format directly by platform, since it come to shader just as raw data, and there transforming to RGB. And again, if you want to play video, there are big chance you will have to deal with I420 pixel format, just because it's very popular.Can be the drawback of your approach also be, that it is not supported on every platform?
What I wanted to say here is, maybe you use some OpenGL commands, which are not supported on every platform?There are no any need to support I420 pixel format directly by platform, since it come to shader just as raw data, and there transforming to RGB. And again, if you want to play video, there are big chance you will have to deal with I420 pixel format, just because it's very popular.Can be the drawback of your approach also be, that it is not supported on every platform?
At this time - yes, since I developed it on Windows and default Qt build use ANGLE lib, which offer only OpenGL ES2 api.Or do you use OpenGL ES2?
I'm not talking about bottlenecks. I am just talking about effective units using.So you say it the bottleneck is the conversion from I420 to RV32, and not that more data if moved to the GPU?
The formula to convert the image looks pretty simple I can't imagine that this is that expensive.
I think because of both, less pixels and faster conversion.
Note: Since video frames can be expensive to copy, QVideoFrame is explicitly shared, so any change made to a video frame will also apply to any copies.
Return to “Development around libVLC”
Users browsing this forum: No registered users and 33 guests