如何确定某个色度的每个像素的平面数和字节数?

Aar*_*oup 14 c video vlc libvlc

我正在使用LibVLC,并希望在内存中渲染视频像素,这样我就可以拍摄帧的快照,而无需在窗口中绘制视频(默认情况下).

如果我理解正确,可以通过调用libvlc_video_set_callbacks和libvlc_video_set_format_callbacks来实现.在第一个函数中,我必须指定类型为libvlc_video_lock_cb的回调 ,其中我将初始化三个平面中的一个,我理解的是将绘制像素的缓冲区.

我的问题是每个像素使用的字节数以及必须初始化的平面数取决于视频色度.虽然我知道如何获得这个色度的四个字母的标识符,但我不知道如何获得它的这些特殊属性; 如果没有这些信息,我不知道我需要分配的缓冲区大小,以及有多少个平面.

有谁知道如何做到这一点?还是我理解错误的东西?

amo*_*tzg 6

如您所述,每个像素的字节数和平面数取决于编解码器.因此,一种选择是在代码中硬编码当前选项(GRAY,I240,RV16,RV15,RV24,RV32,YUY2,YUYV,UYVY,I41N,I422,I420,I411,I410,MJPG)的值.

有关详细的代码/格式信息,请访问http://www.fourcc.org/.

您还可以查看VLC项目中的vlc_fourcc.hfourcc.c . 具体看功能vlc_fourcc_GetChromaDescription.