当前位置: 代码迷 >> 多媒体/流媒体开发 >> 求yuv420 缩放的源码,该如何处理
  详细解决方案

求yuv420 缩放的源码,该如何处理

热度:3874   发布时间:2013-02-26 00:00:00.0
求yuv420 缩放的源码
求yuv420 缩放的源码,最好是来源于opensource的
另外,哪位大虾知道,
国外有什么 好的多媒体开发的论坛,尤其是opensource比较多那种多媒体开发论坛,
要是我在给出论坛上找到了 yuv420缩放的源码,分照给

------解决方案--------------------------------------------------------
头文件


// SimpleResize.h: interface for the SimpleResize class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SIMPLERESIZE_H__1B6B7F9A_67C9_4568_A62A_592FDECEFA59__INCLUDED_)
#define AFX_SIMPLERESIZE_H__1B6B7F9A_67C9_4568_A62A_592FDECEFA59__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class SimpleResize 
{
public:
SimpleResize(long oldw,long oldh, long neww,long newh);// 构造器
virtual ~SimpleResize();
void resize(BYTE* src,BYTE* dst);

private:
long newwidth;
long newheight;
long oldwidth;
long oldheight;
unsigned int* hControl; // weighting masks, alternating dwords for Y & UV
// 1 qword for mask, 1 dword for src offset, 1 unused dword
unsigned int* vOffsets; // Vertical offsets of the source lines we will use
unsigned int* vWeights; // weighting masks, alternating dwords for Y & UV
unsigned int* vOffsetsUV; // Vertical offsets of the source lines we will use
unsigned int* vWeightsUV; // weighting masks, alternating dwords for Y & UV
unsigned int* vWorkY; // weighting masks 0Y0Y 0Y0Y...
unsigned int* vWorkUV; // weighting masks UVUV UVUV...

void InitTables_YV12(void);
public:
void GetFrame_YV12(BYTE* src, BYTE* dst, int srcpitch,int dstpitch,int Planar_Type,int dstheight);
};

#endif // !defined(AFX_SIMPLERESIZE_H__1B6B7F9A_67C9_4568_A62A_592FDECEFA59__INCLUDED_)