X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=include%2Fvlc_block.h;h=79389868eb02d1e47f8a1a6e2650cee118381266;hb=12ade3e3bc975d5426ba4af155b7372c31093b31;hp=98e562645079fadc2d8cacda0dec8551a75ef4ab;hpb=24140ae7036eb1df515c862b38879438ac16291a;p=vlc diff --git a/include/vlc_block.h b/include/vlc_block.h index 98e5626450..79389868eb 100644 --- a/include/vlc_block.h +++ b/include/vlc_block.h @@ -48,7 +48,7 @@ * - p_buffer: pointer over datas. You should never overwrite it, you can * only incremment it to skip datas, in others cases use block_Realloc * (don't duplicate yourself in a bigger buffer, block_Realloc is - * optimised for prehader/postdatas increase) + * optimised for preheader/postdatas increase) ****************************************************************************/ typedef struct block_sys_t block_sys_t; @@ -78,6 +78,14 @@ typedef struct block_sys_t block_sys_t; #define BLOCK_FLAG_PREROLL 0x0800 /** This block is corrupted and/or there is data loss */ #define BLOCK_FLAG_CORRUPTED 0x1000 +/** This block contains an interlaced picture with top field first */ +#define BLOCK_FLAG_TOP_FIELD_FIRST 0x2000 +/** This block contains an interlaced picture with bottom field first */ +#define BLOCK_FLAG_BOTTOM_FIELD_FIRST 0x4000 + +/** This block contains an interlaced picture */ +#define BLOCK_FLAG_INTERLACED_MASK \ + (BLOCK_FLAG_TOP_FIELD_FIRST|BLOCK_FLAG_BOTTOM_FIELD_FIRST) #define BLOCK_FLAG_TYPE_MASK \ (BLOCK_FLAG_TYPE_I|BLOCK_FLAG_TYPE_P|BLOCK_FLAG_TYPE_B|BLOCK_FLAG_TYPE_PB) @@ -102,7 +110,7 @@ struct block_t mtime_t i_dts; mtime_t i_length; - int i_samples; /* Used for audio */ + unsigned i_nb_samples; /* Used for audio */ int i_rate; size_t i_buffer; @@ -146,7 +154,7 @@ static inline block_t *block_Duplicate( block_t *p_block ) p_dup->i_flags = p_block->i_flags; p_dup->i_length = p_block->i_length; p_dup->i_rate = p_block->i_rate; - p_dup->i_samples = p_block->i_samples; + p_dup->i_nb_samples = p_block->i_nb_samples; memcpy( p_dup->p_buffer, p_block->p_buffer, p_block->i_buffer ); return p_dup; @@ -172,7 +180,7 @@ static inline void block_Cleanup (void *block) **************************************************************************** * - 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, p_block can be NULL * - block_ChainLastAppend : use a pointer over a pointer to the next blocks, * and update it. * - block_ChainRelease : release a chain of block @@ -284,6 +292,7 @@ static inline block_t *block_ChainGather( block_t *p_list ) **************************************************************************** * - block_FifoNew : create and init a new fifo * - block_FifoRelease : destroy a fifo and free all blocks in it. + * - block_FifoPace : wait for a fifo to drain to a specified number of packets or total data size * - block_FifoEmpty : free all blocks in a fifo * - block_FifoPut : put a block * - block_FifoGet : get a packet from the fifo (and wait if it is empty) @@ -299,8 +308,7 @@ static inline block_t *block_ChainGather( block_t *p_list ) VLC_EXPORT( block_fifo_t *, block_FifoNew, ( void ) LIBVLC_USED ); VLC_EXPORT( void, block_FifoRelease, ( block_fifo_t * ) ); -/* TODO: do we need to export this? */ -void block_FifoPace (block_fifo_t *fifo, size_t max_depth, size_t max_size); +VLC_EXPORT( void, block_FifoPace, ( block_fifo_t *fifo, size_t max_depth, size_t max_size ) ); VLC_EXPORT( void, block_FifoEmpty, ( block_fifo_t * ) ); VLC_EXPORT( size_t, block_FifoPut, ( block_fifo_t *, block_t * ) ); VLC_EXPORT( void, block_FifoWake, ( block_fifo_t * ) );