X-Git-Url: http://git.videolan.org/?p=vlc%2Fvlc-2.0.git;a=blobdiff_plain;f=modules%2Fstream_out%2Fswitcher.c;h=18301329e33fe413b3d8f4da18966d6205581274;hp=372eef81c9ae3b9ee5b1405bdd5b7be8254fd3f0;hb=HEAD;hpb=caf2a08a0507ab9e9ae34038854f3f218e820581 diff --git a/modules/stream_out/switcher.c b/modules/stream_out/switcher.c index 372eef8..1830132 100644 --- a/modules/stream_out/switcher.c +++ b/modules/stream_out/switcher.c @@ -51,12 +51,6 @@ # include #endif -#ifdef HAVE_POSTPROC_POSTPROCESS_H -# include -#else -# include -#endif - #include "../codec/avcodec/avcodec.h" #define SOUT_CFG_PREFIX "sout-switcher-" @@ -292,7 +286,9 @@ static int Open( vlc_object_t *p_this ) p_stream->pf_send = Send; p_stream->p_sys = p_sys; +#if LIBAVCODEC_VERSION_MAJOR < 54 avcodec_init(); +#endif avcodec_register_all(); return VLC_SUCCESS; @@ -355,7 +351,11 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt ) return NULL; } +#if LIBAVCODEC_VERSION_MAJOR < 54 id->ff_enc_c = avcodec_alloc_context(); +#else + id->ff_enc_c = avcodec_alloc_context3( id->ff_enc ); +#endif /* Set CPU capabilities */ unsigned i_cpu = vlc_CPU(); @@ -388,7 +388,11 @@ static sout_stream_id_t *Add( sout_stream_t *p_stream, es_format_t *p_fmt ) id->ff_enc_c->bit_rate = p_fmt->i_bitrate; vlc_avcodec_lock(); +#if LIBAVCODEC_VERSION_MAJOR >= 54 + if( avcodec_open2( id->ff_enc_c, id->ff_enc, NULL /* options */ ) ) +#else if( avcodec_open( id->ff_enc_c, id->ff_enc ) ) +#endif { vlc_avcodec_unlock(); msg_Err( p_stream, "cannot open encoder" ); @@ -748,7 +752,11 @@ static mtime_t VideoCommand( sout_stream_t *p_stream, sout_stream_id_t *id ) return 0; } +#if LIBAVCODEC_VERSION_MAJOR < 54 id->ff_enc_c = avcodec_alloc_context(); +#else + id->ff_enc_c = avcodec_alloc_context3( id->ff_enc ); +#endif /* Set CPU capabilities */ unsigned i_cpu = vlc_CPU(); @@ -803,7 +811,11 @@ static mtime_t VideoCommand( sout_stream_t *p_stream, sout_stream_id_t *id ) id->ff_enc_c->pix_fmt = PIX_FMT_YUV420P; vlc_avcodec_lock(); +#if LIBAVCODEC_VERSION_MAJOR >= 54 + if( avcodec_open2( id->ff_enc_c, id->ff_enc, NULL /* options */ ) ) +#else if( avcodec_open( id->ff_enc_c, id->ff_enc ) ) +#endif { vlc_avcodec_unlock(); msg_Err( p_stream, "cannot open encoder" ); @@ -844,7 +856,7 @@ static block_t *VideoGetBuffer( sout_stream_t *p_stream, sout_stream_id_t *id, if ( id->i_nb_pred >= p_sys->i_gop ) { - id->p_frame->pict_type = FF_I_TYPE; + id->p_frame->pict_type = AV_PICTURE_TYPE_I; #if 0 id->p_frame->me_threshold = 0; id->p_frame->mb_threshold = 0; @@ -853,7 +865,7 @@ static block_t *VideoGetBuffer( sout_stream_t *p_stream, sout_stream_id_t *id, } else { - id->p_frame->pict_type = FF_P_TYPE; + id->p_frame->pict_type = AV_PICTURE_TYPE_P; #if 0 if ( id->p_frame->mb_type != NULL ) { @@ -873,7 +885,7 @@ static block_t *VideoGetBuffer( sout_stream_t *p_stream, sout_stream_id_t *id, #if 0 if ( id->p_frame->mb_type == NULL - && id->ff_enc_c->coded_frame->pict_type != FF_I_TYPE ) + && id->ff_enc_c->coded_frame->pict_type != AV_PICTURE_TYPE_I ) { int mb_width = (id->ff_enc_c->width + 15) / 16; int mb_height = (id->ff_enc_c->height + 15) / 16; @@ -926,13 +938,13 @@ static block_t *VideoGetBuffer( sout_stream_t *p_stream, sout_stream_id_t *id, switch ( id->ff_enc_c->coded_frame->pict_type ) { - case FF_I_TYPE: + case AV_PICTURE_TYPE_I: p_out->i_flags |= BLOCK_FLAG_TYPE_I; break; - case FF_P_TYPE: + case AV_PICTURE_TYPE_P: p_out->i_flags |= BLOCK_FLAG_TYPE_P; break; - case FF_B_TYPE: + case AV_PICTURE_TYPE_B: p_out->i_flags |= BLOCK_FLAG_TYPE_B; break; default: