From 3a967bf6dde5a9591b83b45644c0a482bb1bad12 Mon Sep 17 00:00:00 2001 From: Laurent Aimar Date: Thu, 11 Mar 2004 17:32:29 +0000 Subject: [PATCH] * stream_output.h: removed sout_buffer_t and use block_t instead. --- include/stream_output.h | 159 +++++++++------------------------------- include/vlc_block.h | 7 +- include/vlc_common.h | 2 - 3 files changed, 42 insertions(+), 126 deletions(-) diff --git a/include/stream_output.h b/include/stream_output.h index d0787a57d5..26c4e02420 100644 --- a/include/stream_output.h +++ b/include/stream_output.h @@ -29,58 +29,6 @@ #include "vlc_es.h" -/* - * i_allocated_size: size of allocated buffer - * p_allocated_buffer: where data has been allocated - * - * i_buffer_size: sizeof buffer from p_buffer - * p_buffer: where data begins - * i_size: size of valid data - * - */ -#define SOUT_BUFFER_FLAGS_HEADER 0x0001 - -/* - * Flags for muxer/access private usage. - */ -#define SOUT_BUFFER_FLAGS_PRIVATE_MASK 0xffff0000 -#define SOUT_BUFFER_FLAGS_PRIVATE_SHIFT 16 - -/* - * Flags originating from block_t (FIXME: this is temporary). - */ -#define SOUT_BUFFER_FLAGS_BLOCK_MASK 0x0000ff00 -#define SOUT_BUFFER_FLAGS_BLOCK_SHIFT 8 - -struct sout_buffer_t -{ - size_t i_allocated_size; - byte_t *p_allocated_buffer; - - size_t i_buffer_size; - byte_t *p_buffer; - - size_t i_size; - mtime_t i_length; - - mtime_t i_dts; - mtime_t i_pts; - - uint32_t i_flags; - int i_bitrate; - - struct sout_buffer_t *p_next; -}; - -struct sout_fifo_t -{ - vlc_mutex_t lock; /* fifo data lock */ - vlc_cond_t wait; /* fifo data conditional variable */ - - int i_depth; - sout_buffer_t *p_first; - sout_buffer_t **pp_last; -}; typedef struct sout_stream_id_t sout_stream_id_t; @@ -90,7 +38,7 @@ struct sout_input_t sout_instance_t *p_sout; es_format_t *p_fmt; - sout_fifo_t *p_fifo; + block_fifo_t *p_fifo; void *p_sys; }; @@ -98,7 +46,6 @@ struct sout_input_t /* for packetizer */ struct sout_packetizer_input_t { - sout_instance_t *p_sout; es_format_t *p_fmt; @@ -125,12 +72,9 @@ struct sout_access_out_t char *psz_name; sout_access_out_sys_t *p_sys; - int (* pf_seek )( sout_access_out_t *, - off_t ); - int (* pf_read )( sout_access_out_t *, - sout_buffer_t * ); - int (* pf_write )( sout_access_out_t *, - sout_buffer_t * ); + int (*pf_seek)( sout_access_out_t *, off_t ); + int (*pf_read)( sout_access_out_t *, block_t * ); + int (*pf_write)( sout_access_out_t *, block_t * ); }; /* @@ -154,37 +98,27 @@ typedef struct sout_mux_sys_t sout_mux_sys_t; struct sout_mux_t { VLC_COMMON_MEMBERS - module_t *p_module; - - sout_instance_t *p_sout; + module_t *p_module; - char *psz_mux; - sout_cfg_t *p_cfg; + sout_instance_t *p_sout; - sout_access_out_t *p_access; + char *psz_mux; + sout_cfg_t *p_cfg; - int i_preheader; - int (* pf_capacity) ( sout_mux_t *, - int, void *, void *); - int (* pf_addstream )( sout_mux_t *, - sout_input_t * ); - int (* pf_delstream )( sout_mux_t *, - sout_input_t * ); - int (* pf_mux ) ( sout_mux_t * ); + sout_access_out_t *p_access; + int (*pf_capacity)( sout_mux_t *, int, void *, void *); + int (*pf_addstream)( sout_mux_t *, sout_input_t * ); + int (*pf_delstream)( sout_mux_t *, sout_input_t * ); + int (*pf_mux) ( sout_mux_t * ); /* here are all inputs accepted by muxer */ - int i_nb_inputs; - sout_input_t **pp_inputs; + int i_nb_inputs; + sout_input_t **pp_inputs; /* mux private */ - sout_mux_sys_t *p_sys; - -#if 0 - /* creater private */ - void *p_sys_owner; -#endif + sout_mux_sys_t *p_sys; /* XXX private to stream_output.c */ /* if muxer doesn't support adding stream at any time then we first wait @@ -210,22 +144,21 @@ struct sout_stream_t { VLC_COMMON_MEMBERS - module_t *p_module; - sout_instance_t *p_sout; + module_t *p_module; + sout_instance_t *p_sout; - char *psz_name; - sout_cfg_t *p_cfg; - char *psz_next; + char *psz_name; + sout_cfg_t *p_cfg; + char *psz_next; /* add, remove a stream */ - sout_stream_id_t * (*pf_add) ( sout_stream_t *, es_format_t * ); - int (*pf_del) ( sout_stream_t *, sout_stream_id_t * ); - + sout_stream_id_t *(*pf_add)( sout_stream_t *, es_format_t * ); + int (*pf_del)( sout_stream_t *, sout_stream_id_t * ); /* manage a packet */ - int (*pf_send)( sout_stream_t *, sout_stream_id_t *, sout_buffer_t* ); + int (*pf_send)( sout_stream_t *, sout_stream_id_t *, block_t* ); /* private */ - sout_stream_sys_t *p_sys; + sout_stream_sys_t *p_sys; }; typedef struct sout_instance_sys_t sout_instance_sys_t; @@ -239,10 +172,6 @@ struct sout_instance_t /* meta data (Read only) XXX it won't be set before the first packet received */ vlc_meta_t *p_meta; - /* muxer data */ - int i_preheader; /* max over all muxer */ - - int i_padding; /* needed by some decoders */ int i_out_pace_nocontrol; /* count of output that can't control the space */ vlc_mutex_t lock; @@ -280,40 +209,24 @@ static inline char *sout_cfg_find_value( sout_cfg_t *p_cfg, char *psz_name ) * Prototypes *****************************************************************************/ #define sout_NewInstance(a,b) __sout_NewInstance(VLC_OBJECT(a),b) -VLC_EXPORT( sout_instance_t *, __sout_NewInstance, ( vlc_object_t *, char * ) ); -VLC_EXPORT( void, sout_DeleteInstance, ( sout_instance_t * ) ); - -VLC_EXPORT( sout_fifo_t *, sout_FifoCreate, ( sout_instance_t * ) ); -VLC_EXPORT( void, sout_FifoDestroy, ( sout_instance_t *, sout_fifo_t * ) ); -VLC_EXPORT( void, sout_FifoFree, ( sout_instance_t *,sout_fifo_t * ) ); - -VLC_EXPORT( void, sout_FifoPut, ( sout_fifo_t *, sout_buffer_t* ) ); -VLC_EXPORT( sout_buffer_t *, sout_FifoGet, ( sout_fifo_t * ) ); -VLC_EXPORT( sout_buffer_t *, sout_FifoShow, ( sout_fifo_t * ) ); - +VLC_EXPORT( sout_instance_t *, __sout_NewInstance, ( vlc_object_t *, char * ) ); +VLC_EXPORT( void, sout_DeleteInstance, ( sout_instance_t * ) ); VLC_EXPORT( sout_packetizer_input_t *, sout_InputNew,( sout_instance_t *, es_format_t * ) ); -VLC_EXPORT( int, sout_InputDelete, ( sout_packetizer_input_t * ) ); -VLC_EXPORT( int, sout_InputSendBuffer, ( sout_packetizer_input_t *, sout_buffer_t* ) ); - -VLC_EXPORT( sout_buffer_t*, sout_BufferNew, ( sout_instance_t *, size_t ) ); -VLC_EXPORT( int, sout_BufferRealloc,( sout_instance_t *, sout_buffer_t*, size_t ) ); -VLC_EXPORT( int, sout_BufferReallocFromPreHeader,( sout_instance_t *, sout_buffer_t*, size_t ) ); -VLC_EXPORT( int, sout_BufferDelete, ( sout_instance_t *, sout_buffer_t* ) ); -VLC_EXPORT( sout_buffer_t*, sout_BufferDuplicate,(sout_instance_t *, sout_buffer_t * ) ); -VLC_EXPORT( void, sout_BufferChain, ( sout_buffer_t **, sout_buffer_t * ) ); - -VLC_EXPORT( sout_access_out_t *, sout_AccessOutNew, ( sout_instance_t *, char *psz_access, char *psz_name ) ); -VLC_EXPORT( void, sout_AccessOutDelete, ( sout_access_out_t * ) ); -VLC_EXPORT( int, sout_AccessOutSeek, ( sout_access_out_t *, off_t ) ); -VLC_EXPORT( int, sout_AccessOutRead, ( sout_access_out_t *, sout_buffer_t * ) ); -VLC_EXPORT( int, sout_AccessOutWrite, ( sout_access_out_t *, sout_buffer_t * ) ); +VLC_EXPORT( int, sout_InputDelete, ( sout_packetizer_input_t * ) ); +VLC_EXPORT( int, sout_InputSendBuffer, ( sout_packetizer_input_t *, block_t* ) ); + +VLC_EXPORT( sout_access_out_t *,sout_AccessOutNew, ( sout_instance_t *, char *psz_access, char *psz_name ) ); +VLC_EXPORT( void, sout_AccessOutDelete, ( sout_access_out_t * ) ); +VLC_EXPORT( int, sout_AccessOutSeek, ( sout_access_out_t *, off_t ) ); +VLC_EXPORT( int, sout_AccessOutRead, ( sout_access_out_t *, block_t * ) ); +VLC_EXPORT( int, sout_AccessOutWrite, ( sout_access_out_t *, block_t * ) ); VLC_EXPORT( sout_mux_t *, sout_MuxNew, ( sout_instance_t*, char *, sout_access_out_t * ) ); VLC_EXPORT( sout_input_t *, sout_MuxAddStream, ( sout_mux_t *, es_format_t * ) ); VLC_EXPORT( void, sout_MuxDeleteStream, ( sout_mux_t *, sout_input_t * ) ); VLC_EXPORT( void, sout_MuxDelete, ( sout_mux_t * ) ); -VLC_EXPORT( void, sout_MuxSendBuffer, ( sout_mux_t *, sout_input_t *, sout_buffer_t * ) ); +VLC_EXPORT( void, sout_MuxSendBuffer, ( sout_mux_t *, sout_input_t *, block_t * ) ); VLC_EXPORT( char *, sout_cfg_parser, ( char **, sout_cfg_t **, char * ) ); VLC_EXPORT( sout_stream_t *, sout_stream_new, ( sout_instance_t *, char *psz_chain ) ); diff --git a/include/vlc_block.h b/include/vlc_block.h index bfe481b93a..1c6cbb40aa 100644 --- a/include/vlc_block.h +++ b/include/vlc_block.h @@ -2,7 +2,7 @@ * vlc_block.h: Data blocks management functions ***************************************************************************** * Copyright (C) 2003 VideoLAN - * $Id: vlc_block.h,v 1.6 2004/02/25 17:48:52 fenrir Exp $ + * $Id$ * * Authors: Laurent Aimar * @@ -39,6 +39,11 @@ typedef struct block_sys_t block_sys_t; #define BLOCK_FLAG_TYPE_B 0x0008 /* BLOCK_FLAG_TYPE_PB: for inter frame when you don't know the real type */ #define BLOCK_FLAG_TYPE_PB 0x0010 +/* BLOCK_FLAG_HEADER: warm that this block is a header one */ +#define BLOCK_FLAG_HEADER 0x0020 + +#define BLOCK_FLAG_PRIVATE_MASK 0xffff0000 +#define BLOCK_FLAG_PRIVATE_SHIFT 16 struct block_t { diff --git a/include/vlc_common.h b/include/vlc_common.h index 1ca86bdfa8..e61ab6946d 100644 --- a/include/vlc_common.h +++ b/include/vlc_common.h @@ -266,10 +266,8 @@ typedef struct text_style_t text_style_t; /* Stream output */ typedef struct sout_instance_t sout_instance_t; -typedef struct sout_fifo_t sout_fifo_t; typedef struct sout_input_t sout_input_t; typedef struct sout_packetizer_input_t sout_packetizer_input_t; -typedef struct sout_buffer_t sout_buffer_t; typedef struct sout_access_out_t sout_access_out_t; typedef struct sout_mux_t sout_mux_t; typedef struct sout_stream_t sout_stream_t; -- 2.39.2