filterconfig.h代码

/** @file filterconfig.h
 * /brief <定义Filter需要的结构以及接口>
 *
 * /version 1.0.0 
 * /author  廉会勇
 * /date  2004/03/17
 *
 * /note <这里填写本文件的详细功能描述和注解>
 * /note 历史记录:
 * /note <这里填写历史版本信息,格式如“V2.0.0  更改的主要信息”>
 *
 * /warning <这里填写本文件相关的警告信息> 
 */

//
#ifndef __FilterConfig_H__
#define __FilterConfig_H__

#ifdef __cplusplus
extern "C" {
#endif
#include "H323MsApi.h"
//263的压缩方式
#define BICOMP_H263    mmioFOURCC('H', '2', '6', '3')
#define BICOMP_YUV12  mmioFOURCC('I', '4', '2', '0')//12 bit yuv411
#define VIDEO_WIDTH          352//352
#define VIDEO_HEIGHT         288//288

const GUID MediaType_H263 =
{ 0x33363248, 0x0000, 0x0010,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71};

//I420媒体类型
//{30323449-0000-0010-8000-00AA00389B71}
const GUID MediaType_I420 = 
{ 0x30323449, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71 };

//2006.07.01 add
// {A2107D04-5F36-4463-8E17-811AD76B51D7}
static const GUID IID_IVideoParamInterface =
{ 0xa2107d04, 0x5f36, 0x4463, { 0x8e, 0x17, 0x81, 0x1a, 0xd7, 0x6b, 0x51, 0xd7 } };

// {FAA6B638-8DA1-440d-B38C-2E99325EEE94}
static const GUID IID_IAudioParamInterface =
{ 0xfaa6b638, 0x8da1, 0x440d, { 0xb3, 0x8c, 0x2e, 0x99, 0x32, 0x5e, 0xee, 0x94 } };

// {EEF58089-3E41-477e-9220-C50944708E19}
static const GUID IID_IRtpParamHandle =
{ 0xeef58089, 0x3e41, 0x477e, { 0x92, 0x20, 0xc5, 0x9, 0x44, 0x70, 0x8e, 0x19 } };

// {537A6911-0356-4759-B1DF-E9158C366A0B}
static const GUID IID_IVideoDecInterface =
{ 0x537a6911, 0x356, 0x4759,  0xb1, 0xdf, 0xe9, 0x15, 0x8c, 0x36, 0x6a, 0xb  };

// {F52E5633-6A14-46f8-BD81-5B0083823EE1}
static const GUID IID_IVideoEncInterface =
{ 0xf52e5633, 0x6a14, 0x46f8, { 0xbd, 0x81, 0x5b, 0x0, 0x83, 0x82, 0x3e, 0xe1 } };

// {FC6C10F2-40ED-4dc0-BA20-0145BAF782F8}
static const GUID IID_IAudioDecInterface =
{ 0xfc6c10f2, 0x40ed, 0x4dc0, { 0xba, 0x20, 0x1, 0x45, 0xba, 0xf7, 0x82, 0xf8 } };

// {1555F97F-665C-4419-AAF1-DAAFE6CFB731}
static const GUID IID_IAudioEncInterface =
{ 0x1555f97f, 0x665c, 0x4419, { 0xaa, 0xf1, 0xda, 0xaf, 0xe6, 0xcf, 0xb7, 0x31 } };

// {9DE560F8-1C5B-4ca1-9C7E-B8174D4AEB4F}
//static const GUID IID_IRtpSenderHandle =
//{ 0x9de560f8, 0x1c5b, 0x4ca1, { 0x9c, 0x7e, 0xb8, 0x17, 0x4d, 0x4a, 0xeb, 0x4f } };

// {5A84A487-A897-48e0-9E35-7E2831A16D2E}
//static const GUID IID_IRtpRecHandle =
//{ 0x5a84a487, 0xa897, 0x48e0, { 0x9e, 0x35, 0x7e, 0x28, 0x31, 0xa1, 0x6d, 0x2e } };

// {11E96D56-A869-42fe-9654-33EA4C6CD05D}
static const GUID IID_IImageCapInterface =
{ 0x11e96d56, 0xa869, 0x42fe, { 0x96, 0x54, 0x33, 0xea, 0x4c, 0x6c, 0xd0, 0x5d } };

// {F4E79217-7903-4b04-AA59-82862682CB1C}
static const GUID IID_IJRtpGetSocket =
{ 0xf4e79217, 0x7903, 0x4b04, { 0xaa, 0x59, 0x82, 0x86, 0x26, 0x82, 0xcb, 0x1c } };

struct __declspec(novtable)
IJRtpGetSocket:public IUnknown

 virtual int STDMETHODCALLTYPE GetRtpSocket() = 0; 
 virtual int STDMETHODCALLTYPE GetRtcpSocket() = 0;
};

