|
|
#1 | |
|
Registered User
Join Date: Apr 2010
Posts: 3
|
I'm running some tests to see how good vdpau can deal with realtime video. Getting a low delay between capturing the video and rendering it again is important.
Using VDPAU's own functions (VdpPresentationQueueQuerySurfaceStatus) I can see that the delay between VdpPresentationQueueDisplay and the surface actually getting displayed is between 45 and 62 ms on an NVIDIA ION chipset, with an Atom CPU. The video codec is VC1. Is there some way to improve these numbers ? |
|
|
|
|
|
|
#2 | |
|
Moderator
Join Date: Aug 2005
Posts: 1,327
|
Dinges,
The timestamp that is passed to VdpPresentationQueueDisplay influences when the surface is presented. A value of 0 means "as soon as possible". What value are you using? Also, surfaces can't be displayed until any rendering to those surfaces has completed. If you're primarily interested in presentation queue delay, you should just create some surfaces, use "put bits" to upload some content, and then keep flipping through the same surfaces. With a timestamp of 0, and a 60Hz display, and no need to wait for rendering, I'd expect to see delays of at most ~17ms through the presentation queue. |
|
|
|
|
|
|
#3 | ||
|
Registered User
Join Date: Apr 2010
Posts: 3
|
Quote:
Quote:
I was kind of hoping that there is some way to feed the decoder the encoded VC1 data as it comes in, so it could get started the moment the data arrives and we don't have to wait for an entire frame. |
||
|
|
|
|
|
#4 | |
|
Moderator
Join Date: Aug 2005
Posts: 1,327
|
As soon as VdpDecoderRender is called, the decoding operation will start. I don't quite understand what you're saying above.
|
|
|
|
|
|
|
#5 |
|
Registered User
Join Date: Apr 2010
Posts: 3
|
Yes but before you can start decoding and rendering, you need to have the whole frame and capturing that takes some time. So if you could start the decoding while the capturing of the frame is still ongoing, you could reduce delay quite a bit.
|
|
|
|
|
|
#6 | |
|
Moderator
Join Date: Aug 2005
Posts: 1,327
|
VDPAU is a frame (or field) based decoding API, not a slice based API. As such, one must have the entire picture's data available prior to initiating a decode operation.
Anything more complex would involve synchronization between the capture and decode drivers or even hardware; not something that would be generally useful or usable. |
|
|
|
|
![]() |
| Thread Tools | |
|
|