cra2ihxadec.h
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:5k
- /* ***** 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 ***** */
- /* a first feeble attempt to endow the RA codecs with a new interface.
- This might not work yet. */
- #ifndef _CRA2IHXADEC_H_
- #define _CRA2IHXADEC_H_
- /* the abstract superclass of all decoders */
- #include "hxresult.h"
- #include "hxtypes.h"
- #include "hxcom.h"
- #include "racodec.h"
- // $Private
- // Old decoders need to be configured with this struct.
- typedef struct radecoder_init_params2
- {
- RADECODER_INIT_PARAMS p ;
- int flvNumber ; // some old decoders need the flavour number, namely sipro
- } RADECODER_INIT_PARAMS2 ;
- /****************************************************************************
- *
- * Interface:
- *
- * IHXAudioDecoder
- *
- * Purpose:
- *
- * Decoding Interface for RealMedia audio codecs.
- *
- * IID_IHXAudioDecoder
- *
- * {71C60261-FBB1-4577-849E-703DAEB08AC6}
- *
- */
- DEFINE_GUID(IID_IHXAudioDecoder,
- 0x71c60261, 0xfbb1, 0x4577, 0x84, 0x9e, 0x70, 0x3d, 0xae, 0xb0, 0x8a, 0xc6);
- #undef INTERFACE
- #define INTERFACE IHXAudioDecoder
- DECLARE_INTERFACE_(IHXAudioDecoder, IUnknown)
- {
- /*
- * IUnknown methods
- */
- STDMETHOD(QueryInterface) (THIS_
- REFIID riid,
- void** ppvObj) PURE;
- STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
- STDMETHOD_(ULONG32,Release) (THIS) PURE;
- STDMETHOD(OpenDecoder) (THIS_
- const void* initParams, int initParamsSizeof) PURE ;
- STDMETHOD(SetStreamBegin) (THIS_
- int& delay) PURE ;
- // HX_RESULT DecodeData(CDecoderUnit units[], int nDecoderUnits) = 0 ;
- STDMETHOD(Conceal) (THIS_
- int nSamples) PURE ;
- STDMETHOD(DecodeDataRaw) (THIS_
- const char *data,
- int nBytes,
- int& nBytesConsumed,
- short *samplesOut,
- int& nSamplesOut,
- int eof) PURE ;
- STDMETHOD(MaxSamplesOut) (THIS_
- int& nSamples) CONSTMETHOD PURE ;
- STDMETHOD_(void,CloseDecoder)(THIS) PURE ;
- } ;
- #if 0
- /****************************************************************************
- *
- * Interface:
- *
- * IHXAudioDecoder8_0Open
- *
- * Purpose:
- *
- * Decoder Open Interface for old RealMedia audio codecs.
- *
- * IID_IHXAudioDecoder
- *
- * {43CDA01B-B55D-445a-83C7-BA53B7631494}
- *
- */
- DEFINE_GUID(IHXAudioDecoder8_0Open,
- 0x43cda01b, 0xb55d, 0x445a, 0x83, 0xc7, 0xba, 0x53, 0xb7, 0x63, 0x14, 0x94);
- #undef INTERFACE
- #define INTERFACE IHXAudioDecoder8_0Open
- DECLARE_INTERFACE_(IHXAudioDecoder8_0Open, IUnknown)
- {
- /*
- * IUnknown methods
- */
- STDMETHOD(QueryInterface) (THIS_
- REFIID riid,
- void** ppvObj) PURE;
- STDMETHOD_(ULONG32,AddRef) (THIS) PURE;
- STDMETHOD_(ULONG32,Release) (THIS) PURE;
- STDMETHOD(OpenDecoder) (THIS_
- const void* params) PURE ;
- } ;
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif
- typedef HX_RESULT (HXEXPORT_PTR FPRACreateInstance) (const CLSID &clsid, IUnknown** ppUnknown) ;
- #ifdef __cplusplus
- }
- #endif
- // $EndPrivate
- #endif // _CRA2IHXADEC_H_