struct __declspec(novtable)
IRtpParamHandle:public IUnknown

 virtual HRESULT STDMETHODCALLTYPE set_RtpParam(T_RTPPARAM tRtpParam) = 0;

 virtual HRESULT STDMETHODCALLTYPE get_RtpParam(T_RTPPARAM &tRtpParam) = 0;

 virtual HRESULT STDMETHODCALLTYPE set_AddDestAddr(T_RTPPARAM tRtpParam) = 0;

 virtual HRESULT STDMETHODCALLTYPE record(const char* filepath) = 0;
};

/**********************视频filter中的外部接口*********************/
struct __declspec(novtable)
IVideoParamInterface:public IUnknown
{
 //在Encoder中设置视频格式
    virtual HRESULT STDMETHODCALLTYPE set_VideoCodecParam(T_VIDEO_CODEC_PARAM tVideoCodecParam) = 0;
 virtual HRESULT STDMETHODCALLTYPE get_VideoCodecParam(T_VIDEO_CODEC_PARAM &tVideoCodecParam) = 0;
 //在Decoder中实现抓图
 virtual HRESULT STDMETHODCALLTYPE get_CurrentImage(const char* filePath) = 0;
};
//在VideoEFilter中实现的参数设置接口
struct __declspec(novtable)
IVideoEncInterface:public IUnknown
{
 //在Encoder中设置视频格式
    //#define CIF4   1 #define CIF    2 #define QCIF   3 #define SQCIF  4
 virtual HRESULT STDMETHODCALLTYPE set_VideoFormat(int nFormat) = 0;
 virtual HRESULT STDMETHODCALLTYPE get_VideoFormat(int &nFormat) = 0;

 virtual HRESULT STDMETHODCALLTYPE set_Bandwidth(int nBandwidth) = 0;
 virtual HRESULT STDMETHODCALLTYPE set_USBNhe728() = 0;
 
 virtual HRESULT STDMETHODCALLTYPE set_InterFrameEnable(int nCountIFrame) = 0;
 virtual HRESULT STDMETHODCALLTYPE set_KeyFrameInterval(int nInterval) = 0;
};

//在Mp4DecoderFilter中实现的抓图接口
struct __declspec(novtable)
IVideoDecInterface:public IUnknown
{
 virtual HRESULT STDMETHODCALLTYPE get_CurrentImage(const char* filePath) = 0;
 //在Decoder中设置视频格式
    //#define CIF4   1 #define CIF    2 #define QCIF   3 #define SQCIF  4
 virtual HRESULT STDMETHODCALLTYPE set_VideoFormat(int nFormat) = 0;
 virtual HRESULT STDMETHODCALLTYPE get_VideoFormat(int &nFormat) = 0;
};

/**********************音频filter中的外部接口*********************/
/*音频编码中的接口*/
struct __declspec(novtable)
IAudioEncInterface:public IUnknown
{
 virtual HRESULT STDMETHODCALLTYPE set_AudioCodecType(AUDIO_CODEC_TYPE nCodecType) = 0;
 virtual HRESULT STDMETHODCALLTYPE get_AudioCodecType(AUDIO_CODEC_TYPE &nCodecType) = 0;
};

/*音频解码中的接口*/
struct __declspec(novtable)
IAudioDecInterface:public IUnknown
{
 virtual HRESULT STDMETHODCALLTYPE set_AudioCodecType(AUDIO_CODEC_TYPE nCodecType) = 0;
 virtual HRESULT STDMETHODCALLTYPE get_AudioCodecType(AUDIO_CODEC_TYPE &nCodecType) = 0;
};

struct __declspec(novtable)
IAudioParamInterface:public IUnknown
{
 virtual HRESULT STDMETHODCALLTYPE set_AudioCodecParam(T_AUDIO_CODEC_PARAM tAudioCodecParam) = 0;
 virtual HRESULT STDMETHODCALLTYPE get_AudioCodecParam(T_AUDIO_CODEC_PARAM &tAudioCodecParam) = 0;
};
//在ImageCapFilter中实现的获取位图位置的接口
struct __declspec(novtable)
IImageCapInterface:public IUnknown
{
 virtual HRESULT STDMETHODCALLTYPE set_CapImageFilePath(const char* filePath) = 0;
};

#ifdef __cplusplus
}
#endif
#endif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值