Stream

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

Data Structures

struct  stream_t
 stream_t definition More...

Defines

#define stream_MemoryNew(a, b, c, d)   __stream_MemoryNew( VLC_OBJECT(a), b, c, d )
 Create a stream_t reading from memory.
#define stream_UrlNew(a, b)   __stream_UrlNew( VLC_OBJECT(a), b )
 Create a stream_t reading from an URL.

Typedefs

typedef struct stream_text_t stream_text_t

Enumerations

enum  stream_query_e {
  STREAM_CAN_SEEK, STREAM_CAN_FASTSEEK, STREAM_SET_POSITION, STREAM_GET_POSITION,
  STREAM_GET_SIZE, STREAM_CONTROL_ACCESS, STREAM_UPDATE_SIZE, STREAM_GET_CONTENT_TYPE,
  STREAM_SET_RECORD_STATE
}
 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_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_tstream_DemuxNew (demux_t *p_demux, const char *psz_demux, es_out_t *out)
 Create a special stream and a demuxer, this allows chaining demuxers You must delete it using stream_Delete.
void stream_DemuxSend (stream_t *s, block_t *p_block)
 Send data to a stream_t handle created by stream_DemuxNew.
stream_t__stream_MemoryNew (vlc_object_t *p_obj, uint8_t *p_buffer, int64_t i_size, bool b_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_MemoryNew ( a,
b,
c,
 )     __stream_MemoryNew( VLC_OBJECT(a), b, c, d )

Create a stream_t reading from memory.

You must delete it using stream_Delete.

Referenced by MP4_ReadBox_cmov(), ParseUSFHeader(), RenderHtml(), and matroska_segment_c::Select().

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

Create a stream_t reading from an URL.

You must delete it using stream_Delete.

Referenced by DownloadArt(), FetchRSS(), Handshake(), ImageReadUrl(), LoadBlock(), SetPlayItem(), vlclua_stream_new(), XMLParser::XMLParser(), and ZipIO_Open().


Typedef Documentation

typedef struct stream_text_t stream_text_t


Enumeration Type Documentation

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_CONTROL_ACCESS 
STREAM_UPDATE_SIZE 
STREAM_GET_CONTENT_TYPE  arg1= char ** res=can fail
STREAM_SET_RECORD_STATE  arg1=bool, arg2=const char *psz_ext (if arg1 is true) res=can fail


Function Documentation

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

References Control(), Delete(), FIND_PARENT, stream_sys_t::i_pos, stream_sys_t::i_preserve_memory, stream_sys_t::i_size, stream_sys_t::p_buffer, stream_t::p_input, stream_t::p_sys, p_sys, Peek(), stream_t::pf_control, stream_t::pf_destroy, stream_t::pf_peek, stream_t::pf_read, stream_t::psz_path, Read(), strdup(), stream_CommonDelete(), stream_CommonNew(), vlc_object_attach, vlc_object_find, VLC_OBJECT_INPUT, and vlc_object_release.

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.

References block_New, block_Release(), block_t::i_buffer, block_t::p_buffer, and stream_Read().

Referenced by AVI_PacketRead(), Demux(), Demux_Seekable(), DemuxPacket(), LoadBlock(), ps_pkt_read(), and SendBlock().

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  ) 

stream_t* stream_DemuxNew ( demux_t p_demux,
const char *  psz_demux,
es_out_t out 
)

void stream_DemuxSend ( stream_t s,
block_t p_block 
)

Send data to a stream_t handle created by stream_DemuxNew.

References block_FifoPut(), stream_sys_t::p_fifo, stream_t::p_sys, and p_sys.

Referenced by Demux(), Demux_Seekable(), ParseASF(), stream_decode(), and StreamRead().

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)

References stream_t::pf_peek.

Referenced by A52Init(), AacProbe(), ASF_ReadObject_advanced_mutual_exclusion(), ASF_ReadObject_codec_list(), ASF_ReadObject_content_description(), ASF_ReadObject_Data(), ASF_ReadObject_extended_content_description(), ASF_ReadObject_extended_stream_properties(), ASF_ReadObject_file_properties(), ASF_ReadObject_Header(), ASF_ReadObject_header_extension(), ASF_ReadObject_Index(), ASF_ReadObject_language_list(), ASF_ReadObject_metadata(), ASF_ReadObject_stream_bitrate_properties(), ASF_ReadObject_stream_prioritization(), ASF_ReadObject_stream_properties(), ASF_ReadObjectCommon(), AVI_ChunkRead_list(), AVI_ChunkReadCommon(), AVI_PacketGetHeader(), CheckFooter(), CheckHeader(), ChunkFind(), CodecParse(), ContainsURL(), Demux(), DemuxOpen(), DemuxPacket(), GenericProbe(), get_chunk_header(), HeaderMDPR(), Import_DVB(), Import_GVP(), Import_IFO(), Import_SGIMB(), MP4_ReadBoxCommon(), MP4_ReadBoxSkip(), MpgaInit(), MpgaProbe(), OpenBzip2(), OpenCommon(), OpenDemux(), OpenGzip(), Peek(), PeekBlock(), probe_stream(), ps_pkt_read(), ps_pkt_resynch(), ReadMeta(), ReadNSVf(), ReSynch(), SkipAPETag(), SkipEnd(), SkipFile(), SkipID3Tag(), stream_ReadLine(), StreamOpen(), Validate(), vlclua_demux_peek(), vlclua_demux_read(), and WavSkipHeader().

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

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]

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

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

References stream_t::pf_control.

Referenced by Control().


Generated on Sun Nov 22 08:06:05 2009 for VLC by  doxygen 1.5.6