![]() |
|
|
#1 | |
|
Registered User
Join Date: Mar 2006
Posts: 95
|
Hi,
we are just working on a xine integration of vdpau with a h264 parser independent from ffmpeg. Actually we ran into one point we are not sure about: The VdpPictureInfoH264 doc says that referenceFrames should contain the DPB (Decoded Picture Buffer) as referenced in H264 specs. From my understanding the DPB does not only contain reference frames, but also frames which have already been decoded but not displayed, due to the decoding/display order. Now should these frames also be copied to the referenceFrames array or would just the real referenceFrams from DPB be copied into it? And related to this another question I am not exactly sure about is: will the decoder output the frames in decoder order (this is what I assume) or in display order (so doing the reordering internally)? Regards, Julian |
|
|
|
|
|
|
#2 | ||
|
Moderator
Join Date: Aug 2005
Posts: 1,116
|
Quote:
Quote:
|
||
|
|
|
| Sponsored Ads - Guests Only | |
|
|
|
|
#3 | |
|
Registered User
Join Date: Mar 2006
Posts: 95
|
Quote:
|
|
|
|
|
|
|
#4 |
|
Moderator
Join Date: Aug 2005
Posts: 1,116
|
The DPB table might be spec'd as also including non-reference pictures that haven't been displayed yet, but we only need the reference pictures. Any frame marked as a reference must go into the DPB table and stay there until it is no longer a reference. It will often stay there for long after it's displayed. In ffmpeg I think this is the union of the long-term and short-term reference lists.
Hope that helps. |
|
|
|
|
|
#5 |
|
Registered User
Join Date: Mar 2006
Posts: 95
|
Another question:
What can cause VdpDecoderRender to return VDP_STATUS_INVALID_HANDLE (3)? Might this be caused by a bad buffer or PictureInfo? |
|
|
|
|
|
#6 | |
|
Moderator
Join Date: Aug 2005
Posts: 1,116
|
Quote:
This could occur for: * The decoder object itself. * The surface being rendered to (which must be a video surface.) * The reference frames listed in the picture_info (all handles in the structure must be valid even if they aren't logically used; pass in VDP_INVALID_HANDLE for unused values.) |
|
|
|
|
|
|
#7 |
|
Registered User
Join Date: Mar 2006
Posts: 95
|
Thanks, we missed the VDP_INVALID_HANDLE for unused reference frames...
|
|
|
|
|
|
#8 |
|
Registered User
Join Date: Mar 2006
Posts: 95
|
Stephen,
I have one more question about referenceFrames. Is there any exact description what to set frame_idx to? For long-term refs I set it to long_term_frame_idx now, for short-term refs to currpicnum. Either one seems not to be ok. Can you give some details please? Thanks |
|
|
|
|
|
#9 |
|
Moderator
Join Date: Aug 2005
Posts: 1,116
|
The MPlayer patches at least fill frame_idx with the frame_num field from the slice header, for all types of reference frames.
|
|
|
|
|
|
#10 | |
|
Registered User
Join Date: Mar 2006
Posts: 95
|
We're making good progress, but regarding h264 interlaced streams I have another question:
In the VDPAU doc you state: Quote:
|
|
|
|
|
|
|
#11 |
|
Moderator
Join Date: Aug 2005
Posts: 1,116
|
I forget the exact terminology off the top of my head right now.
The basic idea is that anything that's encoded as separate pictures (not just slices within pictures) needs to be a separate decode call to VDPAU. |
|
|
|
![]() |
| Most Popular NVIDIA Based Graphics Cards | |
|
|
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
|
|