本文整理汇总了C++中GF_REGISTER_MODULE_INTERFACE函数的典型用法代码示例。如果您正苦于以下问题:C++ GF_REGISTER_MODULE_INTERFACE函数的具体用法?C++ GF_REGISTER_MODULE_INTERFACE怎么用?C++ GF_REGISTER_MODULE_INTERFACE使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GF_REGISTER_MODULE_INTERFACE函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: gf_malloc
static void *NewGAPIVideoOutput()
{
GAPIPriv *priv;
GF_VideoOutput *driv = (GF_VideoOutput *) gf_malloc(sizeof(GF_VideoOutput));
memset(driv, 0, sizeof(GF_VideoOutput));
GF_REGISTER_MODULE_INTERFACE(driv, GF_VIDEO_OUTPUT_INTERFACE, "GAPI Video Output", "gpac distribution")
priv = (GAPIPriv *) gf_malloc(sizeof(GAPIPriv));
memset(priv, 0, sizeof(GAPIPriv));
priv->mx = gf_mx_new("GAPI");
driv->opaque = priv;
#ifdef GPAC_USE_OGL_ES
driv->hw_caps = GF_VIDEO_HW_OPENGL | GF_VIDEO_HW_OPENGL_OFFSCREEN | GF_VIDEO_HW_OPENGL_OFFSCREEN_ALPHA;
#endif
/*rgb, yuv to do*/
driv->Setup = GAPI_Setup;
driv->Shutdown = GAPI_Shutdown;
driv->Flush = GAPI_Flush;
driv->ProcessEvent = GAPI_ProcessEvent;
driv->Blit = NULL;
driv->LockBackBuffer = GAPI_LockBackBuffer;
driv->SetFullScreen = GAPI_SetFullScreen;
return (void *)driv;
}
示例2: GF_SAFEALLOC
static void *EPOC_vout_new()
{
EPOCVideo *priv;
GF_VideoOutput *driv;
GF_SAFEALLOC(driv, GF_VideoOutput);
GF_REGISTER_MODULE_INTERFACE(driv, GF_VIDEO_OUTPUT_INTERFACE, "EPOC Video Output", "gpac distribution")
GF_SAFEALLOC(priv, EPOCVideo);
driv->opaque = priv;
/*alpha and keying to do*/
driv->hw_caps = 0;
#ifdef GPAC_USE_OGL_ES
/*no offscreen opengl with epoc at the moment*/
driv->hw_caps |= GF_VIDEO_HW_OPENGL;
#endif
driv->Setup = EVID_Setup;
driv->Shutdown = EVID_Shutdown;
driv->Flush = EVID_Flush;
driv->ProcessEvent = EVID_ProcessEvent;
driv->Blit = NULL;
driv->LockBackBuffer = EVID_LockBackBuffer;
driv->SetFullScreen = EVID_SetFullScreen;
return (void *)driv;
}
示例3: GF_SAFEALLOC
GF_EXPORT
GF_BaseInterface *LoadInterface(u32 InterfaceType)
{
GF_HYB_In *hyb_in;
GF_InputService *plug;
if (InterfaceType != GF_NET_CLIENT_INTERFACE) return NULL;
GF_SAFEALLOC(plug, GF_InputService);
GF_REGISTER_MODULE_INTERFACE(plug, GF_NET_CLIENT_INTERFACE, "GPAC HYBRID MEDIA Loader", "gpac distribution")
plug->RegisterMimeTypes= HYB_RegisterMimeTypes;
plug->CanHandleURL= HYB_CanHandleURL;
plug->ConnectService= HYB_ConnectService;
plug->CloseService= HYB_CloseService;
plug->GetServiceDescriptor= HYB_GetServiceDesc;
plug->ConnectChannel= HYB_ConnectChannel;
plug->DisconnectChannel= HYB_DisconnectChannel;
plug->ServiceCommand= HYB_ServiceCommand;
plug->CanHandleURLInService=HYB_CanHandleURLInService;
plug->ChannelGetSLP= HYB_ChannelGetSLP;
plug->ChannelReleaseSLP= HYB_ChannelReleaseSLP;
GF_SAFEALLOC(hyb_in, GF_HYB_In);
plug->priv = hyb_in;
return (GF_BaseInterface *)plug;
}
示例4: GF_SAFEALLOC
void *NewLoaderInterface()
{
IMGLoader *priv;
GF_InputService *plug;
GF_SAFEALLOC(plug, GF_InputService);
if (!plug) return NULL;
GF_REGISTER_MODULE_INTERFACE(plug, GF_NET_CLIENT_INTERFACE, "GPAC Image Reader", "gpac distribution")
GF_SAFEALLOC(priv, IMGLoader);
if (!priv) {
gf_free(plug);
return NULL;
}
plug->priv = priv;
plug->RegisterMimeTypes = IMG_RegisterMimeTypes;
plug->CanHandleURL = IMG_CanHandleURL;
plug->CanHandleURLInService = NULL;
plug->ConnectService = IMG_ConnectService;
plug->CloseService = IMG_CloseService;
plug->GetServiceDescriptor = IMG_GetServiceDesc;
plug->ConnectChannel = IMG_ConnectChannel;
plug->DisconnectChannel = IMG_DisconnectChannel;
plug->ChannelGetSLP = IMG_ChannelGetSLP;
plug->ChannelReleaseSLP = IMG_ChannelReleaseSLP;
plug->ServiceCommand = IMG_ServiceCommand;
return plug;
}
示例5: GF_SAFEALLOC
GF_BaseDecoder *NewHEVCDec()
{
GF_MediaDecoder *ifcd;
HEVCDec *dec;
GF_SAFEALLOC(ifcd, GF_MediaDecoder);
if (!ifcd) return NULL;
GF_SAFEALLOC(dec, HEVCDec);
if (!dec) {
gf_free(ifcd);
return NULL;
}
GF_REGISTER_MODULE_INTERFACE(ifcd, GF_MEDIA_DECODER_INTERFACE, "HEVC Decoder", "gpac distribution")
ifcd->privateStack = dec;
/*setup our own interface*/
ifcd->AttachStream = HEVC_AttachStream;
ifcd->DetachStream = HEVC_DetachStream;
ifcd->GetCapabilities = HEVC_GetCapabilities;
ifcd->SetCapabilities = HEVC_SetCapabilities;
ifcd->GetName = HEVC_GetCodecName;
ifcd->CanHandleStream = HEVC_CanHandleStream;
ifcd->ProcessData = HEVC_ProcessData;
ifcd->GetOutputBuffer = HEVC_GetOutputBuffer;
return (GF_BaseDecoder *) ifcd;
}
示例6: GF_SAFEALLOC
GF_InputService *isor_client_load()
{
ISOMReader *reader;
GF_InputService *plug;
GF_SAFEALLOC(plug, GF_InputService);
GF_REGISTER_MODULE_INTERFACE(plug, GF_NET_CLIENT_INTERFACE, "GPAC IsoMedia Reader", "gpac distribution")
plug->RegisterMimeTypes = ISOR_RegisterMimeTypes;
plug->CanHandleURL = ISOR_CanHandleURL;
plug->ConnectService = ISOR_ConnectService;
plug->CloseService = ISOR_CloseService;
plug->GetServiceDescriptor = ISOR_GetServiceDesc;
plug->ConnectChannel = ISOR_ConnectChannel;
plug->DisconnectChannel = ISOR_DisconnectChannel;
plug->ServiceCommand = ISOR_ServiceCommand;
plug->CanHandleURLInService = ISOR_CanHandleURLInService;
/*we do support pull mode*/
plug->ChannelGetSLP = ISOR_ChannelGetSLP;
plug->ChannelReleaseSLP = ISOR_ChannelReleaseSLP;
GF_SAFEALLOC(reader, ISOMReader);
reader->channels = gf_list_new();
reader->segment_mutex = gf_mx_new("ISO Segment");
plug->priv = reader;
return plug;
}
示例7: gf_malloc
GF_FontReader *ft_load()
{
GF_FontReader *dr;
FTBuilder *ftpriv;
dr = gf_malloc(sizeof(GF_FontReader));
memset(dr, 0, sizeof(GF_FontReader));
GF_REGISTER_MODULE_INTERFACE(dr, GF_FONT_READER_INTERFACE, "FreeType Font Reader", "gpac distribution");
ftpriv = gf_malloc(sizeof(FTBuilder));
memset(ftpriv, 0, sizeof(FTBuilder));
ftpriv->font_dirs = gf_list_new();
ftpriv->loaded_fonts = gf_list_new();
dr->udta = ftpriv;
dr->init_font_engine = ft_init_font_engine;
dr->shutdown_font_engine = ft_shutdown_font_engine;
dr->set_font = ft_set_font;
dr->get_font_info = ft_get_font_info;
dr->get_glyphs = ft_get_glyphs;
dr->load_glyph = ft_load_glyph;
return dr;
}
示例8: gf_malloc
void *SDL_NewAudio()
{
SDLAudCtx *ctx;
GF_AudioOutput *dr;
ctx = gf_malloc(sizeof(SDLAudCtx));
memset(ctx, 0, sizeof(SDLAudCtx));
dr = gf_malloc(sizeof(GF_AudioOutput));
memset(dr, 0, sizeof(GF_AudioOutput));
GF_REGISTER_MODULE_INTERFACE(dr, GF_AUDIO_OUTPUT_INTERFACE, "SDL Audio Output", "gpac distribution");
dr->opaque = ctx;
dr->Setup = SDLAud_Setup;
dr->Shutdown = SDLAud_Shutdown;
dr->ConfigureOutput = SDLAud_ConfigureOutput;
dr->SetVolume = SDLAud_SetVolume;
dr->SetPan = SDLAud_SetPan;
dr->Play = SDLAud_Play;
dr->SetPriority = SDLAud_SetPriority;
dr->GetAudioDelay = SDLAud_GetAudioDelay;
dr->GetTotalBufferTime = SDLAud_GetTotalBufferTime;
dr->QueryOutputSampleRate = SDLAud_QueryOutputSampleRate;
/*always threaded*/
dr->SelfThreaded = 1;
ctx->audioBuff = NULL;
ctx->volume = SDL_MIX_MAXVOLUME;
return dr;
}
示例9: GF_SAFEALLOC
GF_BaseDecoder *NewFAADDec()
{
GF_MediaDecoder *ifce;
FAADDec *dec;
GF_SAFEALLOC(ifce, GF_MediaDecoder);
if (!ifce) return NULL;
GF_SAFEALLOC(dec, FAADDec);
if (!dec) {
gf_free(dec);
return NULL;
}
GF_REGISTER_MODULE_INTERFACE(ifce, GF_MEDIA_DECODER_INTERFACE, "FAAD2 Decoder", "gpac distribution")
ifce->privateStack = dec;
/*setup our own interface*/
ifce->AttachStream = FAAD_AttachStream;
ifce->DetachStream = FAAD_DetachStream;
ifce->GetCapabilities = FAAD_GetCapabilities;
ifce->SetCapabilities = FAAD_SetCapabilities;
ifce->ProcessData = FAAD_ProcessData;
ifce->CanHandleStream = FAAD_CanHandleStream;
ifce->GetName = FAAD_GetCodecName;
return (GF_BaseDecoder *) ifce;
}
示例10: gf_malloc
GF_VideoOutput *NewDektecVideoOutput()
{
GF_VideoOutput *driv = (GF_VideoOutput *) gf_malloc(sizeof(GF_VideoOutput));
memset(driv, 0, sizeof(GF_VideoOutput));
GF_REGISTER_MODULE_INTERFACE(driv, GF_VIDEO_OUTPUT_INTERFACE, "Dektec Video Output", "gpac distribution")
DtDevice *dvc = new DtDevice;
DtFrameBuffer *dtf = new DtFrameBuffer;
if (!dtf || !dvc) {
GF_LOG(GF_LOG_ERROR, GF_LOG_MODULE, ("[Dektec Out] DTA API couldn't be initialized.\n"));
delete dvc;
delete dtf;
gf_free(driv);
return NULL;
}
DtContext *dtc = new DtContext;
memset(dtc, 0, sizeof(DtContext));
dtc->dvc = dvc;
dtc->dtf = dtf;
driv->opaque = (void*)dtc;
driv->Flush = Dektec_Flush;
driv->LockBackBuffer = Dektec_LockBackBuffer;
driv->Setup = Dektec_Setup;
driv->Shutdown = Dektec_Shutdown;
driv->ProcessEvent = Dektec_ProcessEvent;
driv->Blit = Dektec_Blit;
driv->hw_caps |= GF_VIDEO_HW_HAS_YUV_OVERLAY | GF_VIDEO_HW_HAS_YUV;
return driv;
}
示例11: GF_SAFEALLOC
GF_InputService *RTP_Load()
{
RTPClient *priv;
GF_InputService *plug;
GF_SAFEALLOC(plug, GF_InputService);
memset(plug, 0, sizeof(GF_InputService));
GF_REGISTER_MODULE_INTERFACE(plug, GF_NET_CLIENT_INTERFACE, "GPAC RTP/RTSP Client", "gpac distribution")
plug->CanHandleURL = RP_CanHandleURL;
plug->CanHandleURLInService = RP_CanHandleURLInService;
plug->ConnectService = RP_ConnectService;
plug->CloseService = RP_CloseService;
plug->GetServiceDescriptor = RP_GetServiceDesc;
plug->ConnectChannel = RP_ConnectChannel;
plug->DisconnectChannel = RP_DisconnectChannel;
plug->ServiceCommand = RP_ServiceCommand;
plug->RegisterMimeTypes = RP_RegisterMimeTypes;
/*PULL mode for embedded streams*/
plug->ChannelGetSLP = RP_ChannelGetSLP;
plug->ChannelReleaseSLP = RP_ChannelReleaseSLP;
GF_SAFEALLOC(priv, RTPClient);
priv->sessions = gf_list_new();
priv->channels = gf_list_new();
plug->priv = priv;
priv->time_out = 30000;
priv->mx = gf_mx_new("RTPDemux");
priv->th = gf_th_new("RTPDemux");
return plug;
}
示例12: gf_malloc
void *NewRawAudioOutput()
{
RawContext *ctx;
GF_AudioOutput *driv;
ctx = gf_malloc(sizeof(RawContext));
memset(ctx, 0, sizeof(RawContext));
driv = gf_malloc(sizeof(GF_AudioOutput));
memset(driv, 0, sizeof(GF_AudioOutput));
GF_REGISTER_MODULE_INTERFACE(driv, GF_AUDIO_OUTPUT_INTERFACE, "Raw Audio Output", "gpac distribution")
driv->opaque = ctx;
driv->SelfThreaded = 0;
driv->Setup = RAW_AudioSetup;
driv->Shutdown = RAW_AudioShutdown;
driv->ConfigureOutput = RAW_ConfigureOutput;
driv->GetAudioDelay = RAW_GetAudioDelay;
driv->GetTotalBufferTime = RAW_GetTotalBufferTime;
driv->SetVolume = RAW_SetVolume;
driv->SetPan = RAW_SetPan;
driv->Play = RAW_Play;
driv->QueryOutputSampleRate = RAW_QueryOutputSampleRate;
driv->WriteAudio = RAW_WriteAudio;
return driv;
}
示例13: GF_SAFEALLOC
GF_BaseInterface *isow_load_cache()
{
ISOMReader *cache;
GF_StreamingCache *plug;
GF_SAFEALLOC(plug, GF_StreamingCache);
if (!plug) return NULL;
GF_REGISTER_MODULE_INTERFACE(plug, GF_STREAMING_MEDIA_CACHE, "GPAC IsoMedia Cache", "gpac distribution")
GF_SAFEALLOC(cache, ISOMReader);
if (!cache) {
gf_free(plug);
return NULL;
}
cache->channels = gf_list_new();
plug->priv = cache;
plug->Open = ISOW_Open;
plug->Close = ISOW_Close;
plug->Write = ISOW_Write;
plug->ChannelGetSLP = ISOW_ChannelGetSLP;
plug->ChannelReleaseSLP = ISOW_ChannelReleaseSLP;
plug->ServiceCommand = ISOW_ServiceCommand;
return (GF_BaseInterface *) plug;
}
示例14: GF_SAFEALLOC
GF_BaseDecoder *NewVTBDec()
{
GF_MediaDecoder *ifcd;
VTBDec *dec;
GF_SAFEALLOC(ifcd, GF_MediaDecoder);
if (!ifcd) return NULL;
GF_SAFEALLOC(dec, VTBDec);
if (!dec) {
gf_free(ifcd);
return NULL;
}
GF_REGISTER_MODULE_INTERFACE(ifcd, GF_MEDIA_DECODER_INTERFACE, "VideoToolbox Decoder", "gpac distribution")
ifcd->privateStack = dec;
/*setup our own interface*/
ifcd->AttachStream = VTBDec_AttachStream;
ifcd->DetachStream = VTBDec_DetachStream;
ifcd->GetCapabilities = VTBDec_GetCapabilities;
ifcd->SetCapabilities = VTBDec_SetCapabilities;
ifcd->GetName = VTBDec_GetCodecName;
ifcd->CanHandleStream = VTBDec_CanHandleStream;
ifcd->ProcessData = VTBDec_ProcessData;
return (GF_BaseDecoder *) ifcd;
}
示例15: GF_SAFEALLOC
GPAC_MODULE_EXPORT
GF_BaseInterface *LoadInterface(u32 InterfaceType)
{
DCReader *read;
GF_InputService *plug;
if (InterfaceType != GF_NET_CLIENT_INTERFACE) return NULL;
GF_SAFEALLOC(plug, GF_InputService);
memset(plug, 0, sizeof(GF_InputService));
GF_REGISTER_MODULE_INTERFACE(plug, GF_NET_CLIENT_INTERFACE, "GPAC Dummy Loader", "gpac distribution")
plug->RegisterMimeTypes = DC_RegisterMimeTypes;
plug->CanHandleURL = DC_CanHandleURL;
plug->ConnectService = DC_ConnectService;
plug->CloseService = DC_CloseService;
plug->GetServiceDescriptor = DC_GetServiceDesc;
plug->ConnectChannel = DC_ConnectChannel;
plug->DisconnectChannel = DC_DisconnectChannel;
plug->ServiceCommand = DC_ServiceCommand;
plug->CanHandleURLInService = DC_CanHandleURLInService;
plug->ChannelGetSLP = DC_ChannelGetSLP;
plug->ChannelReleaseSLP = DC_ChannelReleaseSLP;
GF_SAFEALLOC(read, DCReader);
read->channels = gf_list_new();
plug->priv = read;
return (GF_BaseInterface *)plug;
}