]> git.sesse.net Git - vlc/blobdiff - include/vlc_block.h
Qt: Save/Convert dialog should not show any streaming features.
[vlc] / include / vlc_block.h
index 8d461788313e08d94b7b45f654790b9df8bf3ce8..a17530ec36e881aa8d5e5e7ebdd1124cc557eda2 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
-#if !defined( __LIBVLC__ )
-  #error You are not libvlc or one of its plugins. You cannot include this file
-#endif
+#ifndef VLC_BLOCK_H
+#define VLC_BLOCK_H 1
 
-#ifndef _VLC_BLOCK_H
-#define _VLC_BLOCK_H 1
+/**
+ * \file
+ * This file implements functions and structures to handle blocks of data in vlc
+ *
+ */
 
 /****************************************************************************
  * block:
@@ -66,6 +68,8 @@ typedef struct block_sys_t block_sys_t;
 #define BLOCK_FLAG_END_OF_FRAME  0x0040
 /** This is not a key frame for bitrate shaping */
 #define BLOCK_FLAG_NO_KEYFRAME   0x0080
+/** This block contains the last part of a sequence  */
+#define BLOCK_FLAG_END_OF_SEQUENCE 0x0100
 /** This block contains a clock reference */
 #define BLOCK_FLAG_CLOCK         0x0200
 /** This block is scrambled */
@@ -104,9 +108,9 @@ struct block_t
 /****************************************************************************
  * Blocks functions:
  ****************************************************************************
- * - block_New : create a new block with the requested size ( >= 0 ), return
+ * - block_Alloc : create a new block with the requested size ( >= 0 ), return
  *      NULL for failure.
- * - block_Release : release a block allocated with block_New.
+ * - block_Release : release a block allocated with block_Alloc.
  * - block_Realloc : realloc a block,
  *      i_pre: how many bytes to insert before body if > 0, else how many
  *      bytes of body to skip (the latter can be done without using
@@ -121,15 +125,11 @@ VLC_EXPORT( void,      block_Init,    ( block_t *, void *, size_t ) );
 VLC_EXPORT( block_t *, block_Alloc,   ( size_t ) );
 VLC_EXPORT( block_t *, block_Realloc, ( block_t *, ssize_t i_pre, size_t i_body ) );
 
-static inline block_t *block_New( void *dummy, size_t size )
-{
-    (void)dummy;
-    return block_Alloc (size);
-}
+#define block_New( dummy, size ) block_Alloc(size)
 
 static inline block_t *block_Duplicate( block_t *p_block )
 {
-    block_t *p_dup = block_New( NULL, p_block->i_buffer );
+    block_t *p_dup = block_Alloc( p_block->i_buffer );
     if( p_dup == NULL )
         return NULL;
 
@@ -143,22 +143,26 @@ static inline block_t *block_Duplicate( block_t *p_block )
 
     return p_dup;
 }
+
 static inline void block_Release( block_t *p_block )
 {
     p_block->pf_release( p_block );
 }
 
+VLC_EXPORT( block_t *, block_mmap_Alloc, (void *addr, size_t length) );
+VLC_EXPORT( block_t *, block_File, (int fd) );
+
 /****************************************************************************
  * Chains of blocks functions helper
  ****************************************************************************
- * - block_ChainAppend : append a block the the last block of a chain. Try to
+ * - block_ChainAppend : append a block to the last block of a chain. Try to
  *      avoid using with a lot of data as it's really slow, prefer
  *      block_ChainLastAppend
  * - block_ChainLastAppend : use a pointer over a pointer to the next blocks,
  *      and update it.
  * - block_ChainRelease : release a chain of block
  * - block_ChainExtract : extract data from a chain, return real bytes counts
- * - block_ChainGather : gather a chain, free it and return a block.
+ * - block_ChainGather : gather a chain, free it and return one block.
  ****************************************************************************/
 static inline void block_ChainAppend( block_t **pp_list, block_t *p_block )
 {
@@ -175,7 +179,7 @@ static inline void block_ChainAppend( block_t **pp_list, block_t *p_block )
     }
 }
 
-static inline void block_ChainLastAppend( block_t ***ppp_last, block_t *p_block  )
+static inline void block_ChainLastAppend( block_t ***ppp_last, block_t *p_block )
 {
     block_t *p_last = p_block;
 
@@ -228,7 +232,7 @@ static inline block_t *block_ChainGather( block_t *p_list )
         i_length += b->i_length;
     }
 
-    g = block_New( NULL, i_total );
+    g = block_Alloc( i_total );
     block_ChainExtract( p_list, g->p_buffer, g->i_buffer );
 
     g->i_flags = p_list->i_flags;
@@ -241,7 +245,6 @@ static inline block_t *block_ChainGather( block_t *p_list )
     return g;
 }
 
-
 /****************************************************************************
  * Fifos of blocks.
  ****************************************************************************
@@ -259,8 +262,7 @@ static inline block_t *block_ChainGather( block_t *p_list )
  *   (this is used to wakeup a thread when there is no data to queue)
  ****************************************************************************/
 
-#define block_FifoNew( a ) __block_FifoNew( VLC_OBJECT(a) )
-VLC_EXPORT( block_fifo_t *, __block_FifoNew,    ( vlc_object_t * ) );
+VLC_EXPORT( block_fifo_t *, block_FifoNew,      ( void ) );
 VLC_EXPORT( void,           block_FifoRelease,  ( block_fifo_t * ) );
 VLC_EXPORT( void,           block_FifoEmpty,    ( block_fifo_t * ) );
 VLC_EXPORT( size_t,         block_FifoPut,      ( block_fifo_t *, block_t * ) );