[vlc-commits] transcode: code cleaning after transcode_video_set_conversions loop unroll
Steve Lhomme
git at videolan.org
Mon Oct 5 14:05:17 CEST 2020
vlc | branch: master | Steve Lhomme <robux4 at ycbcr.xyz> | Thu Sep 24 10:47:33 2020 +0200| [32cab86bdceaec570d8512686c8e0f072b0b2adb] | committer: Steve Lhomme
transcode: code cleaning after transcode_video_set_conversions loop unroll
- remove the enum differentiating each pass
- use the proper filter directly on each pass
- remove impossible test cases
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=32cab86bdceaec570d8512686c8e0f072b0b2adb
---
modules/stream_out/transcode/video.c | 52 +++++++++---------------------------
1 file changed, 13 insertions(+), 39 deletions(-)
diff --git a/modules/stream_out/transcode/video.c b/modules/stream_out/transcode/video.c
index a2e0efa335..16ceb01af9 100644
--- a/modules/stream_out/transcode/video.c
+++ b/modules/stream_out/transcode/video.c
@@ -279,21 +279,12 @@ static int transcode_video_set_conversions( sout_stream_t *p_stream,
.sys = id,
};
- enum
- {
- STEP_NONSTATIC = 0,
- STEP_STATIC,
- };
- int step = STEP_NONSTATIC;
{
const bool b_do_scale = (*pp_src)->video.i_width != p_dst->video.i_width ||
(*pp_src)->video.i_height != p_dst->video.i_height;
const bool b_do_chroma = (*pp_src)->video.i_chroma != p_dst->video.i_chroma;
const bool b_do_orient = ((*pp_src)->video.orientation != ORIENT_NORMAL) && b_reorient;
- if( step == STEP_STATIC && b_do_orient )
- return VLC_EGENERIC;
-
const es_format_t *p_tmpdst = p_dst;
if( ! (b_do_scale || b_do_chroma || b_do_orient) )
@@ -310,30 +301,25 @@ static int transcode_video_set_conversions( sout_stream_t *p_stream,
msg_Dbg( p_stream, "adding (scale %d,chroma %d, orient %d) converters",
b_do_scale, b_do_chroma, b_do_orient );
- filter_chain_t **pp_chain = (step == STEP_NONSTATIC)
- ? &id->p_conv_nonstatic
- : &id->p_conv_static;
-
- *pp_chain = filter_chain_NewVideo( p_stream, step == STEP_NONSTATIC, &owner );
- if( !*pp_chain )
+ id->p_conv_nonstatic = filter_chain_NewVideo( p_stream, true, &owner );
+ if( !id->p_conv_nonstatic )
return VLC_EGENERIC;
- filter_chain_Reset( *pp_chain, *pp_src, *pp_src_vctx, p_tmpdst );
+ filter_chain_Reset( id->p_conv_nonstatic, *pp_src, *pp_src_vctx, p_tmpdst );
- if( filter_chain_AppendConverter( *pp_chain, p_tmpdst ) != VLC_SUCCESS )
+ if( filter_chain_AppendConverter( id->p_conv_nonstatic, p_tmpdst ) != VLC_SUCCESS )
return VLC_EGENERIC;
- *pp_src = filter_chain_GetFmtOut( *pp_chain );
- *pp_src_vctx = filter_chain_GetVideoCtxOut( *pp_chain );
+ *pp_src = filter_chain_GetFmtOut( id->p_conv_nonstatic );
+ *pp_src_vctx = filter_chain_GetVideoCtxOut( id->p_conv_nonstatic );
debug_format( p_stream, *pp_src );
}
- step = STEP_STATIC;
{
const bool b_do_scale = (*pp_src)->video.i_width != p_dst->video.i_width ||
(*pp_src)->video.i_height != p_dst->video.i_height;
const bool b_do_chroma = (*pp_src)->video.i_chroma != p_dst->video.i_chroma;
const bool b_do_orient = ((*pp_src)->video.orientation != ORIENT_NORMAL) && b_reorient;
- if( step == STEP_STATIC && b_do_orient )
+ if( b_do_orient )
return VLC_EGENERIC;
const es_format_t *p_tmpdst = p_dst;
@@ -341,31 +327,19 @@ static int transcode_video_set_conversions( sout_stream_t *p_stream,
if( ! (b_do_scale || b_do_chroma || b_do_orient) )
return VLC_SUCCESS;
- es_format_t tmpdst;
- if( b_do_orient )
- {
- es_format_Init( &tmpdst, VIDEO_ES, p_dst->video.i_chroma );
- video_format_ApplyRotation( &tmpdst.video, &p_dst->video );
- p_tmpdst = &tmpdst;
- }
-
msg_Dbg( p_stream, "adding (scale %d,chroma %d, orient %d) converters",
b_do_scale, b_do_chroma, b_do_orient );
- filter_chain_t **pp_chain = (step == STEP_NONSTATIC)
- ? &id->p_conv_nonstatic
- : &id->p_conv_static;
-
- *pp_chain = filter_chain_NewVideo( p_stream, step == STEP_NONSTATIC, &owner );
- if( !*pp_chain )
+ id->p_conv_static = filter_chain_NewVideo( p_stream, false, &owner );
+ if( !id->p_conv_static )
return VLC_EGENERIC;
- filter_chain_Reset( *pp_chain, *pp_src, *pp_src_vctx, p_tmpdst );
+ filter_chain_Reset( id->p_conv_static, *pp_src, *pp_src_vctx, p_tmpdst );
- if( filter_chain_AppendConverter( *pp_chain, p_tmpdst ) != VLC_SUCCESS )
+ if( filter_chain_AppendConverter( id->p_conv_static, p_tmpdst ) != VLC_SUCCESS )
return VLC_EGENERIC;
- *pp_src = filter_chain_GetFmtOut( *pp_chain );
- *pp_src_vctx = filter_chain_GetVideoCtxOut( *pp_chain );
+ *pp_src = filter_chain_GetFmtOut( id->p_conv_static );
+ *pp_src_vctx = filter_chain_GetVideoCtxOut( id->p_conv_static );
debug_format( p_stream, *pp_src );
}
More information about the vlc-commits
mailing list