X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fstream_out%2Ftranscode.c;h=ffa3954538a197aef2bf95e227f01e16ae179f7c;hb=97897eeeb22b1238e56632b16cda1a0375ae7708;hp=7b664991fded9eefcb3c19d0cb081b9d3c029b8f;hpb=e9fffd8895d71e629ecc61419a0df28529d25afe;p=vlc diff --git a/modules/stream_out/transcode.c b/modules/stream_out/transcode.c index 7b664991fd..ffa3954538 100644 --- a/modules/stream_out/transcode.c +++ b/modules/stream_out/transcode.c @@ -1,7 +1,7 @@ /***************************************************************************** * transcode.c: transcoding stream output module ***************************************************************************** - * Copyright (C) 2003-2004 the VideoLAN team + * Copyright (C) 2003-2008 the VideoLAN team * $Id$ * * Authors: Laurent Aimar @@ -200,97 +200,97 @@ vlc_module_begin(); set_subcategory( SUBCAT_SOUT_STREAM ); set_section( N_("Video"), NULL ); add_string( SOUT_CFG_PREFIX "venc", NULL, NULL, VENC_TEXT, - VENC_LONGTEXT, VLC_FALSE ); + VENC_LONGTEXT, false ); add_string( SOUT_CFG_PREFIX "vcodec", NULL, NULL, VCODEC_TEXT, - VCODEC_LONGTEXT, VLC_FALSE ); + VCODEC_LONGTEXT, false ); add_integer( SOUT_CFG_PREFIX "vb", 800 * 1000, NULL, VB_TEXT, - VB_LONGTEXT, VLC_FALSE ); + VB_LONGTEXT, false ); add_float( SOUT_CFG_PREFIX "scale", 1, NULL, SCALE_TEXT, - SCALE_LONGTEXT, VLC_FALSE ); + SCALE_LONGTEXT, false ); add_float( SOUT_CFG_PREFIX "fps", 0, NULL, FPS_TEXT, - FPS_LONGTEXT, VLC_FALSE ); - add_bool( SOUT_CFG_PREFIX "hurry-up", VLC_TRUE, NULL, HURRYUP_TEXT, - HURRYUP_LONGTEXT, VLC_FALSE ); + FPS_LONGTEXT, false ); + add_bool( SOUT_CFG_PREFIX "hurry-up", true, NULL, HURRYUP_TEXT, + HURRYUP_LONGTEXT, false ); add_bool( SOUT_CFG_PREFIX "deinterlace", 0, NULL, DEINTERLACE_TEXT, - DEINTERLACE_LONGTEXT, VLC_FALSE ); + DEINTERLACE_LONGTEXT, false ); add_string( SOUT_CFG_PREFIX "deinterlace-module", "deinterlace", NULL, DEINTERLACE_MODULE_TEXT, DEINTERLACE_MODULE_LONGTEXT, - VLC_FALSE ); + false ); change_string_list( ppsz_deinterlace_type, 0, 0 ); add_integer( SOUT_CFG_PREFIX "width", 0, NULL, WIDTH_TEXT, - WIDTH_LONGTEXT, VLC_TRUE ); + WIDTH_LONGTEXT, true ); add_integer( SOUT_CFG_PREFIX "height", 0, NULL, HEIGHT_TEXT, - HEIGHT_LONGTEXT, VLC_TRUE ); + HEIGHT_LONGTEXT, true ); add_integer( SOUT_CFG_PREFIX "maxwidth", 0, NULL, MAXWIDTH_TEXT, - MAXWIDTH_LONGTEXT, VLC_TRUE ); + MAXWIDTH_LONGTEXT, true ); add_integer( SOUT_CFG_PREFIX "maxheight", 0, NULL, MAXHEIGHT_TEXT, - MAXHEIGHT_LONGTEXT, VLC_TRUE ); + MAXHEIGHT_LONGTEXT, true ); add_module_list( SOUT_CFG_PREFIX "vfilter", "video filter2", NULL, NULL, - VFILTER_TEXT, VFILTER_LONGTEXT, VLC_FALSE ); + VFILTER_TEXT, VFILTER_LONGTEXT, false ); add_integer( SOUT_CFG_PREFIX "croptop", 0, NULL, CROPTOP_TEXT, - CROPTOP_LONGTEXT, VLC_TRUE ); + CROPTOP_LONGTEXT, true ); add_integer( SOUT_CFG_PREFIX "cropleft", 0, NULL, CROPLEFT_TEXT, - CROPLEFT_LONGTEXT, VLC_TRUE ); + CROPLEFT_LONGTEXT, true ); add_integer( SOUT_CFG_PREFIX "cropbottom", 0, NULL, CROPBOTTOM_TEXT, - CROPBOTTOM_LONGTEXT, VLC_TRUE ); + CROPBOTTOM_LONGTEXT, true ); add_integer( SOUT_CFG_PREFIX "cropright", 0, NULL, CROPRIGHT_TEXT, - CROPRIGHT_LONGTEXT, VLC_TRUE ); + CROPRIGHT_LONGTEXT, true ); add_integer( SOUT_CFG_PREFIX "paddtop", 0, NULL, PADDTOP_TEXT, - PADDTOP_LONGTEXT, VLC_TRUE ); + PADDTOP_LONGTEXT, true ); add_integer( SOUT_CFG_PREFIX "paddleft", 0, NULL, PADDLEFT_TEXT, - PADDLEFT_LONGTEXT, VLC_TRUE ); + PADDLEFT_LONGTEXT, true ); add_integer( SOUT_CFG_PREFIX "paddbottom", 0, NULL, PADDBOTTOM_TEXT, - PADDBOTTOM_LONGTEXT, VLC_TRUE ); + PADDBOTTOM_LONGTEXT, true ); add_integer( SOUT_CFG_PREFIX "paddright", 0, NULL, PADDRIGHT_TEXT, - PADDRIGHT_LONGTEXT, VLC_TRUE ); + PADDRIGHT_LONGTEXT, true ); add_integer( SOUT_CFG_PREFIX "canvas-width", 0, NULL, CANVAS_WIDTH_TEXT, - CANVAS_WIDTH_LONGTEXT, VLC_TRUE ); + CANVAS_WIDTH_LONGTEXT, true ); add_integer( SOUT_CFG_PREFIX "canvas-height", 0, NULL, CANVAS_HEIGHT_TEXT, - CANVAS_HEIGHT_LONGTEXT, VLC_TRUE ); + CANVAS_HEIGHT_LONGTEXT, true ); add_string( SOUT_CFG_PREFIX "canvas-aspect", NULL, NULL, CANVAS_ASPECT_TEXT, - CANVAS_ASPECT_LONGTEXT, VLC_FALSE ); + CANVAS_ASPECT_LONGTEXT, false ); set_section( N_("Audio"), NULL ); add_string( SOUT_CFG_PREFIX "aenc", NULL, NULL, AENC_TEXT, - AENC_LONGTEXT, VLC_FALSE ); + AENC_LONGTEXT, false ); add_string( SOUT_CFG_PREFIX "acodec", NULL, NULL, ACODEC_TEXT, - ACODEC_LONGTEXT, VLC_FALSE ); + ACODEC_LONGTEXT, false ); add_integer( SOUT_CFG_PREFIX "ab", 0, NULL, AB_TEXT, - AB_LONGTEXT, VLC_FALSE ); + AB_LONGTEXT, false ); add_integer( SOUT_CFG_PREFIX "channels", 0, NULL, ACHANS_TEXT, - ACHANS_LONGTEXT, VLC_FALSE ); + ACHANS_LONGTEXT, false ); add_integer( SOUT_CFG_PREFIX "samplerate", 0, NULL, ARATE_TEXT, - ARATE_LONGTEXT, VLC_TRUE ); + ARATE_LONGTEXT, true ); add_bool( SOUT_CFG_PREFIX "audio-sync", 0, NULL, ASYNC_TEXT, - ASYNC_LONGTEXT, VLC_FALSE ); + ASYNC_LONGTEXT, false ); add_module_list( SOUT_CFG_PREFIX "afilter", "audio filter2", NULL, NULL, - AFILTER_TEXT, AFILTER_LONGTEXT, VLC_FALSE ); + AFILTER_TEXT, AFILTER_LONGTEXT, false ); set_section( N_("Overlays/Subtitles"), NULL ); add_string( SOUT_CFG_PREFIX "senc", NULL, NULL, SENC_TEXT, - SENC_LONGTEXT, VLC_FALSE ); + SENC_LONGTEXT, false ); add_string( SOUT_CFG_PREFIX "scodec", NULL, NULL, SCODEC_TEXT, - SCODEC_LONGTEXT, VLC_FALSE ); + SCODEC_LONGTEXT, false ); add_bool( SOUT_CFG_PREFIX "soverlay", 0, NULL, SCODEC_TEXT, - SCODEC_LONGTEXT, VLC_FALSE ); + SCODEC_LONGTEXT, false ); add_module_list( SOUT_CFG_PREFIX "sfilter", "video filter", NULL, NULL, - SFILTER_TEXT, SFILTER_LONGTEXT, VLC_FALSE ); + SFILTER_TEXT, SFILTER_LONGTEXT, false ); set_section( N_("On Screen Display"), NULL ); add_bool( SOUT_CFG_PREFIX "osd", 0, NULL, OSD_TEXT, - OSD_LONGTEXT, VLC_FALSE ); + OSD_LONGTEXT, false ); set_section( N_("Miscellaneous"), NULL ); add_integer( SOUT_CFG_PREFIX "threads", 0, NULL, THREADS_TEXT, - THREADS_LONGTEXT, VLC_TRUE ); + THREADS_LONGTEXT, true ); add_bool( SOUT_CFG_PREFIX "high-priority", 0, NULL, HP_TEXT, HP_LONGTEXT, - VLC_TRUE ); + true ); vlc_module_end(); @@ -393,12 +393,12 @@ struct sout_stream_sys_t double f_fps; unsigned int i_width, i_maxwidth; unsigned int i_height, i_maxheight; - vlc_bool_t b_deinterlace; + bool b_deinterlace; char *psz_deinterlace; config_chain_t *p_deinterlace_cfg; int i_threads; - vlc_bool_t b_high_priority; - vlc_bool_t b_hurry_up; + bool b_high_priority; + bool b_hurry_up; char *psz_vfilters[TRANSCODE_FILTERS]; config_chain_t *p_vfilters_cfg[TRANSCODE_FILTERS]; int i_vfilters; @@ -431,7 +431,7 @@ struct sout_stream_sys_t /* SPU */ vlc_fourcc_t i_scodec; /* codec spu (0 if not transcode) */ char *psz_senc; - vlc_bool_t b_soverlay; + bool b_soverlay; config_chain_t *p_spu_cfg; spu_t *p_spu; @@ -439,10 +439,10 @@ struct sout_stream_sys_t vlc_fourcc_t i_osdcodec; /* codec osd menu (0 if not transcode) */ char *psz_osdenc; config_chain_t *p_osd_cfg; - vlc_bool_t b_osd; /* VLC_TRUE when osd es is registered */ + bool b_osd; /* true when osd es is registered */ /* Sync */ - vlc_bool_t b_master_sync; + bool b_master_sync; mtime_t i_master_drift; }; @@ -472,7 +472,7 @@ static int Open( vlc_object_t *p_this ) if( !p_sys->p_out ) { msg_Err( p_stream, "cannot create chain" ); - vlc_object_destroy( p_sys ); + vlc_object_release( p_sys ); return VLC_EGENERIC; } @@ -490,9 +490,9 @@ static int Open( vlc_object_t *p_this ) char *psz_next; psz_next = config_ChainCreate( &p_sys->psz_aenc, &p_sys->p_audio_cfg, val.psz_string ); - if( psz_next ) free( psz_next ); + free( psz_next ); } - if( val.psz_string ) free( val.psz_string ); + free( val.psz_string ); var_Get( p_stream, SOUT_CFG_PREFIX "acodec", &val ); p_sys->i_acodec = 0; @@ -502,7 +502,7 @@ static int Open( vlc_object_t *p_this ) memcpy( fcc, val.psz_string, __MIN( strlen( val.psz_string ), 4 ) ); p_sys->i_acodec = VLC_FOURCC( fcc[0], fcc[1], fcc[2], fcc[3] ); } - if( val.psz_string ) free( val.psz_string ); + free( val.psz_string ); var_Get( p_stream, SOUT_CFG_PREFIX "ab", &val ); p_sys->i_abitrate = val.i_int; @@ -545,7 +545,7 @@ static int Open( vlc_object_t *p_this ) if( (psz_parser != NULL) && (*psz_parser != '\0') ) psz_parser++; } } - if( val.psz_string ) free( val.psz_string ); + free( val.psz_string ); if( p_sys->i_afilters < TRANSCODE_FILTERS-1 ) { p_sys->psz_afilters[p_sys->i_afilters] = NULL; @@ -561,9 +561,9 @@ static int Open( vlc_object_t *p_this ) char *psz_next; psz_next = config_ChainCreate( &p_sys->psz_venc, &p_sys->p_video_cfg, val.psz_string ); - if( psz_next ) free( psz_next ); + free( psz_next ); } - if( val.psz_string ) free( val.psz_string ); + free( val.psz_string ); var_Get( p_stream, SOUT_CFG_PREFIX "vcodec", &val ); p_sys->i_vcodec = 0; @@ -573,7 +573,7 @@ static int Open( vlc_object_t *p_this ) memcpy( fcc, val.psz_string, __MIN( strlen( val.psz_string ), 4 ) ); p_sys->i_vcodec = VLC_FOURCC( fcc[0], fcc[1], fcc[2], fcc[3] ); } - if( val.psz_string ) free( val.psz_string ); + free( val.psz_string ); var_Get( p_stream, SOUT_CFG_PREFIX "vb", &val ); p_sys->i_vbitrate = val.i_int; @@ -617,7 +617,7 @@ static int Open( vlc_object_t *p_this ) if( psz_parser != NULL && *psz_parser != '\0' ) psz_parser++; } } - if( val.psz_string ) free( val.psz_string ); + free( val.psz_string ); if( p_sys->i_vfilters < TRANSCODE_FILTERS-1 ) { p_sys->psz_vfilters[p_sys->i_vfilters] = NULL; @@ -636,9 +636,9 @@ static int Open( vlc_object_t *p_this ) psz_next = config_ChainCreate( &p_sys->psz_deinterlace, &p_sys->p_deinterlace_cfg, val.psz_string ); - if( psz_next ) free( psz_next ); + free( psz_next ); } - if( val.psz_string ) free( val.psz_string ); + free( val.psz_string ); var_Get( p_stream, SOUT_CFG_PREFIX "croptop", &val ); p_sys->i_crop_top = val.i_int; @@ -677,7 +677,7 @@ static int Open( vlc_object_t *p_this ) else msg_Warn( p_stream, "bad aspect ratio %s", val.psz_string ); } - if( val.psz_string ) free( val.psz_string ); + free( val.psz_string ); var_Get( p_stream, SOUT_CFG_PREFIX "threads", &val ); p_sys->i_threads = val.i_int; @@ -703,9 +703,9 @@ static int Open( vlc_object_t *p_this ) char *psz_next; psz_next = config_ChainCreate( &p_sys->psz_senc, &p_sys->p_spu_cfg, val.psz_string ); - if( psz_next ) free( psz_next ); + free( psz_next ); } - if( val.psz_string ) free( val.psz_string ); + free( val.psz_string ); var_Get( p_stream, SOUT_CFG_PREFIX "scodec", &val ); if( val.psz_string && *val.psz_string ) @@ -714,7 +714,7 @@ static int Open( vlc_object_t *p_this ) memcpy( fcc, val.psz_string, __MIN( strlen( val.psz_string ), 4 ) ); p_sys->i_scodec = VLC_FOURCC( fcc[0], fcc[1], fcc[2], fcc[3] ); } - if( val.psz_string ) free( val.psz_string ); + free( val.psz_string ); if( p_sys->i_scodec ) { @@ -732,13 +732,13 @@ static int Open( vlc_object_t *p_this ) var_Set( p_sys->p_spu, "sub-filter", val ); spu_Init( p_sys->p_spu ); } - if( val.psz_string ) free( val.psz_string ); + free( val.psz_string ); /* OSD menu transcoding parameters */ p_sys->psz_osdenc = NULL; p_sys->p_osd_cfg = NULL; p_sys->i_osdcodec = 0; - p_sys->b_osd = VLC_FALSE; + p_sys->b_osd = false; var_Get( p_stream, SOUT_CFG_PREFIX "osd", &val ); if( val.b_bool ) @@ -748,7 +748,7 @@ static int Open( vlc_object_t *p_this ) psz_next = config_ChainCreate( &p_sys->psz_osdenc, &p_sys->p_osd_cfg, strdup( "dvbsub") ); - if( psz_next ) free( psz_next ); + free( psz_next ); p_sys->i_osdcodec = VLC_FOURCC('Y','U','V','P' ); @@ -761,20 +761,20 @@ static int Open( vlc_object_t *p_this ) var_Create( p_sys->p_spu, "sub-filter", VLC_VAR_STRING ); var_Set( p_sys->p_spu, "sub-filter", osd_val ); spu_Init( p_sys->p_spu ); - if( osd_val.psz_string ) free( osd_val.psz_string ); + free( osd_val.psz_string ); } else { osd_val.psz_string = strdup("osdmenu"); var_Set( p_sys->p_spu, "sub-filter", osd_val ); - if( osd_val.psz_string ) free( osd_val.psz_string ); + free( osd_val.psz_string ); } } /* Audio settings */ var_Get( p_stream, SOUT_CFG_PREFIX "audio-sync", &val ); p_sys->b_master_sync = val.b_bool; - if( p_sys->f_fps > 0 ) p_sys->b_master_sync = VLC_TRUE; + if( p_sys->f_fps > 0 ) p_sys->b_master_sync = true; p_stream->pf_add = Add; p_stream->pf_del = Del; @@ -797,76 +797,64 @@ static void Close( vlc_object_t * p_this ) while( p_sys->i_afilters ) { p_sys->i_afilters--; - if( p_sys->psz_afilters[p_sys->i_afilters] ) - free( p_sys->psz_afilters[p_sys->i_afilters] ); - if( p_sys->p_afilters_cfg[p_sys->i_afilters] ) - free( p_sys->p_afilters_cfg[p_sys->i_afilters] ); + free( p_sys->psz_afilters[p_sys->i_afilters] ); + free( p_sys->p_afilters_cfg[p_sys->i_afilters] ); } while( p_sys->p_audio_cfg != NULL ) { config_chain_t *p_next = p_sys->p_audio_cfg->p_next; - if( p_sys->p_audio_cfg->psz_name ) - free( p_sys->p_audio_cfg->psz_name ); - if( p_sys->p_audio_cfg->psz_value ) - free( p_sys->p_audio_cfg->psz_value ); + free( p_sys->p_audio_cfg->psz_name ); + free( p_sys->p_audio_cfg->psz_value ); free( p_sys->p_audio_cfg ); p_sys->p_audio_cfg = p_next; } - if( p_sys->psz_aenc ) free( p_sys->psz_aenc ); + free( p_sys->psz_aenc ); while( p_sys->i_vfilters ) { p_sys->i_vfilters--; - if( p_sys->psz_vfilters[p_sys->i_vfilters] ) - free( p_sys->psz_vfilters[p_sys->i_vfilters] ); - if( p_sys->p_vfilters_cfg[p_sys->i_vfilters] ) - free( p_sys->p_vfilters_cfg[p_sys->i_vfilters] ); + free( p_sys->psz_vfilters[p_sys->i_vfilters] ); + free( p_sys->p_vfilters_cfg[p_sys->i_vfilters] ); } while( p_sys->p_video_cfg != NULL ) { config_chain_t *p_next = p_sys->p_video_cfg->p_next; - if( p_sys->p_video_cfg->psz_name ) - free( p_sys->p_video_cfg->psz_name ); - if( p_sys->p_video_cfg->psz_value ) - free( p_sys->p_video_cfg->psz_value ); + free( p_sys->p_video_cfg->psz_name ); + free( p_sys->p_video_cfg->psz_value ); free( p_sys->p_video_cfg ); p_sys->p_video_cfg = p_next; } - if( p_sys->psz_venc ) free( p_sys->psz_venc ); + free( p_sys->psz_venc ); while( p_sys->p_deinterlace_cfg != NULL ) { config_chain_t *p_next = p_sys->p_deinterlace_cfg->p_next; - if( p_sys->p_deinterlace_cfg->psz_name ) - free( p_sys->p_deinterlace_cfg->psz_name ); - if( p_sys->p_deinterlace_cfg->psz_value ) - free( p_sys->p_deinterlace_cfg->psz_value ); + free( p_sys->p_deinterlace_cfg->psz_name ); + free( p_sys->p_deinterlace_cfg->psz_value ); free( p_sys->p_deinterlace_cfg ); p_sys->p_deinterlace_cfg = p_next; } - if( p_sys->psz_deinterlace ) free( p_sys->psz_deinterlace ); + free( p_sys->psz_deinterlace ); while( p_sys->p_spu_cfg != NULL ) { config_chain_t *p_next = p_sys->p_spu_cfg->p_next; - if( p_sys->p_spu_cfg->psz_name ) - free( p_sys->p_spu_cfg->psz_name ); - if( p_sys->p_spu_cfg->psz_value ) - free( p_sys->p_spu_cfg->psz_value ); + free( p_sys->p_spu_cfg->psz_name ); + free( p_sys->p_spu_cfg->psz_value ); free( p_sys->p_spu_cfg ); p_sys->p_spu_cfg = p_next; } - if( p_sys->psz_senc ) free( p_sys->psz_senc ); + free( p_sys->psz_senc ); if( p_sys->p_spu ) spu_Destroy( p_sys->p_spu ); @@ -874,17 +862,15 @@ static void Close( vlc_object_t * p_this ) { config_chain_t *p_next = p_sys->p_osd_cfg->p_next; - if( p_sys->p_osd_cfg->psz_name ) - free( p_sys->p_osd_cfg->psz_name ); - if( p_sys->p_osd_cfg->psz_value ) - free( p_sys->p_osd_cfg->psz_value ); + free( p_sys->p_osd_cfg->psz_name ); + free( p_sys->p_osd_cfg->psz_value ); free( p_sys->p_osd_cfg ); p_sys->p_osd_cfg = p_next; } - if( p_sys->psz_osdenc ) free( p_sys->psz_osdenc ); + free( p_sys->psz_osdenc ); - vlc_object_destroy( p_sys ); + vlc_object_release( p_sys ); } struct sout_stream_id_t @@ -938,7 +924,7 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt ) vlc_object_attach( id->p_decoder, p_stream ); id->p_decoder->p_module = NULL; id->p_decoder->fmt_in = *p_fmt; - id->p_decoder->b_pace_control = VLC_TRUE; + id->p_decoder->b_pace_control = true; /* Create encoder object */ id->p_encoder = vlc_object_create( p_stream, VLC_OBJECT_ENCODER ); @@ -999,7 +985,7 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt ) /* Open output stream */ id->id = p_sys->p_out->pf_add( p_sys->p_out, &id->p_encoder->fmt_out ); - id->b_transcode = VLC_TRUE; + id->b_transcode = true; if( !id->id ) { @@ -1031,7 +1017,7 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt ) /* Stream will be added later on because we don't know * all the characteristics of the decoded stream yet */ - id->b_transcode = VLC_TRUE; + id->b_transcode = true; if( p_sys->f_fps > 0 ) { @@ -1059,7 +1045,7 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt ) /* open output stream */ id->id = p_sys->p_out->pf_add( p_sys->p_out, &id->p_encoder->fmt_out ); - id->b_transcode = VLC_TRUE; + id->b_transcode = true; if( !id->id ) { @@ -1072,7 +1058,7 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt ) msg_Dbg( p_stream, "subtitles (fcc=`%4.4s') overlaying", (char*)&p_fmt->i_codec ); - id->b_transcode = VLC_TRUE; + id->b_transcode = true; /* Build decoder -> filter -> overlaying chain */ if( transcode_spu_new( p_stream, id ) ) @@ -1087,7 +1073,7 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt ) "to fcc=`%4.4s'", (char*)&p_fmt->i_codec, (char*)&p_sys->i_scodec ); - id->b_transcode = VLC_TRUE; + id->b_transcode = true; /* Create a fake OSD menu elementary stream */ if( transcode_osd_new( p_stream, id ) ) @@ -1095,14 +1081,14 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt ) msg_Err( p_stream, "cannot create osd chain" ); goto error; } - p_sys->b_osd = VLC_TRUE; + p_sys->b_osd = true; } else { msg_Dbg( p_stream, "not transcoding a stream (fcc=`%4.4s')", (char*)&p_fmt->i_codec ); id->id = p_sys->p_out->pf_add( p_sys->p_out, p_fmt ); - id->b_transcode = VLC_FALSE; + id->b_transcode = false; if( !id->id ) goto error; } @@ -1113,7 +1099,7 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt ) if( id->p_decoder ) { vlc_object_detach( id->p_decoder ); - vlc_object_destroy( id->p_decoder ); + vlc_object_release( id->p_decoder ); id->p_decoder = NULL; } @@ -1121,7 +1107,7 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt ) { vlc_object_detach( id->p_encoder ); es_format_Clean( &id->p_encoder->fmt_out ); - vlc_object_destroy( id->p_encoder ); + vlc_object_release( id->p_encoder ); id->p_encoder = NULL; } @@ -1157,7 +1143,7 @@ static int Del( sout_stream_t *p_stream, sout_stream_id_t *id ) if( id->p_decoder ) { vlc_object_detach( id->p_decoder ); - vlc_object_destroy( id->p_decoder ); + vlc_object_release( id->p_decoder ); id->p_decoder = NULL; } @@ -1165,7 +1151,7 @@ static int Del( sout_stream_t *p_stream, sout_stream_id_t *id ) { vlc_object_detach( id->p_encoder ); es_format_Clean( &id->p_encoder->fmt_out ); - vlc_object_destroy( id->p_encoder ); + vlc_object_release( id->p_encoder ); id->p_encoder = NULL; } free( id ); @@ -1291,7 +1277,7 @@ static filter_t *transcode_audio_filter_new( sout_stream_t *p_stream, p_filter->p_cfg = p_sys->p_afilters_cfg[id->i_ufilter]; p_filter->p_module = module_Need( p_filter, "audio filter2", psz_name, - VLC_TRUE ); + true ); if( p_filter->p_module ) { p_filter->fmt_out.audio.i_bitspersample = @@ -1301,7 +1287,7 @@ static filter_t *transcode_audio_filter_new( sout_stream_t *p_stream, else { vlc_object_detach( p_filter ); - vlc_object_destroy( p_filter ); + vlc_object_release( p_filter ); p_filter = 0; } @@ -1369,7 +1355,7 @@ static int transcode_audio_new( sout_stream_t *p_stream, id->p_encoder->p_cfg = p_stream->p_sys->p_audio_cfg; id->p_encoder->p_module = - module_Need( id->p_encoder, "encoder", p_sys->psz_aenc, VLC_TRUE ); + module_Need( id->p_encoder, "encoder", p_sys->psz_aenc, true ); if( !id->p_encoder->p_module ) { msg_Err( p_stream, "cannot find encoder (%s)", p_sys->psz_aenc ); @@ -1463,7 +1449,7 @@ static int transcode_audio_new( sout_stream_t *p_stream, /* reload encoder */ id->p_encoder->p_cfg = p_stream->p_sys->p_audio_cfg; id->p_encoder->p_module = - module_Need( id->p_encoder, "encoder", p_sys->psz_aenc, VLC_TRUE ); + module_Need( id->p_encoder, "encoder", p_sys->psz_aenc, true ); if( !id->p_encoder->p_module ) { msg_Err( p_stream, "cannot find encoder (%s)", p_sys->psz_aenc ); @@ -1525,15 +1511,18 @@ static void transcode_audio_close( sout_stream_id_t *id ) vlc_object_detach( id->pp_filter[i] ); if( id->pp_filter[i]->p_module ) module_Unneed( id->pp_filter[i], id->pp_filter[i]->p_module ); - vlc_object_destroy( id->pp_filter[i] ); + vlc_object_release( id->pp_filter[i] ); } + id->i_filter = 0; + for( i = 0; i < id->i_ufilter; i++ ) { vlc_object_detach( id->pp_ufilter[i] ); if( id->pp_ufilter[i]->p_module ) module_Unneed( id->pp_ufilter[i], id->pp_ufilter[i]->p_module ); - vlc_object_destroy( id->pp_ufilter[i] ); + vlc_object_release( id->pp_ufilter[i] ); } + id->i_ufilter = 0; } static int transcode_audio_process( sout_stream_t *p_stream, @@ -1608,7 +1597,7 @@ static int transcode_audio_process( sout_stream_t *p_stream, static void audio_release_buffer( aout_buffer_t *p_buffer ) { if( p_buffer && p_buffer->p_sys ) block_Release( p_buffer->p_sys ); - if( p_buffer ) free( p_buffer ); + free( p_buffer ); } static aout_buffer_t *audio_new_buffer( decoder_t *p_dec, int i_samples ) @@ -1635,7 +1624,7 @@ static aout_buffer_t *audio_new_buffer( decoder_t *p_dec, int i_samples ) p_buffer = malloc( sizeof(aout_buffer_t) ); if( !p_buffer ) return NULL; - p_buffer->b_discontinuity = VLC_FALSE; + p_buffer->b_discontinuity = false; p_buffer->pf_release = audio_release_buffer; p_buffer->p_sys = p_block = block_New( p_dec, i_size ); @@ -1657,6 +1646,78 @@ static void audio_del_buffer( decoder_t *p_dec, aout_buffer_t *p_buffer ) /* * video */ + +static filter_t *transcode_video_filter_new( sout_stream_t *p_stream, + es_format_t *p_fmt_in, + es_format_t *p_fmt_out, + config_chain_t *p_cfg, + const char *psz_name ) +{ + sout_stream_sys_t *p_sys = p_stream->p_sys; + filter_t *p_filter; + int i; + + if( !p_stream || !p_fmt_in || !p_fmt_out ) return NULL; + + p_filter = vlc_object_create( p_stream, VLC_OBJECT_FILTER ); + vlc_object_attach( p_filter, p_stream ); + + p_filter->pf_vout_buffer_new = video_new_buffer_filter; + p_filter->pf_vout_buffer_del = video_del_buffer_filter; + + es_format_Copy( &p_filter->fmt_in, p_fmt_in ); + es_format_Copy( &p_filter->fmt_out, p_fmt_out ); + p_filter->p_cfg = p_cfg; + + p_filter->p_module = module_Need( p_filter, "video filter2", + psz_name, true ); + if( !p_filter->p_module ) + { + msg_Dbg( p_stream, "no video filter found" ); + vlc_object_detach( p_filter ); + vlc_object_release( p_filter ); + return NULL; + } + + p_filter->p_owner = malloc( sizeof(filter_owner_sys_t) ); + if( !p_filter->p_owner ) + { + module_Unneed( p_filter,p_filter->p_module ); + vlc_object_detach( p_filter ); + vlc_object_release( p_filter ); + return NULL; + } + + for( i = 0; i < PICTURE_RING_SIZE; i++ ) + p_filter->p_owner->pp_pics[i] = 0; + p_filter->p_owner->p_sys = p_sys; + + return p_filter; +} + +static void transcode_video_filter_close( sout_stream_t *p_stream, + filter_t *p_filter ) +{ + int j; + + if( !p_stream || !p_filter ) return; + + vlc_object_detach( p_filter ); + if( p_filter->p_module ) + module_Unneed( p_filter, p_filter->p_module ); + + /* Clean-up pictures ring buffer */ + for( j = 0; j < PICTURE_RING_SIZE; j++ ) + { + if( p_filter->p_owner->pp_pics[j] ) + video_del_buffer( VLC_OBJECT(p_filter), + p_filter->p_owner->pp_pics[j] ); + } + free( p_filter->p_owner ); + vlc_object_release( p_filter ); + p_filter = NULL; +} + static int transcode_video_new( sout_stream_t *p_stream, sout_stream_id_t *id ) { sout_stream_sys_t *p_sys = p_stream->p_sys; @@ -1721,7 +1782,7 @@ static int transcode_video_new( sout_stream_t *p_stream, sout_stream_id_t *id ) id->p_encoder->p_cfg = p_sys->p_video_cfg; id->p_encoder->p_module = - module_Need( id->p_encoder, "encoder", p_sys->psz_venc, VLC_TRUE ); + module_Need( id->p_encoder, "encoder", p_sys->psz_venc, true ); if( !id->p_encoder->p_module ) { msg_Err( p_stream, "cannot find encoder (%s)", p_sys->psz_venc ); @@ -1754,7 +1815,7 @@ static int transcode_video_new( sout_stream_t *p_stream, sout_stream_id_t *id ) p_sys->p_buffers = NULL; p_sys->b_die = p_sys->b_error = 0; if( vlc_thread_create( p_sys, "encoder", EncoderThread, i_priority, - VLC_FALSE ) ) + false ) ) { msg_Err( p_stream, "cannot spawn encoder thread" ); module_Unneed( id->p_decoder, id->p_decoder->p_module ); @@ -2032,7 +2093,7 @@ static int transcode_video_encoder_open( sout_stream_t *p_stream, msg_Dbg( p_stream, "encoder aspect is %i:%i", id->p_encoder->fmt_out.video.i_aspect, VOUT_ASPECT_FACTOR ); id->p_encoder->p_module = - module_Need( id->p_encoder, "encoder", p_sys->psz_venc, VLC_TRUE ); + module_Need( id->p_encoder, "encoder", p_sys->psz_venc, true ); if( !id->p_encoder->p_module ) { msg_Err( p_stream, "cannot find encoder (%s)", p_sys->psz_venc ); @@ -2062,7 +2123,7 @@ static int transcode_video_encoder_open( sout_stream_t *p_stream, static void transcode_video_close( sout_stream_t *p_stream, sout_stream_id_t *id ) { - int i, j; + int i; if( p_stream->p_sys->i_threads >= 1 ) { @@ -2098,39 +2159,17 @@ static void transcode_video_close( sout_stream_t *p_stream, /* Close filters */ for( i = 0; i < id->i_filter; i++ ) { - vlc_object_detach( id->pp_filter[i] ); - if( id->pp_filter[i]->p_module ) - module_Unneed( id->pp_filter[i], id->pp_filter[i]->p_module ); - - /* Clean-up pictures ring buffer */ - for( j = 0; j < PICTURE_RING_SIZE; j++ ) - { - if( id->pp_filter[i]->p_owner->pp_pics[j] ) - video_del_buffer( VLC_OBJECT(id->pp_filter[i]), - id->pp_filter[i]->p_owner->pp_pics[j] ); - } - free( id->pp_filter[i]->p_owner ); - vlc_object_destroy( id->pp_filter[i] ); + transcode_video_filter_close( p_stream, id->pp_filter[i] ); id->pp_filter[i] = NULL; } + id->i_filter = 0; for( i = 0; i < id->i_ufilter; i++ ) { - vlc_object_detach( id->pp_ufilter[i] ); - if( id->pp_ufilter[i]->p_module ) - module_Unneed( id->pp_ufilter[i], id->pp_ufilter[i]->p_module ); - - /* Clean-up pictures ring buffer */ - for( j = 0; j < PICTURE_RING_SIZE; j++ ) - { - if( id->pp_ufilter[i]->p_owner->pp_pics[j] ) - video_del_buffer( VLC_OBJECT(id->pp_ufilter[i]), - id->pp_ufilter[i]->p_owner->pp_pics[j] ); - } - free( id->pp_ufilter[i]->p_owner ); - vlc_object_destroy( id->pp_ufilter[i] ); + transcode_video_filter_close( p_stream, id->pp_ufilter[i] ); id->pp_ufilter[i] = NULL; } + id->i_ufilter = 0; } static int transcode_video_process( sout_stream_t *p_stream, @@ -2153,7 +2192,7 @@ static int transcode_video_process( sout_stream_t *p_stream, mtime_t current_date = mdate(); if( current_date + 50000 > p_pic->date ) { - msg_Dbg( p_stream, "late picture skipped ("I64Fd")", + msg_Dbg( p_stream, "late picture skipped (%"PRId64")", current_date + 50000 - p_pic->date ); p_pic->pf_release( p_pic ); continue; @@ -2205,7 +2244,7 @@ static int transcode_video_process( sout_stream_t *p_stream, { p_pic->pf_release( p_pic ); transcode_video_close( p_stream, id ); - id->b_transcode = VLC_FALSE; + id->b_transcode = false; return VLC_EGENERIC; } @@ -2213,39 +2252,79 @@ static int transcode_video_process( sout_stream_t *p_stream, if( p_stream->p_sys->b_deinterlace ) { id->pp_filter[id->i_filter] = - vlc_object_create( p_stream, VLC_OBJECT_FILTER ); - vlc_object_attach( id->pp_filter[id->i_filter], p_stream ); - - id->pp_filter[id->i_filter]->pf_vout_buffer_new = - video_new_buffer_filter; - id->pp_filter[id->i_filter]->pf_vout_buffer_del = - video_del_buffer_filter; - - id->pp_filter[id->i_filter]->fmt_in = id->p_decoder->fmt_out; - id->pp_filter[id->i_filter]->fmt_out = id->p_decoder->fmt_out; - id->pp_filter[id->i_filter]->p_cfg = p_sys->p_deinterlace_cfg; - id->pp_filter[id->i_filter]->p_module = - module_Need( id->pp_filter[id->i_filter], - "video filter2", p_sys->psz_deinterlace, - VLC_TRUE ); - if( id->pp_filter[id->i_filter]->p_module ) - { - id->pp_filter[id->i_filter]->p_owner = - malloc( sizeof(filter_owner_sys_t) ); - for( i = 0; i < PICTURE_RING_SIZE; i++ ) - id->pp_filter[id->i_filter]->p_owner->pp_pics[i] = 0; - id->pp_filter[id->i_filter]->p_owner->p_sys = p_sys; + transcode_video_filter_new( p_stream, + &id->p_decoder->fmt_out, &id->p_decoder->fmt_out, + p_sys->p_deinterlace_cfg, + p_sys->psz_deinterlace ); + if( id->pp_filter[id->i_filter] ) id->i_filter++; - } - else + } + +#if (defined(HAVE_FFMPEG_SWSCALE_H) || defined(HAVE_LIBSWSCALE_TREE)) || defined(HAVE_LIBSWSCALE_SWSCALE_H) + if( ( id->p_decoder->fmt_out.video.i_chroma != + id->p_encoder->fmt_in.video.i_chroma ) || + ( id->p_decoder->fmt_out.video.i_width != + id->p_encoder->fmt_out.video.i_width ) || + ( id->p_decoder->fmt_out.video.i_height != + id->p_encoder->fmt_out.video.i_height ) ) + { + id->pp_filter[id->i_filter] = + transcode_video_filter_new( p_stream, + &id->p_decoder->fmt_out, &id->p_encoder->fmt_in, + NULL, "scale" ); + if( !id->pp_filter[id->i_filter] ) { - msg_Dbg( p_stream, "no video filter found" ); - vlc_object_detach( id->pp_filter[id->i_filter] ); - vlc_object_destroy( id->pp_filter[id->i_filter] ); + p_pic->pf_release( p_pic ); + transcode_video_close( p_stream, id ); + id->b_transcode = false; + return VLC_EGENERIC; } + id->i_filter++; } +#if 0 /* FIXME: */ + /* we don't do chroma conversion or scaling in croppad */ +// es_format_t fmt_in, fmt_out; +// es_format_Copy( &fmt_out, &id->p_encoder->fmt_in ); +// es_format_Copy( &fmt_in, &id->p_encoder->fmt_in ); + + if( ( id->p_decoder->fmt_out.video.i_chroma == + id->p_encoder->fmt_in.video.i_chroma ) && + + ( ( (int)id->p_decoder->fmt_out.video.i_width != + p_sys->i_crop_width ) || + ( p_sys->i_crop_width != p_sys->i_nopadd_width ) || + ( p_sys->i_nopadd_width != + (int)id->p_encoder->fmt_out.video.i_width ) || + + ( (int)id->p_decoder->fmt_out.video.i_height != + p_sys->i_crop_height ) || + ( p_sys->i_crop_height != p_sys->i_nopadd_height ) || + ( p_sys->i_nopadd_height != + (int)id->p_encoder->fmt_out.video.i_height ) ) ) + { + id->pp_filter[id->i_filter] = + transcode_video_filter_new( p_stream, + &id->p_decoder->fmt_out, &id->p_encoder->fmt_in, + NULL, "croppadd" ); + if( id->pp_filter[id->i_filter] ) + { + /* Set crop and padding information */ + id->pp_filter[id->i_filter]->fmt_in.video.i_x_offset = p_sys->i_src_x_offset; + id->pp_filter[id->i_filter]->fmt_in.video.i_y_offset = p_sys->i_src_y_offset; + id->pp_filter[id->i_filter]->fmt_in.video.i_visible_width = p_sys->i_crop_width; + id->pp_filter[id->i_filter]->fmt_in.video.i_visible_height = p_sys->i_crop_height; + + id->pp_filter[id->i_filter]->fmt_out.video.i_x_offset = p_sys->i_dst_x_offset; + id->pp_filter[id->i_filter]->fmt_out.video.i_y_offset = p_sys->i_dst_y_offset; + id->pp_filter[id->i_filter]->fmt_out.video.i_visible_width = p_sys->i_nopadd_width; + id->pp_filter[id->i_filter]->fmt_out.video.i_visible_height = p_sys->i_nopadd_height; + id->i_filter++; + } + } +#endif +#else /* Check if we need a filter for chroma conversion or resizing */ if( id->p_decoder->fmt_out.video.i_chroma != id->p_encoder->fmt_in.video.i_chroma || @@ -2259,18 +2338,18 @@ static int transcode_video_process( sout_stream_t *p_stream, p_sys->i_nopadd_height != (int)id->p_encoder->fmt_out.video.i_height) { id->pp_filter[id->i_filter] = - vlc_object_create( p_stream, VLC_OBJECT_FILTER ); - vlc_object_attach( id->pp_filter[id->i_filter], p_stream ); - - id->pp_filter[id->i_filter]->pf_vout_buffer_new = - video_new_buffer_filter; - id->pp_filter[id->i_filter]->pf_vout_buffer_del = - video_del_buffer_filter; - - id->pp_filter[id->i_filter]->fmt_in = id->p_decoder->fmt_out; - id->pp_filter[id->i_filter]->fmt_out = id->p_encoder->fmt_in; - id->pp_filter[id->i_filter]->p_cfg = NULL; + transcode_video_filter_new( p_stream, + &id->p_decoder->fmt_out, &id->p_encoder->fmt_in, + NULL, "crop padd" ); + if( !id->pp_filter[id->i_filter] ) + { + p_pic->pf_release( p_pic ); + transcode_video_close( p_stream, id ); + id->b_transcode = false; + return VLC_EGENERIC; + } + /* Set crop and padding information */ id->pp_filter[id->i_filter]->fmt_in.video.i_x_offset = p_sys->i_src_x_offset; id->pp_filter[id->i_filter]->fmt_in.video.i_y_offset = p_sys->i_src_y_offset; id->pp_filter[id->i_filter]->fmt_in.video.i_visible_width = p_sys->i_crop_width; @@ -2281,69 +2360,19 @@ static int transcode_video_process( sout_stream_t *p_stream, id->pp_filter[id->i_filter]->fmt_out.video.i_visible_width = p_sys->i_nopadd_width; id->pp_filter[id->i_filter]->fmt_out.video.i_visible_height = p_sys->i_nopadd_height; - id->pp_filter[id->i_filter]->p_module = - module_Need( id->pp_filter[id->i_filter], -#if ( (defined(HAVE_FFMPEG_SWSCALE_H) || defined(HAVE_LIBSWSCALE_TREE)) ) - "video filter2", "scale", VLC_TRUE ); -#else - "crop padd", 0, 0 ); -#endif - if( id->pp_filter[id->i_filter]->p_module ) - { - id->pp_filter[id->i_filter]->p_owner = - malloc( sizeof(filter_owner_sys_t) ); - for( i = 0; i < PICTURE_RING_SIZE; i++ ) - id->pp_filter[id->i_filter]->p_owner->pp_pics[i] = 0; - id->pp_filter[id->i_filter]->p_owner->p_sys = p_sys; - - id->i_filter++; - } - else - { - msg_Dbg( p_stream, "no video filter found" ); - vlc_object_detach( id->pp_filter[id->i_filter] ); - vlc_object_destroy( id->pp_filter[id->i_filter] ); - - p_pic->pf_release( p_pic ); - transcode_video_close( p_stream, id ); - id->b_transcode = VLC_FALSE; - return VLC_EGENERIC; - } + id->i_filter++; } - +#endif for( i = 0; (i < p_sys->i_vfilters) && (id->i_ufilter < TRANSCODE_FILTERS); i++ ) { id->pp_ufilter[id->i_ufilter] = - vlc_object_create( p_stream, VLC_OBJECT_FILTER ); - vlc_object_attach( id->pp_ufilter[id->i_ufilter], p_stream ); - - id->pp_ufilter[id->i_ufilter]->pf_vout_buffer_new = - video_new_buffer_filter; - id->pp_ufilter[id->i_ufilter]->pf_vout_buffer_del = - video_del_buffer_filter; - - id->pp_ufilter[id->i_ufilter]->fmt_in = id->p_encoder->fmt_in; - id->pp_ufilter[id->i_ufilter]->fmt_out = id->p_encoder->fmt_in; - id->pp_ufilter[id->i_ufilter]->p_cfg = p_sys->p_vfilters_cfg[i]; - id->pp_ufilter[id->i_ufilter]->p_module = - module_Need( id->pp_ufilter[id->i_ufilter], - "video filter2", p_sys->psz_vfilters[i], VLC_TRUE ); - if( id->pp_ufilter[id->i_ufilter]->p_module ) - { - id->pp_ufilter[id->i_ufilter]->p_owner = - malloc( sizeof(filter_owner_sys_t) ); - for( i = 0; i < PICTURE_RING_SIZE; i++ ) - id->pp_ufilter[id->i_ufilter]->p_owner->pp_pics[i] = 0; - id->pp_ufilter[id->i_ufilter]->p_owner->p_sys = p_sys; + transcode_video_filter_new( p_stream, + &id->p_decoder->fmt_out, &id->p_encoder->fmt_in, + p_sys->p_vfilters_cfg[i], p_sys->psz_vfilters[i] ); + if( id->pp_ufilter[id->i_filter] ) id->i_ufilter++; - } else - { - msg_Dbg( p_stream, "no video filter found" ); - vlc_object_detach( id->pp_ufilter[id->i_ufilter] ); - vlc_object_destroy( id->pp_ufilter[id->i_ufilter] ); id->pp_ufilter[id->i_ufilter] = NULL; - } } } @@ -2361,7 +2390,7 @@ static int transcode_video_process( sout_stream_t *p_stream, if( p_sys->p_spu ) { p_subpic = spu_SortSubpictures( p_sys->p_spu, p_pic->date, - VLC_FALSE /* Fixme: check if stream is paused */ ); + false /* Fixme: check if stream is paused */ ); /* TODO: get another pic */ } @@ -2722,7 +2751,7 @@ static int transcode_spu_new( sout_stream_t *p_stream, sout_stream_id_t *id ) id->p_encoder->p_cfg = p_sys->p_spu_cfg; id->p_encoder->p_module = - module_Need( id->p_encoder, "encoder", p_sys->psz_senc, VLC_TRUE ); + module_Need( id->p_encoder, "encoder", p_sys->psz_senc, true ); if( !id->p_encoder->p_module ) { @@ -2831,7 +2860,7 @@ static int transcode_osd_new( sout_stream_t *p_stream, sout_stream_id_t *id ) id->p_encoder->p_cfg = p_sys->p_osd_cfg; id->p_encoder->p_module = - module_Need( id->p_encoder, "encoder", p_sys->psz_osdenc, VLC_TRUE ); + module_Need( id->p_encoder, "encoder", p_sys->psz_osdenc, true ); if( !id->p_encoder->p_module ) { @@ -2841,7 +2870,7 @@ static int transcode_osd_new( sout_stream_t *p_stream, sout_stream_id_t *id ) /* open output stream */ id->id = p_sys->p_out->pf_add( p_sys->p_out, &id->p_encoder->fmt_out ); - id->b_transcode = VLC_TRUE; + id->b_transcode = true; if( !id->id ) goto error; } @@ -2850,7 +2879,7 @@ static int transcode_osd_new( sout_stream_t *p_stream, sout_stream_id_t *id ) msg_Dbg( p_stream, "not transcoding a stream (fcc=`%4.4s')", (char*)&id->p_decoder->fmt_out.i_codec ); id->id = p_sys->p_out->pf_add( p_sys->p_out, &id->p_decoder->fmt_out ); - id->b_transcode = VLC_FALSE; + id->b_transcode = false; if( !id->id ) goto error; } @@ -2867,7 +2896,7 @@ static int transcode_osd_new( sout_stream_t *p_stream, sout_stream_id_t *id ) msg_Err( p_stream, "starting osd encoding thread failed" ); if( id->p_encoder->p_module ) module_Unneed( id->p_encoder, id->p_encoder->p_module ); - p_sys->b_osd = VLC_FALSE; + p_sys->b_osd = false; return VLC_EGENERIC; } @@ -2881,7 +2910,7 @@ static void transcode_osd_close( sout_stream_t *p_stream, sout_stream_id_t *id) if( id->p_encoder->p_module ) module_Unneed( id->p_encoder, id->p_encoder->p_module ); } - p_sys->b_osd = VLC_FALSE; + p_sys->b_osd = false; } static int transcode_osd_process( sout_stream_t *p_stream, @@ -2894,7 +2923,7 @@ static int transcode_osd_process( sout_stream_t *p_stream, /* Check if we have a subpicture to send */ if( p_sys->p_spu && in->i_dts > 0) { - p_subpic = spu_SortSubpictures( p_sys->p_spu, in->i_dts, VLC_FALSE ); + p_subpic = spu_SortSubpictures( p_sys->p_spu, in->i_dts, false ); } else {