当前位置: 技术问答>linux和unix
用xvid以UYVY的格式解码出来的视频,如何在framebuffer中直接写入?
来源: 互联网 发布时间:2016-06-22
本文导语: 不知道问在这里合适不. 在做arm的视频的东西,系统是基于linux的. 用xvid以UYVY解码出来后,想在fb/3上直接显示.应该怎么样直接写到framebuffer中呢. 以这种格式解码出来的的YUV排列是不是UYVY UYVY.... 直...
不知道问在这里合适不.
在做arm的视频的东西,系统是基于linux的.
用xvid以UYVY解码出来后,想在fb/3上直接显示.应该怎么样直接写到framebuffer中呢.
以这种格式解码出来的的YUV排列是不是UYVY UYVY....
直接把每一个字节写入到framebuffer中吗?
哪位达人知道啊.
指点一下.
从来没有做过硬件的...居然来到实验室让自己研究硬件...还没有资料..折磨啊.
急等.
不胜感激~!
在做arm的视频的东西,系统是基于linux的.
用xvid以UYVY解码出来后,想在fb/3上直接显示.应该怎么样直接写到framebuffer中呢.
以这种格式解码出来的的YUV排列是不是UYVY UYVY....
直接把每一个字节写入到framebuffer中吗?
哪位达人知道啊.
指点一下.
从来没有做过硬件的...居然来到实验室让自己研究硬件...还没有资料..折磨啊.
急等.
不胜感激~!
|
UYVY的格式,你可以转换成RGB24位,然后一个像素一个像素的画到FB上,
static void uyvy2grey( __u8 *dest, __u8 *source, int width, int height )
{
int i,j;
int source_size = width * height * 2;
for( i = 1, j = 0; i 8;
ig = (c1 - dg - eg + 128 )>>8;
ib = (c1 + db)>>8;
*dest++ = (__u8) ( ir > 255 ? 255 : ( ir 255 ? 255 : ( ig 255 ? 255 : ( ib >8;
ig = (c2 - dg - eg + 128 )>>8;
ib = (c2 + db)>>8;
*dest++ = (__u8) ( ir > 255 ? 255 : ( ir 255 ? 255 : ( ig 255 ? 255 : ( ib
static void uyvy2grey( __u8 *dest, __u8 *source, int width, int height )
{
int i,j;
int source_size = width * height * 2;
for( i = 1, j = 0; i 8;
ig = (c1 - dg - eg + 128 )>>8;
ib = (c1 + db)>>8;
*dest++ = (__u8) ( ir > 255 ? 255 : ( ir 255 ? 255 : ( ig 255 ? 255 : ( ib >8;
ig = (c2 - dg - eg + 128 )>>8;
ib = (c2 + db)>>8;
*dest++ = (__u8) ( ir > 255 ? 255 : ( ir 255 ? 255 : ( ig 255 ? 255 : ( ib