-
Notifications
You must be signed in to change notification settings - Fork 80
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handle nv12 pix fmt. #57
Comments
Because nobody implemented the get_bits_ycbcr case, if you want to get NV12 from the decoder's YV12 surface. vs->source_format == VDP_YCBCR_FORMAT_YV12 && destination_ycbcr_format == VDP_YCBCR_FORMAT_NV12 is simply not implemented. We have more than just YV12 and NV12 that should be implemented according to the API: http://http.download.nvidia.com/XFree86/vdpau/doxygen/html/group__misc__types.html#gab7550cf65e6d46f4fd7a1e322372e207 Feel free to do a pull request ;) |
Hi @rellla i with pleasure will be implement this functionality but i don't understand how convert your pointers |
I have not read up about this algorithm, but cedrus_mem_get_pointer(vs->yuv->data) will return a pointer to the beginning of the yuv bitstream, which you can use with CPU. destination_data[0] points to the beginning of the first plane (depending on the output format) This is YV12 (for 1 pixel) which means, when converting NV12 to YV12 you just need to split up cedrus_mem_get_pointer(vs->yuv->data)+ vs->luma_size into separate U (destination_data[1]) and V (destination_data[2]) planes. This is, what basically tiled_deinterleave_to_planar does - but without doing it with the tiled input .... |
just asked because of the license ... |
Hi, according code https://github.com/linux-sunxi/libvdpau-sunxi/blob/master/decoder.c#L149 used VDP_YCBCR_FORMAT_YV12 pixformat for cedar version grather or equal 0x1680, but when executed https://github.com/linux-sunxi/libvdpau-sunxi/blob/master/surface_video.c#L160 not handled case when vs->source_format == VDP_YCBCR_FORMAT_NV12 only handled for old cedar library https://github.com/linux-sunxi/libvdpau-sunxi/blob/master/surface_video.c#L208 , why nv12 for new cedar library are not work out? Also wiil be cool have conversion copy_yv12_to_nv12 and veca versa.
The text was updated successfully, but these errors were encountered: