Stream

This will allow you to easily handle read/seek in demuxer modules. More...

Defines

#define stream_DemuxNew(a, b, c)   __stream_DemuxNew( VLC_OBJECT(a), b, c)
 Create a special stream and a demuxer, this allows chaining demuxers.
#define stream_MemoryNew(a, b, c, d)   __stream_MemoryNew( VLC_OBJECT(a), b, c, d )
#define stream_UrlNew(a, b)   __stream_UrlNew( VLC_OBJECT(a), b )

Enumerations

enum  stream_query_e {
  STREAM_CAN_SEEK, STREAM_CAN_FASTSEEK, STREAM_SET_POSITION, STREAM_GET_POSITION,
  STREAM_GET_SIZE, STREAM_GET_MTU, STREAM_CONTROL_ACCESS, STREAM_GET_CONTENT_TYPE
}
 Possible commands to send to stream_Control() and stream_vaControl(). More...

Functions

int stream_Read (stream_t *s, void *p_read, int i_read)
 Try to read "i_read" bytes into a buffer pointed by "p_read".
int stream_Peek (stream_t *s, const uint8_t **pp_peek, int i_peek)
 Store in pp_peek a pointer to the next "i_peek" bytes in the stream.
int stream_vaControl (stream_t *s, int i_query, va_list args)
 Use to control the "stream_t *".
void stream_Delete (stream_t *s)
 Destroy a stream.
int stream_Control (stream_t *s, int i_query,...)
block_tstream_Block (stream_t *s, int i_size)
 Read "i_size" bytes and store them in a block_t.
char * stream_ReadLine (stream_t *)
static int64_t stream_Tell (stream_t *s)
 Get the current position in a stream.
static int64_t stream_Size (stream_t *s)
 Get the size of the stream.
static int stream_MTU (stream_t *s)
static int stream_Seek (stream_t *s, int64_t i_pos)
static char * stream_ContentType (stream_t *s)
 Get the Content-Type of a stream, or NULL if unknown.
stream_t__stream_DemuxNew (vlc_object_t *p_obj, const char *psz_demux, es_out_t *out)
void stream_DemuxSend (stream_t *s, block_t *p_block)
void stream_DemuxDelete (stream_t *s)
stream_t__stream_MemoryNew (vlc_object_t *p_obj, uint8_t *p_buffer, int64_t i_size, bool i_preserve_memory)
 Create a stream from a memory buffer.
stream_t__stream_UrlNew (vlc_object_t *p_this, const char *psz_url)

Detailed Description

This will allow you to easily handle read/seek in demuxer modules.


Define Documentation

#define stream_DemuxNew ( a,
b,
 )     __stream_DemuxNew( VLC_OBJECT(a), b, c)

Create a special stream and a demuxer, this allows chaining demuxers.

#define stream_MemoryNew ( a,
b,
c,
 )     __stream_MemoryNew( VLC_OBJECT(a), b, c, d )

#define stream_UrlNew ( a,
 )     __stream_UrlNew( VLC_OBJECT(a), b )


Enumeration Type Documentation

enum stream_query_e

Possible commands to send to stream_Control() and stream_vaControl().

Enumerator:
STREAM_CAN_SEEK  arg1= bool * res=cannot fail
STREAM_CAN_FASTSEEK  arg1= bool * res=cannot fail
STREAM_SET_POSITION  arg1= int64_t res=can fail
STREAM_GET_POSITION  arg1= int64_t * res=cannot fail
STREAM_GET_SIZE  arg1= int64_t * res=cannot fail (0 if no sense)
STREAM_GET_MTU  arg1= int * res=cannot fail (0 if no sense)
STREAM_CONTROL_ACCESS 
STREAM_GET_CONTENT_TYPE  arg1= char ** res=can file


Function Documentation

stream_t* __stream_DemuxNew ( vlc_object_t p_obj,
const char *  psz_demux,
es_out_t out 
)

stream_t* __stream_MemoryNew ( vlc_object_t p_this,
uint8_t *  p_buffer,
int64_t  i_size,
bool  i_preserve_memory 
)

Create a stream from a memory buffer.

Parameters:
p_this the calling vlc_object
p_buffer the memory buffer for the stream
i_buffer the size of the buffer
i_preserve_memory if this is set to false the memory buffer pointed to by p_buffer is freed on stream_Destroy

stream_t* __stream_UrlNew ( vlc_object_t p_this,
const char *  psz_url 
)

block_t* stream_Block ( stream_t s,
int  i_size 
)

Read "i_size" bytes and store them in a block_t.

It always read i_size bytes unless you are at the end of the stream where it return what is available.

static char* stream_ContentType ( stream_t s  )  [inline, static]

Get the Content-Type of a stream, or NULL if unknown.

Result must be free()'d.

int stream_Control ( stream_t s,
int  i_query,
  ... 
)

void stream_Delete ( stream_t s  ) 

Destroy a stream.

void stream_DemuxDelete ( stream_t s  ) 

void stream_DemuxSend ( stream_t s,
block_t p_block 
)

static int stream_MTU ( stream_t s  )  [inline, static]

int stream_Peek ( stream_t s,
const uint8_t **  pp_peek,
int  i_peek 
)

Store in pp_peek a pointer to the next "i_peek" bytes in the stream.

Returns:
The real numbers of valid bytes, if it's less or equal to 0, *pp_peek is invalid.
Note:
pp_peek is a pointer to internal buffer and it will be invalid as soons as other stream_* functions are called.

Due to input limitation, it could be less than i_peek without meaning the end of the stream (but only when you have i_peek >= p_input->i_bufsize)

int stream_Read ( stream_t s,
void *  p_read,
int  i_read 
)

Try to read "i_read" bytes into a buffer pointed by "p_read".

If "p_read" is NULL then data are skipped instead of read. The return value is the real numbers of bytes read/skip. If this value is less than i_read that means that it's the end of the stream.

char* stream_ReadLine ( stream_t  ) 

static int stream_Seek ( stream_t s,
int64_t  i_pos 
) [inline, static]

static int64_t stream_Size ( stream_t s  )  [inline, static]

Get the size of the stream.

static int64_t stream_Tell ( stream_t s  )  [inline, static]

Get the current position in a stream.

int stream_vaControl ( stream_t s,
int  i_query,
va_list  args 
)

Use to control the "stream_t *".

Look at stream_query_e for possible "i_query" value and format arguments. Return VLC_SUCCESS if ... succeed ;) and VLC_EGENERIC if failed or unimplemented


Generated on Wed Aug 13 08:05:54 2008 for VLC by  doxygen 1.5.1