vlc | branch: master | Steve Lhomme <rob...@ycbcr.xyz> | Mon Dec 23 15:57:44 2019 +0100| [34627a60a9c566ce00bd00b8de3f2eb82bf3bb3b] | committer: Steve Lhomme
transcode: clean the decoder output format before using it as the encoder input The deocder input is cleaned once this way, but not after receiving the actual format from the decoder. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=34627a60a9c566ce00bd00b8de3f2eb82bf3bb3b --- modules/stream_out/transcode/encoder/encoder.h | 5 +++++ modules/stream_out/transcode/encoder/video.c | 8 ++++---- modules/stream_out/transcode/video.c | 2 ++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/modules/stream_out/transcode/encoder/encoder.h b/modules/stream_out/transcode/encoder/encoder.h index 6b5581571c..6f82f3afaa 100644 --- a/modules/stream_out/transcode/encoder/encoder.h +++ b/modules/stream_out/transcode/encoder/encoder.h @@ -90,6 +90,11 @@ void transcode_encoder_video_configure( vlc_object_t *p_obj, const video_format_t *p_src, transcode_encoder_t *p_enc ); +void transcode_video_framerate_apply( const video_format_t *p_src, + video_format_t *p_dst ); +void transcode_video_sar_apply( const video_format_t *p_src, + video_format_t *p_dst ); + int transcode_encoder_audio_configure( const transcode_encoder_config_t *p_cfg, const audio_format_t *p_dec_out, transcode_encoder_t *p_enc, bool ); diff --git a/modules/stream_out/transcode/encoder/video.c b/modules/stream_out/transcode/encoder/video.c index 24cf478da8..5c3fe66522 100644 --- a/modules/stream_out/transcode/encoder/video.c +++ b/modules/stream_out/transcode/encoder/video.c @@ -34,8 +34,8 @@ #include "encoder.h" #include "encoder_priv.h" -static void transcode_video_framerate_apply( const video_format_t *p_src, - video_format_t *p_dst ) +void transcode_video_framerate_apply( const video_format_t *p_src, + video_format_t *p_dst ) { /* Handle frame rate conversion */ if( !p_dst->i_frame_rate || !p_dst->i_frame_rate_base ) @@ -162,8 +162,8 @@ static void transcode_video_scale_apply( vlc_object_t *p_obj, i_dst_visible_width, i_dst_visible_height ); } -static void transcode_video_sar_apply( const video_format_t *p_src, - video_format_t *p_dst ) +void transcode_video_sar_apply( const video_format_t *p_src, + video_format_t *p_dst ) { /* Check whether a particular aspect ratio was requested */ if( p_dst->i_sar_num <= 0 || p_dst->i_sar_den <= 0 ) diff --git a/modules/stream_out/transcode/video.c b/modules/stream_out/transcode/video.c index a1e0199a15..ac3ed3b28a 100644 --- a/modules/stream_out/transcode/video.c +++ b/modules/stream_out/transcode/video.c @@ -606,6 +606,8 @@ int transcode_video_process( sout_stream_t *p_stream, sout_stream_id_sys_t *id, } video_format_Copy( &id->decoder_out.video, &p_pic->format ); + transcode_video_framerate_apply( &p_pic->format, &id->decoder_out.video ); + transcode_video_sar_apply( &p_pic->format, &id->decoder_out.video ); id->decoder_vctx_out = picture_GetVideoContext(p_pic); if( !transcode_video_filters_configured( id ) ) _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits