📄 hxlvpix.h
字号:
/* ***** BEGIN LICENSE BLOCK *****
* Version: RCSL 1.0/RPSL 1.0
*
* Portions Copyright (c) 1995-2002 RealNetworks, Inc. All Rights Reserved.
*
* The contents of this file, and the files included with this file, are
* subject to the current version of the RealNetworks Public Source License
* Version 1.0 (the "RPSL") available at
* http://www.helixcommunity.org/content/rpsl unless you have licensed
* the file under the RealNetworks Community Source License Version 1.0
* (the "RCSL") available at http://www.helixcommunity.org/content/rcsl,
* in which case the RCSL will apply. You may also obtain the license terms
* directly from RealNetworks. You may not use this file except in
* compliance with the RPSL or, if you have a valid RCSL with RealNetworks
* applicable to this file, the RCSL. Please see the applicable RPSL or
* RCSL for the rights, obligations and limitations governing use of the
* contents of the file.
*
* This file is part of the Helix DNA Technology. RealNetworks is the
* developer of the Original Code and owns the copyrights in the portions
* it created.
*
* This file, and the files included with this file, is distributed and made
* available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
* EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS ALL SUCH WARRANTIES,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
*
* Technology Compatibility Kit Test Suite(s) Location:
* http://www.helixcommunity.org/content/tck
*
* Contributor(s):
*
* ***** END LICENSE BLOCK ***** */
/*
* RealPix live encoder interfaces
*
*/
#ifndef _HXLVPIX_H
#define _HXLVPIX_H
/*
* PixInitInfo
*
* This struct contains initialization information
* and is passed in in the IHXLiveRealPix::StartEncoder()
* method. All of the members of this struct are input variables.
*/
typedef struct HXEXPORT_CLASS _PixInitInfo
{
UINT32 m_ulStructLength; /* length in bytes of this structure */
char *m_pServerAddress; /* name or ip address of server */
UINT32 m_ulServerPort; /* pn-encoder port on server */
char *m_pUsername; /* username for authentication on server */
char *m_pPassword; /* password for authentication on server */
char *m_pFilename; /* filename which clients should open */
char *m_pTitle; /* title of live presentation */
char *m_pAuthor; /* author of live presentation */
char *m_pCopyright; /* copyright on live presentation */
UINT32 m_ulBitrate; /* bitrate of realpix stream */
UINT32 m_ulMaxFps; /* max frames per second of effects */
UINT32 m_ulDisplayWidth; /* display width in pixels */
UINT32 m_ulDisplayHeight; /* display height in pixels */
BOOL m_bPreserveAspect; /* preserve aspect ratio by default? */
char *m_pDefaultURL; /* default URL to send browser to when clicked */
UINT32 m_ulNumImageCodecs; /* number of image codecs used in this stream */
char **m_ppImageCodec; /* string names of codecs */
UINT32 m_ulNumEffectPackages; /* number of external effect packages used */
char **m_ppEffectPackage; /* string names of effect packages*/
}
PixInitInfo;
/*
* PixImageInfo
*
* This struct contains all the information for images which
* should be sent down the stream. This struct is used in the
* IHXLiveRealPix::InitImage() method.
*/
typedef struct HXEXPORT_CLASS _PixImageInfo
{
UINT32 m_ulStructLength; /* Input: size of struct */
BYTE *m_pImageBuffer; /* Input: buffer holding image data */
UINT32 m_ulImageBufferSize; /* Input: size of image buffer */
char *m_pImageCodec; /* Input: image codec to be used */
UINT32 m_ulHandle; /* Output: image handle */
UINT32 m_ulNumPackets; /* Output: number of packets image will be sent */
UINT32 m_ulTimeToSend; /* Output: milliseconds required to send image */
}
PixImageInfo;
#define EFFECT_FILL 0
#define EFFECT_FADEIN 1
#define EFFECT_FADEOUT 2
#define EFFECT_CROSSFADE 3
#define EFFECT_WIPE 4
#define EFFECT_VIEWCHANGE 5
#define EFFECT_EXTERNAL 6
#define EFFECT_ANIMATE 7
#define WIPE_DIRECTION_UP 0
#define WIPE_DIRECTION_DOWN 1
#define WIPE_DIRECTION_LEFT 2
#define WIPE_DIRECTION_RIGHT 3
#define WIPE_TYPE_NORMAL 0
#define WIPE_TYPE_PUSH 1
/*
* PixEffectInfo
*
* This struct contains all the information about the effect which
* the RealPix renderer should perform. This struct is used in the
* IHXLiveRealPix::SendEffect() method.
*/
typedef struct HXEXPORT_CLASS _PixEffectInfo
{
UINT32 m_ulStructLength; /* Input: Length in bytes of this struct */
BYTE m_ucEffectType; /* Input: Effect Type: EFFECT_FILL, EFFECT_FADEIN, etc. */
UINT32 m_ulStart; /* Input: Start time in milliseconds of effect */
UINT32 m_ulDuration; /* Input: Duration in milliseconds of effect */
UINT32 m_ulTarget; /* Input: Handle of image to perform effect on */
UINT32 m_ulSrcX; /* Input: Horizontal offset of source rectangle */
UINT32 m_ulSrcY; /* Input: Vertical offset of source rectangle */
UINT32 m_ulSrcW; /* Input: Width of source rectangle */
UINT32 m_ulSrcH; /* Input: Height of source rectangle */
UINT32 m_ulDstX; /* Input: Horizontal offset of destination rectangle */
UINT32 m_ulDstY; /* Input: Vertical offset of destination rectangle */
UINT32 m_ulDstW; /* Input: Width of destination rectangle */
UINT32 m_ulDstH; /* Input: Height of destination rectangle */
UINT32 m_ulMaxFps; /* Input: Max frames per second for this effect */
BOOL m_bAspectFlag; /* Input: TRUE: preserve aspect on this effect; FALSE: don't preserve */
BYTE m_ucRed; /* Input: Red component of fill or fadeout color */
BYTE m_ucGreen; /* Input: Green component of fill or fadeout color */
BYTE m_ucBlue; /* Input: Blue component of fill or fadeout color */
BYTE m_ucWipeDirection; /* Input: WIPE_DIRECTION_xxx, where xxx is UP, DOWN, LEFT, or RIGHT */
BYTE m_ucWipeType; /* Input: WIPE_TYPE_NORMAL or WIPE_TYPE_PUSH */
char *m_pURL; /* Input: URL for this effect */
char *m_pExtPackage; /* Input: Name of external effect package */
char *m_pExtName; /* Input: Name of external effect within the package */
char *m_pExtData; /* Input Opaque string data for external effect */
char *m_pExtFile; /* Input: File contents of external effect data */
BOOL m_bDiscardImage; /* Input: TRUE: discard image after doing effect; FALSE: don't discard */
BOOL m_bDisplayImmediately; /* Input: FALSE: obey start time; TRUE: do effect immediately */
UINT32 m_ulHandle; /* Output: Handle by which effect will be referred to */
}
PixEffectInfo;
/*
* Forward declarations of some interfaces defined here.
*/
typedef _INTERFACE IHXLiveRealPix IHXLiveRealPix;
typedef _INTERFACE IHXLiveRealPixResponse IHXLiveRealPixResponse;
typedef _INTERFACE IHXLiveRealPixResend IHXLiveRealPixResend;
/*
* Forward declarations of interfaces used here
*/
typedef _INTERFACE IHXValues IHXValues;
/*
* Declaration of the DLL entry point
*/
STDAPI CreateLiveRealPix(IHXLiveRealPix **);
typedef HX_RESULT (HXEXPORT_PTR FPRMCREATELIVEREALPIX)(IHXLiveRealPix **ppLiveRealPix);
/****************************************************************************
*
* Interface:
*
* IHXLivePix
*
* Purpose:
*
* Asynchronous interface that allows an application to encode live RealPix
*
* IID_IHXLiveRealPix:
*
* {E7ADF466-477D-11d2-AA0C-0060972D23A7}
*
*/
DEFINE_GUID(IID_IHXLiveRealPix, 0xe7adf466, 0x477d, 0x11d2, 0xaa, 0xc, 0x0,
0x60, 0x97, 0x2d, 0x23, 0xa7);
#undef INTERFACE
#define INTERFACE IHXLiveRealPix
DECLARE_INTERFACE_(IHXLiveRealPix, IUnknown)
{
/*
* IUnknown methods
*/
STDMETHOD(QueryInterface) (THIS_ REFIID riid, void **ppvObj) PURE;
STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
STDMETHOD_(ULONG32,Release) (THIS) PURE;
/*
* IHXLiveRealPix methods
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -