资源简介
详见我的博客:http://blog.csdn.net/caoshangpa/article/details/51953208
代码片段和文件信息
#include “ch264decoder.h“
#include
CH264Decoder::CH264Decoder()
{
createYUVTab_16();
}
CH264Decoder::~CH264Decoder()
{
deleteYUVTab();
}
void CH264Decoder::deleteYUVTab()
{
av_free(colortab);
av_free(rgb_2_pix);
}
void CH264Decoder::createYUVTab_16()
{
int i;
int u v;
colortab = (int *)av_malloc(4*256*sizeof(int));
u_b_tab = &colortab[0*256];
u_g_tab = &colortab[1*256];
v_g_tab = &colortab[2*256];
v_r_tab = &colortab[3*256];
for (i=0; i<256; i++)
{
u = v = (i-128);
u_b_tab[i] = (int) ( 1.772 * u);
u_g_tab[i] = (int) ( 0.34414 * u);
v_g_tab[i] = (int) ( 0.71414 * v);
v_r_tab[i] = (int) ( 1.402 * v);
}
rgb_2_pix = (unsigned int *)av_malloc(3*768*sizeof(unsigned int));
r_2_pix = &rgb_2_pix[0*768];
g_2_pix = &rgb_2_pix[1*768];
b_2_pix = &rgb_2_pix[2*768];
for(i=0; i<256; i++)
{
r_2_pix[i] = 0;
g_2_pix[i] = 0;
b_2_pix[i] = 0;
}
for(i=0; i<256; i++)
{
r_2_pix[i+256] = (i & 0xF8) << 8;
g_2_pix[i+256] = (i & 0xFC) << 3;
b_2_pix[i+256] = (i ) >> 3;
}
for(i=0; i<256; i++)
{
r_2_pix[i+512] = 0xF8 << 8;
g_2_pix[i+512] = 0xFC << 3;
b_2_pix[i+512] = 0x1F;
}
r_2_pix += 256;
g_2_pix += 256;
b_2_pix += 256;
}
void CH264Decoder::displayYUV_16(unsigned int *pdst unsigned char *y unsigned char *u unsigned char *v int width int height int src_ystride int src_uvstride int dst_ystride)
{
int i j;
int r g b rgb;
int yy ub ug vg vr;
unsigned char* yoff;
unsigned char* uoff;
unsigned char* voff;
int width2 = width/2;
int height2 = height/2;
for(j=0; j {
yoff = y + j * 2 * src_ystride;
uoff = u + j * src_uvstride;
voff = v + j * src_uvstride;
for(i=0; i {
yy = *(yoff+(i<<1));
ub = u_b_tab[*(uoff+i)];
ug = u_g_tab[*(uoff+i)];
vg = v_g_tab[*(voff+i)];
vr = v_r_tab[*(voff+i)];
b = yy + ub;
g = yy - ug - vg;
r = yy + vr;
rgb = r_2_pix[r] + g_2_pix[g] + b_2_pix[b];
yy = *(yoff+(i<<1)+1);
b = yy + ub;
g = yy - ug - vg;
r = yy + vr;
pdst[(j*dst_ystride+i)] = (rgb)+((r_2_pix[r] + g_2_pix[g] + b_2_pix[b])<<16);
yy = *(yoff+(i<<1)+src_ystride);
b = yy + ub;
g = yy - ug - vg;
r = yy + vr;
rgb = r_2_pix[r] + g_2_pix[g] + b_2_pix[b];
yy = *(yoff+(i<<1)+src_ystride+1);
b = yy + ub;
g = yy - ug - vg;
r = yy + vr;
pdst [((2*j+1)*dst_ystride+i*2)>>1] = (rgb)+((r_2_pix[r] + g_2_pix[g] + b_2_pix[b])<<
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4754 2016-07-19 10:35 H264Playba
文件 2770 2016-07-19 09:58 H264Playba
文件 11217934 2016-01-16 16:49 H264Playba
文件 141326 2016-01-16 16:49 H264Playba
文件 1313294 2016-01-16 16:49 H264Playba
文件 2294798 2016-01-16 16:49 H264Playba
文件 519694 2016-01-16 16:49 H264Playba
文件 95246 2016-01-16 16:49 H264Playba
文件 491022 2016-01-16 16:49 H264Playba
文件 176961 2016-01-16 16:49 H264Playba
文件 2570 2016-01-16 16:49 H264Playba
文件 3111 2016-01-16 16:49 H264Playba
文件 2853 2016-01-16 16:49 H264Playba
文件 3337 2016-01-16 16:49 H264Playba
文件 3715 2016-01-16 16:49 H264Playba
文件 2358 2016-01-16 16:49 H264Playba
文件 3763 2016-01-16 16:49 H264Playba
文件 4394 2016-01-16 16:49 H264Playba
文件 5928 2016-01-16 16:49 H264Playba
文件 7893 2016-01-16 16:49 H264Playba
文件 7168 2016-01-16 16:49 H264Playba
文件 3913 2016-01-16 16:49 H264Playba
文件 2356 2016-01-16 16:49 H264Playba
文件 6062 2016-01-16 16:49 H264Playba
文件 17933 2016-01-16 16:49 H264Playba
文件 1861 2016-01-16 16:49 H264Playba
文件 40356 2016-01-16 16:49 H264Playba
文件 975 2016-01-16 16:49 H264Playba
文件 5322 2016-01-16 16:49 H264Playba
文件 3875 2016-01-16 16:49 H264Playba
............此处省略110个文件信息
相关资源
- 从ffmpeg中抽取的h264解码器,可用于
- ffplay源代码
- 最简单的基于FFmpeg的推流器以推送R
- QT编的MP3播放器
- DVD文件VOB的生成代码
- linux系统的二级文件系统(QT实现了简
- QT生成DLL库文件的方法和使用方法详解
- FFmpeg 采集摄像头输出rtmp直播流媒体,
- 基于ffmpeg将avi视频转换为mp4视频
- (补充)修改output-example,将H.264AAC帧
- ffmpeg-win64位库
- QT+opencv+OCR 身份证号码,银行卡号识别
- X264实时编码,FFmpeg实时解码
- FFmpeg API读取视音频文件信息的一个工
- 使用FFmpeg采集摄像头图像和麦克风音
- Qt实现的简单的中国象棋程序
- Qt时钟Demo,在原来基础上添加了秒针
- 基于Qt和opencv的身份证号码识别系统
- opencv_ffmpeg249.dll
- FFmpeg-3.1 windows vs2013编译动态库静态库
- 基于FFmpeg4.0.2的AAC编码器
- FFmpeg获取网络摄像头数据解码
- Qt写的Windows下屏幕录制程序源码
- Windows下使用FFMPEG解码AAC文件并使用
- ffmpeg转换MP4为JPG帧图片
- ffmpeg解码sdl播放h264
- 最简单的利用ffmpeg获取视频的图片
- 最简单的基于FFmpeg的编码器 1.2
- vs2012调试ffmpeg.c
- 基于FFMPEG SDK流媒体开发1---解码媒体文
评论
共有 条评论