69 lines
2.5 KiB
C
69 lines
2.5 KiB
C
/*
|
|
*******************************************************************************
|
|
* Copyright (c) 2010-2022 VATICS(KNERON) Inc. All rights reserved.
|
|
*
|
|
* +-----------------------------------------------------------------+
|
|
* | THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY ONLY BE USED |
|
|
* | AND COPIED IN ACCORDANCE WITH THE TERMS AND CONDITIONS OF SUCH |
|
|
* | A LICENSE AND WITH THE INCLUSION OF THE THIS COPY RIGHT NOTICE. |
|
|
* | THIS SOFTWARE OR ANY OTHER COPIES OF THIS SOFTWARE MAY NOT BE |
|
|
* | PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON. THE |
|
|
* | OWNERSHIP AND TITLE OF THIS SOFTWARE IS NOT TRANSFERRED. |
|
|
* | |
|
|
* | THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT |
|
|
* | ANY PRIOR NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY |
|
|
* | VATICS(KNERON) INC. |
|
|
* +-----------------------------------------------------------------+
|
|
*
|
|
*******************************************************************************
|
|
*/
|
|
#ifndef __LIVE_MEDIA_SOURCE_H__
|
|
#define __LIVE_MEDIA_SOURCE_H__
|
|
|
|
typedef struct
|
|
{
|
|
unsigned char* pbyHdr;
|
|
unsigned char* pbyPayload;
|
|
} DataBufInfo;
|
|
|
|
/*!
|
|
*********************************************************************
|
|
* Enumeration of event type.
|
|
*********************************************************************
|
|
*/
|
|
typedef enum lmsrc_event_type
|
|
{
|
|
//! Need one Intra frame from this source
|
|
letNeedIntra,
|
|
//! Need one buffer conf from this source
|
|
letNeedConf,
|
|
//! Start needing bitstream from this source
|
|
letBitstrmStart,
|
|
//! Stop needing bitstream from this source
|
|
letBitstrmStop
|
|
} ELMSrcEventType;
|
|
|
|
typedef int (*PFLMSrcBufCB) (void*, DataBufInfo*);
|
|
typedef int (*PFLMSrcEvntCB) (void*, ELMSrcEventType);
|
|
typedef int (*PFLMSrcWakeUpToTerminate) (void*);
|
|
|
|
typedef int (*PFLMSrcBufInitCB) (void** phShrdBufSrc, char* szSharedBuffer, char* szCmdFiFoPath);
|
|
typedef int (*PFLMSrcBufReleaseCB) (void** phShrdBufSrc);
|
|
|
|
/*!
|
|
*******************************************************************************
|
|
* LiveMediaSrc base struct.
|
|
* \note When you implement LiveMediaSrc, the first element of your class must
|
|
* be this base struct.
|
|
*******************************************************************************
|
|
*/
|
|
typedef struct
|
|
{
|
|
PFLMSrcBufCB pfReleaseAndGetBuf;
|
|
PFLMSrcBufCB pfReleaseBuf;
|
|
PFLMSrcEvntCB pfEvntHandler;
|
|
PFLMSrcWakeUpToTerminate pfWakeUpToTerminate;
|
|
} TLiveMediaSrc;
|
|
|
|
#endif // __LIVE_MEDIA_SOURCE_H__
|