VLC_API调用-(V1.0.0)-(带c文件的).doc_第1页
VLC_API调用-(V1.0.0)-(带c文件的).doc_第2页
VLC_API调用-(V1.0.0)-(带c文件的).doc_第3页
VLC_API调用-(V1.0.0)-(带c文件的).doc_第4页
VLC_API调用-(V1.0.0)-(带c文件的).doc_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/* libvlc.h: libvlc external API * * Copyright (C) 1998-2009 the VideoLAN team * $Id: 6a56774bb95eade041fcfc85962de338462add39 $ * * Authors: Cl茅ment Stenac * Jean-Paul Saman * Pierre dHerbemont * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. */* * file * This file defines libvlc external API */* * defgroup libvlc libvlc * This is libvlc, the base library of the VLC program. * * */#ifndef VLC_LIBVLC_H#define VLC_LIBVLC_H 1#if defined (WIN32) & defined (DLL_EXPORT)# define VLC_PUBLIC_API _declspec(dllexport)#else# define VLC_PUBLIC_API#endif#ifdef _LIBVLC_/* Avoid unuseful warnings from libvlc with our deprecated APIs */# define VLC_DEPRECATED_API VLC_PUBLIC_API#elif defined(_GNUC_) & (_GNUC_ 3 | _GNUC_ = 3 & _GNUC_MINOR_ 0)# define VLC_DEPRECATED_API VLC_PUBLIC_API _attribute_(deprecated)#else# define VLC_DEPRECATED_API VLC_PUBLIC_API#endif# ifdef _cplusplusextern C # endif#include /* * Exception handling */* defgroup libvlc_exception libvlc_exception * ingroup libvlc_core * LibVLC Exceptions handling * */* * Initialize an exception structure. This can be called several times to * reuse an exception structure. * * param p_exception the exception to initialize */libvlc_exception_initVLC_PUBLIC_API void libvlc_exception_init( libvlc_exception_t *p_exception );/* * Has an exception been raised? * * param p_exception the exception to query * return 0 if the exception was raised, 1 otherwise */libvlc_exception_raisedVLC_PUBLIC_API int libvlc_exception_raised( const libvlc_exception_t *p_exception );/* * Raise an exception using a user-provided message. * * param p_exception the exception to raise * param psz_format the exception message format string * param . the format string arguments */VLC_PUBLIC_API voidlibvlc_exception_raise( libvlc_exception_t *p_exception, const char *psz_format, . );/* * Clear an exception object so it can be reused. * The exception object must have be initialized. * * param p_exception the exception to clear */VLC_PUBLIC_API void libvlc_exception_clear( libvlc_exception_t * );/* * Get an exceptions message. * * param p_exception the exception to query * return the exception message or NULL if not applicable (exception not * raised, for example) */VLC_PUBLIC_API const char *libvlc_exception_get_message( const libvlc_exception_t *p_exception );/* */* * Core handling */* defgroup libvlc_core libvlc_core * ingroup libvlc * LibVLC Core * */* * Create and initialize a libvlc instance. * * param argc the number of arguments * param argv command-line-type arguments. argv0 must be the path of the * calling program. * param p_e an initialized exception pointer * return the libvlc instance */VLC_PUBLIC_API libvlc_instance_t *libvlc_new( int , const char *const *, libvlc_exception_t *);/* * Return a libvlc instance identifier for legacy APIs. Use of this * function is discouraged, you should convert your program to use the * new API. * * param p_instance the instance * return the instance identifier */VLC_PUBLIC_API int libvlc_get_vlc_id( libvlc_instance_t *p_instance );/* * Decrement the reference count of a libvlc instance, and destroy it * if it reaches zero. * * param p_instance the instance to destroy */VLC_PUBLIC_API void libvlc_release( libvlc_instance_t * );/* * Increments the reference count of a libvlc instance. * The initial reference count is 1 after libvlc_new() returns. * * param p_instance the instance to reference */VLC_PUBLIC_API void libvlc_retain( libvlc_instance_t * );/* * Try to start a user interface for the libvlc instance. * * param p_instance the instance * param name interface name, or NULL for default * param p_exception an initialized exception pointer */VLC_PUBLIC_APIvoid libvlc_add_intf( libvlc_instance_t *p_instance, const char *name, libvlc_exception_t *p_exception );/* * Waits until an interface causes the instance to exit. * You should start at least one interface first, using libvlc_add_intf(). * * param p_instance the instance */VLC_PUBLIC_APIvoid libvlc_wait( libvlc_instance_t *p_instance );/* * Retrieve libvlc version. * * Example: 0.9.0-git Grishenko * * return a string containing the libvlc version */VLC_PUBLIC_API const char * libvlc_get_version(void);/* * Retrieve libvlc compiler version. * * Example: gcc version 4.2.3 (Ubuntu 4.2.3-2ubuntu6) * * return a string containing the libvlc compiler version */VLC_PUBLIC_API const char * libvlc_get_compiler(void);/* * Retrieve libvlc changeset. * * Example: aa9bce0bc4 * * return a string containing the libvlc changeset */VLC_PUBLIC_API const char * libvlc_get_changeset(void);struct vlc_object_t;/* * Return the libvlc internal object, the main object that all other depend on. * Any of of this function should be considered an ugly hack and avoided at all * cost. E.g. you need to expose some functionality that is not provided by the * libvlc API directly with libvlccore. * Remember to release the object with vlc_object_release( obj* ) * * param p_instance the libvlc instance */VLC_PUBLIC_API struct vlc_object_t *libvlc_get_vlc_instance(libvlc_instance_t *);/* * Frees an heap allocation (char *) returned by a LibVLC API. * If you know youre using the same underlying C run-time as the LibVLC * implementation, then you can call ANSI C free() directly instead. */VLC_PUBLIC_API void libvlc_free( void *ptr );/* */* * Event handling */* defgroup libvlc_event libvlc_event * ingroup libvlc_core * LibVLC Events * */* * Event manager that belongs to a libvlc object, and from whom events can * be received. */typedef struct libvlc_event_manager_t libvlc_event_manager_t;typedef struct libvlc_event_t libvlc_event_t;typedef uint32_t libvlc_event_type_t; /* * Callback function notification * param p_event the event triggering the callback */typedef void ( *libvlc_callback_t )( const libvlc_event_t *, void * ); /* * Register for an event notification. * * param p_event_manager the event manager to which you want to attach to. * Generally it is obtained by vlc_my_object_event_manager() where * my_object is the object you want to listen to. * param i_event_type the desired event to which we want to listen * param f_callback the function to call when i_event_type occurs * param user_data user provided data to carry with the event * param p_e an initialized exception pointer */VLC_PUBLIC_API void libvlc_event_attach( libvlc_event_manager_t *p_event_manager, libvlc_event_type_t i_event_type, libvlc_callback_t f_callback, void *user_data, libvlc_exception_t *p_e );/* * Unregister an event notification. * * param p_event_manager the event manager * param i_event_type the desired event to which we want to unregister * param f_callback the function to call when i_event_type occurs * param p_user_data user provided data to carry with the event * param p_e an initialized exception pointer */VLC_PUBLIC_API void libvlc_event_detach( libvlc_event_manager_t *p_event_manager, libvlc_event_type_t i_event_type, libvlc_callback_t f_callback, void *p_user_data, libvlc_exception_t *p_e );/* * Get an events type name. * * param i_event_type the desired event */VLC_PUBLIC_API const char * libvlc_event_type_name( libvlc_event_type_t event_type );/* */* * Message log handling */* defgroup libvlc_log libvlc_log * ingroup libvlc_core * LibVLC Message Logging * */* * Return the VLC messaging verbosity level. * * param p_instance libvlc instance * param p_e an initialized exception pointer * return verbosity level for messages */VLC_PUBLIC_API unsigned libvlc_get_log_verbosity( const libvlc_instance_t *p_instance, libvlc_exception_t *p_e );/* * Set the VLC messaging verbosity level. * * param p_instance libvlc log instance * param level log level * param p_e an initialized exception pointer */VLC_PUBLIC_API void libvlc_set_log_verbosity( libvlc_instance_t *p_instance, unsigned level, libvlc_exception_t *p_e );/* * Open a VLC message log instance. * * param p_instance libvlc instance * param p_e an initialized exception pointer * return log message instance */VLC_PUBLIC_API libvlc_log_t *libvlc_log_open( libvlc_instance_t *, libvlc_exception_t *);/* * Close a VLC message log instance. * * param p_log libvlc log instance * param p_e an initialized exception pointer */VLC_PUBLIC_API void libvlc_log_close( libvlc_log_t *, libvlc_exception_t *);/* * Returns the number of messages in a log instance. * * param p_log libvlc log instance * param p_e an initialized exception pointer * return number of log messages */VLC_PUBLIC_API unsigned libvlc_log_count( const libvlc_log_t *, libvlc_exception_t *);/* * Clear a log instance. * * All messages in the log are removed. The log should be cleared on a * regular basis to avoid clogging. * * param p_log libvlc log instance * param p_e an initialized exception pointer */VLC_PUBLIC_API void libvlc_log_clear( libvlc_log_t *, libvlc_exception_t *);/* * Allocate and returns a new iterator to messages in log. * * param p_log libvlc log instance * param p_e an initialized exception pointer * return log iterator object */VLC_PUBLIC_API libvlc_log_iterator_t *libvlc_log_get_iterator( const libvlc_log_t *, libvlc_exception_t *);/* * Release a previoulsy allocated iterator. * * param p_iter libvlc log iterator * param p_e an initialized exception pointer */VLC_PUBLIC_API void libvlc_log_iterator_free( libvlc_log_iterator_t *p_iter, libvlc_exception_t *p_e );/* * Return whether log iterator has more messages. * * param p_iter libvlc log iterator * param p_e an initialized exception pointer * return true if iterator has more message objects, else false */VLC_PUBLIC_API int libvlc_log_iterator_has_next( const libvlc_log_iterator_t *p_iter, libvlc_exception_t *p_e );/* * Return the next log message. * * The message contents must not be freed * * param p_iter libvlc log iterator * param p_buffer log buffer * param p_e an initialized exception pointer * return log message object */VLC_PUBLIC_API libvlc_log_message_t *libvlc_log_iterator_next( libvlc_log_iterator_t *p_iter, libvlc_log_message_t *p_buffer, libvlc_exception_t *p_e );/* */# ifdef _cplusplus# endif#endif /* */* libvlc_media_player.h: libvlc_media_player external API * * Copyright (C) 1998-2009 the VideoLAN team * $Id: 4694698088d030f953363baeb4a6465e114e4d26 $ * * Authors: Clment Stenac * Jean-Paul Saman * Pierre dHerbemont * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. */* * file * This file defines libvlc_media_player external API */#ifndef VLC_LIBVLC_MEDIA_PLAYER_H#define VLC_LIBVLC_MEDIA_PLAYER_H 1/* * Media Player */* defgroup libvlc_media_player libvlc_media_player * ingroup libvlc * LibVLC Media Player, object that let you play a media * in a custom drawable * */libvlc_media_player_ttypedef struct libvlc_media_player_t libvlc_media_player_t;/* * Description for video, audio tracks and subtitles. It contains * id, name (description string) and pointer to next record. */typedef struct libvlc_track_description_t int i_id; char *psz_name; struct libvlc_track_description_t *p_next; libvlc_track_description_t;/* * Description for audio output. It contains * name, description and pointer to next record. */typedef struct libvlc_audio_output_t char *psz_name; char *psz_description; struct libvlc_audio_output_t *p_next; libvlc_audio_output_t;/* * Rectangle type for video geometry */typedef struct libvlc_rectangle_t int top, left; int bottom, right; libvlc_rectangle_t;/* * Create an empty Media Player object * * param p_libvlc_instance the libvlc instance in which the Media Player * should be created. * param p_e an initialized exception pointer */VLC_PUBLIC_API libvlc_media_player_t * libvlc_media_player_new( libvlc_instance_t *, libvlc_exception_t * );/* * Create a Media Player object from a Media * * param p_md the media. Afterwards the p_md can be safely * destroyed. * param p_e an initialized exception pointer */VLC_PUBLIC_API libvlc_media_player_t * libvlc_media_player_new_from_media( libvlc_media_t *, libvlc_exception_t * );/* * Release a media_player after use * Decrement the reference count of a media player object. If the * reference count is 0, then libvlc_media_player_release() will * release the media player object. If the media player object * has been released, then it should not be used again. * * param p_mi the Media Player to free */VLC_PUBLIC_API void libvlc_media_player_release( libvlc_media_player_t * );/* * Retain a reference to a media player object. Use * libvlc_media_player_release() to decrement reference count. * * param p_mi media player object */VLC_PUBLIC_API void libvlc_media_player_retain( libvlc_media_player_t * );/* * Set the media that will be used by the media_player. If any, * previous md will be released. * * param p_mi the Media Player * param p_md the Media. Afterwards the p_md can be safely * destroyed. * param p_e an initialized exception pointer */VLC_PUBLIC_API void libvlc_media_player_set_media( libvlc_media_player_t *, libvlc_media_t *, libvlc_exception_t * );/* * Get the media used by the media_player. * * param p_mi the Media Player * param p_e an initialized exception pointer * return the media associated with p_mi, or NULL if no * media is associated */VLC_PUBLIC_API libvlc_media_t * libvlc_media_player_get_media( libvlc_media_player_t *, libvlc_exception_t * );/* * Get the Event Manager from which the media player send event. * * param p_mi the Media Player * param p_e an initialized exception pointer * return the event manager associated with p_mi */VLC_PUBLIC_API libvlc_event_manager_t * libvlc_media_player_event_manager ( libvlc_media_player_t *, libvlc_exception

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论