⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 esi.h

📁 一个用于智能手机的多媒体库适合S60 WinCE的跨平台开发库
💻 H
字号:
/* *			GPAC - Multimedia Framework C SDK * *			Authors: Jean le Feuvre *				Copyright (c) 2005-200X ENST *					All rights reserved * *  This file is part of GPAC / Elementary Stream Interface sub-project * *  GPAC is free software; you can redistribute it and/or modify *  it under the terms of the GNU Lesser General Public License as published by *  the Free Software Foundation; either version 2, or (at your option) *  any later version. *    *  GPAC is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU Lesser General Public License for more details. *    *  You should have received a copy of the GNU Lesser General Public *  License along with this library; see the file COPYING.  If not, write to *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  * */#ifndef _GF_ESI_H_#define _GF_ESI_H_#ifdef __cplusplusextern "C" {#endif#include <gpac/tools.h>/* ESI input control commands*/enum{	/*forces a data flush from interface to dest (caller) - used for non-threaded interfaces		corresponding parameter: unused	*/	GF_ESI_INPUT_DATA_FLUSH,	/*pulls a COMPLETE AU from the stream		corresponding parameter: pointer to a GF_ESIPacket to fill. The indut data_len in the packet is used to indicate any padding in bytes	*/	GF_ESI_INPUT_DATA_PULL,	/*releases the currently pulled AU from the stream - AU cannot be pulled after that, unless seek happens		corresponding parameter: unused	*/	GF_ESI_INPUT_DATA_RELEASE,	/*destroys any allocated resource by the stream interface*/	GF_ESI_INPUT_DESTROY,};/* ESI output control commands*/enum{	/*forces a data flush from interface to dest (caller) - used for non-threaded interfaces		corresponding parameter: unused	*/	GF_ESI_OUTPUT_DATA_DISPATCH};	/*	data packet flags*/enum{	GF_ESI_DATA_AU_START	=	1,	GF_ESI_DATA_AU_END		=	1<<1,	GF_ESI_DATA_AU_RAP		=	1<<2,	GF_ESI_DATA_HAS_CTS		=	1<<3,	GF_ESI_DATA_HAS_DTS		=	1<<4,	GF_ESI_DATA_ENCRYPTED	=	1<<5,};typedef struct __data_packet_ifce{	u32 flags;	char *data;	u32 data_len;	/*DTS, CTS/PTS and duration expressed in media timescale*/	u64 dts, cts;	u32 duration;	u32 pck_sn;	/*MPEG-4 stuff*/	u32 au_sn;	/*for packets using ISMACrypt/OMA/3GPP based crypto*/	u32 isma_bso;} GF_ESIPacket;struct __esi_video_info{	u32 width, height, par;	Double FPS;};struct __esi_audio_info{	u32 sample_rate, nb_channels;};enum{	/*data can be pulled from this stream*/	GF_ESI_AU_PULL_CAP	=	1,	/*DTS is signaled for this stream*/	GF_ESI_SIGNAL_DTS =	1<<1,	/*no more data to expect from this stream*/	GF_ESI_STREAM_IS_OVER	=	1<<2,};typedef struct __elementary_stream_ifce {	/*misc caps of the stream*/	u32 caps;	/*matches PID for MPEG2, ES_ID for MPEG-4*/	u32 stream_id;	/*MPEG-TS program number if any*/	u16 program_number;	/*MPEG-4 ST/OTIs*/	u8 stream_type;	u8 object_type_indication;	/*stream 4CC for non-mpeg codecs, 0 otherwise (stream is identified through StreamType/ObjectType)*/	u32 fourcc;	/*packed 3-char language code (4CC with last byte ' ')*/	u32 lang;	/*media timescale*/	u32 timescale;	/*duration in ms - 0 if unknown*/	Double duration;	/*average bit rate in bit/sec - 0 if unknown*/	u32 bit_rate;	union {		struct __esi_video_info info_video;		struct __esi_audio_info info_audio;	};	/*input ES control from caller*/	GF_Err (*input_ctrl)(struct __elementary_stream_ifce *_self, u32 ctrl_type, void *param);	/*input user data of interface - usually set by interface owner*/	void *input_udta;	/*output ES control of destination*/	GF_Err (*output_ctrl)(struct __elementary_stream_ifce *_self, u32 ctrl_type, void *param);	/*output user data of interface - usually set during interface setup*/	void *output_udta;} GF_ESInterface;typedef struct __service_ifce{	u32 type;	/*input service control from caller*/	GF_Err (*input_ctrl)(struct __service_ifce *_self, u32 ctrl_type, void *param);	/*input user data of interface - usually set by interface owner*/	void *input_udta;	/*output service control of destination*/	GF_Err (*output_ctrl)(struct __service_ifce *_self, u32 ctrl_type, void *param);	/*output user data of interface - usually set during interface setup*/	void *output_udta;	GF_ESInterface **streams;	u32 nb_streams;} GF_ServiceInterface;typedef struct __data_io{	u32 (*read)(struct __data_io *_self, char *buffer, u32 nb_bytes);	u32 (*write)(struct __data_io *_self, char *buffer, u32 nb_bytes);	void *udta;} GF_DataIO;#ifdef __cplusplus}#endif#endif	//_GF_ESI_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -