X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fcodec%2Fdvbsub.c;h=5ab6071f46329d9d35d45198f86336424a419e09;hb=aa125a246b82b8fc73eb6ead0af744af21693904;hp=fb7619cfa4a22e54605cce34572b852095c48024;hpb=08a73f8b3328767ed9f903bc9913a8dfe27d5079;p=vlc diff --git a/modules/codec/dvbsub.c b/modules/codec/dvbsub.c index fb7619cfa4..5ab6071f46 100644 --- a/modules/codec/dvbsub.c +++ b/modules/codec/dvbsub.c @@ -3,7 +3,7 @@ * DVB subtitles encoder (developed for Anevia, www.anevia.com) ***************************************************************************** * Copyright (C) 2003 ANEVIA - * Copyright (C) 2003-2009 the VideoLAN team + * Copyright (C) 2003-2009 VLC authors and VideoLAN * $Id$ * * Authors: Gildas Bazin @@ -13,19 +13,19 @@ * Derk-Jan Hartman * Simon Hailes * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. * - * You should have received a copy of the GNU General Public License + * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ /***************************************************************************** @@ -109,9 +109,11 @@ static int Open ( vlc_object_t * ); static void Close( vlc_object_t * ); static subpicture_t *Decode( decoder_t *, block_t ** ); +#ifdef ENABLE_SOUT static int OpenEncoder ( vlc_object_t * ); static void CloseEncoder( vlc_object_t * ); static block_t *Encode ( encoder_t *, subpicture_t * ); +#endif vlc_module_begin () # define DVBSUB_CFG_PREFIX "dvbsub-" @@ -122,20 +124,21 @@ vlc_module_begin () set_subcategory( SUBCAT_INPUT_SCODEC ) set_callbacks( Open, Close ) - add_integer( DVBSUB_CFG_PREFIX "position", 8, NULL, POS_TEXT, POS_LONGTEXT, true ) - change_integer_list( pi_pos_values, ppsz_pos_descriptions, NULL ) - add_integer( DVBSUB_CFG_PREFIX "x", -1, NULL, POSX_TEXT, POSX_LONGTEXT, false ) - add_integer( DVBSUB_CFG_PREFIX "y", -1, NULL, POSY_TEXT, POSY_LONGTEXT, false ) + add_integer( DVBSUB_CFG_PREFIX "position", 8, POS_TEXT, POS_LONGTEXT, true ) + change_integer_list( pi_pos_values, ppsz_pos_descriptions ) + add_integer( DVBSUB_CFG_PREFIX "x", -1, POSX_TEXT, POSX_LONGTEXT, false ) + add_integer( DVBSUB_CFG_PREFIX "y", -1, POSY_TEXT, POSY_LONGTEXT, false ) +#ifdef ENABLE_SOUT # define ENC_CFG_PREFIX "sout-dvbsub-" add_submodule () set_description( N_("DVB subtitles encoder") ) set_capability( "encoder", 100 ) set_callbacks( OpenEncoder, CloseEncoder ) - add_integer( ENC_CFG_PREFIX "x", -1, NULL, ENC_POSX_TEXT, ENC_POSX_LONGTEXT, false ) - add_integer( ENC_CFG_PREFIX "y", -1, NULL, ENC_POSY_TEXT, ENC_POSY_LONGTEXT, false ) - add_obsolete_integer( ENC_CFG_PREFIX "timeout" ) /* Suppressed since 0.8.5 */ + add_integer( ENC_CFG_PREFIX "x", -1, ENC_POSX_TEXT, ENC_POSX_LONGTEXT, false ) + add_integer( ENC_CFG_PREFIX "y", -1, ENC_POSY_TEXT, ENC_POSY_LONGTEXT, false ) +#endif vlc_module_end () static const char *const ppsz_enc_options[] = { "x", "y", NULL }; @@ -442,7 +445,7 @@ static subpicture_t *Decode( decoder_t *p_dec, block_t **pp_block ) decode_segment( p_dec, &p_sys->bs ); } - if( bs_read( &p_sys->bs, 8 ) != 0xff ) /* End marker */ + if( ( bs_read( &p_sys->bs, 8 ) & 0x3f ) != 0x3f ) /* End marker */ { msg_Warn( p_dec, "end marker not found (corrupted subtitle ?)" ); block_Release( p_block ); @@ -1472,7 +1475,7 @@ static subpicture_t *render( decoder_t *p_dec ) decoder_sys_t *p_sys = p_dec->p_sys; subpicture_t *p_spu; subpicture_region_t **pp_spu_region; - int i, j, i_timeout = 0; + int i, j; int i_base_x; int i_base_y; @@ -1533,8 +1536,6 @@ static subpicture_t *render( decoder_t *p_dec ) video_palette_t palette; int i_pitch; - i_timeout = p_sys->p_page->i_timeout; - p_regiondef = &p_sys->p_page->p_region_defs[i]; /* Find associated region */ @@ -1682,6 +1683,7 @@ struct encoder_sys_t int i_offset_y; }; +#ifdef ENABLE_SOUT static void encode_page_composition( encoder_t *, bs_t *, subpicture_t * ); static void encode_clut( encoder_t *, bs_t *, subpicture_t * ); static void encode_region_composition( encoder_t *, bs_t *, subpicture_t * ); @@ -1992,7 +1994,7 @@ static block_t *Encode( encoder_t *p_enc, subpicture_t *p_subpic ) #ifdef DEBUG_DVBSUB msg_Dbg( p_enc, "encoding subpicture" ); #endif - p_block = block_New( p_enc, 64000 ); + p_block = block_Alloc( 64000 ); bs_init( s, p_block->p_buffer, p_block->i_buffer ); bs_write( s, 8, 0x20 ); /* Data identifier */ @@ -2019,7 +2021,7 @@ static block_t *Encode( encoder_t *p_enc, subpicture_t *p_subpic ) p_block->i_length = p_subpic->i_stop - p_subpic->i_start; /* Send another (empty) subtitle to signal the end of display */ - p_block_stop = block_New( p_enc, 64000 ); + p_block_stop = block_Alloc( 64000 ); bs_init( s, p_block_stop->p_buffer, p_block_stop->i_buffer ); bs_write( s, 8, 0x20 ); /* Data identifier */ bs_write( s, 8, 0x0 ); /* Subtitle stream id */ @@ -2644,6 +2646,7 @@ static void encode_pixel_line_8bp( bs_t *s, subpicture_region_t *p_region, bs_align_0( s ); } +#endif static void default_dds_init( decoder_t * p_dec ) {