Commit 628ce6ae authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

Add libvlc_media_new_fd

(cherry picked from commit 8ff2e66f)
parent 7c3dd2e6
...@@ -202,6 +202,35 @@ VLC_PUBLIC_API libvlc_media_t *libvlc_media_new_path( ...@@ -202,6 +202,35 @@ VLC_PUBLIC_API libvlc_media_t *libvlc_media_new_path(
libvlc_instance_t *p_instance, libvlc_instance_t *p_instance,
const char *path ); const char *path );
/**
* Create a media for an already open file descriptor.
* The file descriptor shall be open for reading (or reading and writing).
*
* Regular file descriptors, pipe read descriptors and character device
* descriptors (including TTYs) are supported on all platforms.
* Block device descriptors are supported where available.
* Directory descriptors are supported on systems that provide fdopendir().
* Sockets are supported on all platforms where they are file descriptors,
* i.e. all except Windows.
*
* \note This library will <b>not</b> automatically close the file descriptor
* under any circumstance. Nevertheless, a file descriptor can usually only be
* rendered once in a media player. To render it a second time, the file
* descriptor should probably be rewound to the beginning with lseek().
*
* \see libvlc_media_release
*
* \version LibVLC 1.1.5 and later.
*
* \param p_instance the instance
* \param fd open file descriptor
* \return the newly created media or NULL on error
*/
VLC_PUBLIC_API libvlc_media_t *libvlc_media_new_fd(
libvlc_instance_t *p_instance,
int fd );
/** /**
* Create a media as an empty node with a given name. * Create a media as an empty node with a given name.
* *
......
...@@ -340,6 +340,14 @@ libvlc_media_t *libvlc_media_new_path( libvlc_instance_t *p_instance, ...@@ -340,6 +340,14 @@ libvlc_media_t *libvlc_media_new_path( libvlc_instance_t *p_instance,
return m; return m;
} }
libvlc_media_t *libvlc_media_new_fd( libvlc_instance_t *p_instance, int fd )
{
char mrl[16];
snprintf( mrl, sizeof(mrl), "fd://%d", fd );
return libvlc_media_new_location( p_instance, mrl );
}
/************************************************************************** /**************************************************************************
* Create a new media descriptor object * Create a new media descriptor object
**************************************************************************/ **************************************************************************/
......
...@@ -100,6 +100,7 @@ libvlc_media_list_remove_index ...@@ -100,6 +100,7 @@ libvlc_media_list_remove_index
libvlc_media_list_retain libvlc_media_list_retain
libvlc_media_list_set_media libvlc_media_list_set_media
libvlc_media_list_unlock libvlc_media_list_unlock
libvlc_media_new_fd
libvlc_media_new_location libvlc_media_new_location
libvlc_media_new_path libvlc_media_new_path
libvlc_media_new_as_node libvlc_media_new_as_node
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment