vlc | branch: master | Victorien Le Couviour--Tuffet <victorien.lecouviour.tuf...@gmail.com> | Wed Aug 2 16:37:14 2017 +0200| [723940fbad6877f17dba471396db4067af204d39] | committer: Rémi Denis-Courmont
splitter: wall: fix windows sizes Signed-off-by: Rémi Denis-Courmont <r...@remlab.net> > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=723940fbad6877f17dba471396db4067af204d39 --- modules/video_splitter/wall.c | 111 ++++-------------------------------------- 1 file changed, 10 insertions(+), 101 deletions(-) diff --git a/modules/video_splitter/wall.c b/modules/video_splitter/wall.c index e234ca3622..4bc3e378ff 100644 --- a/modules/video_splitter/wall.c +++ b/modules/video_splitter/wall.c @@ -191,88 +191,19 @@ static int Open( vlc_object_t *p_this ) i_aspect = 4 * VOUT_ASPECT_FACTOR / 3; /* Compute placements/size of the windows */ - const unsigned w1 = ( p_splitter->fmt.i_width / p_sys->i_col ) & ~1; - const unsigned h1 = ( w1 * VOUT_ASPECT_FACTOR / i_aspect ) & ~1; - - const unsigned h2 = ( p_splitter->fmt.i_height / p_sys->i_row ) & ~1; - const unsigned w2 = ( h2 * i_aspect / VOUT_ASPECT_FACTOR ) & ~1; - - unsigned i_target_width; - unsigned i_target_height; - unsigned i_hstart, i_hend; - unsigned i_vstart, i_vend; - bool b_vstart_rounded; - bool b_hstart_rounded; - - if( h1 * p_sys->i_row < p_splitter->fmt.i_height ) - { - i_target_width = w2; - i_target_height = h2; - - i_vstart = 0; - b_vstart_rounded = false; - i_vend = p_splitter->fmt.i_height; - - unsigned i_tmp = i_target_width * p_sys->i_col; - while( i_tmp < p_splitter->fmt.i_width ) - i_tmp += p_sys->i_col; - - i_hstart = (( i_tmp - p_splitter->fmt.i_width ) / 2)&~1; - b_hstart_rounded = ( ( i_tmp - p_splitter->fmt.i_width ) % 2 ) || - ( ( ( i_tmp - p_splitter->fmt.i_width ) / 2 ) & 1 ); - i_hend = i_hstart + p_splitter->fmt.i_width; - } - else - { - i_target_height = h1; - i_target_width = w1; - - i_hstart = 0; - b_hstart_rounded = false; - i_hend = p_splitter->fmt.i_width; - - unsigned i_tmp = i_target_height * p_sys->i_row; - while( i_tmp < p_splitter->fmt.i_height ) - i_tmp += p_sys->i_row; - - i_vstart = ( ( i_tmp - p_splitter->fmt.i_height ) / 2 ) & ~1; - b_vstart_rounded = ( ( i_tmp - p_splitter->fmt.i_height ) % 2 ) || - ( ( ( i_tmp - p_splitter->fmt.i_height ) / 2 ) & 1 ); - i_vend = i_vstart + p_splitter->fmt.i_height; - } - msg_Dbg( p_splitter, "target resolution %dx%d", i_target_width, i_target_height ); - msg_Dbg( p_splitter, "target window (%d,%d)-(%d,%d)", i_hstart,i_vstart,i_hend,i_vend ); + unsigned i_width = p_splitter->fmt.i_visible_width / p_sys->i_col; + unsigned i_height = p_splitter->fmt.i_visible_height / p_sys->i_row; + msg_Dbg( p_splitter, "target resolution %dx%d", i_width, i_height ); int i_active = 0; for( int y = 0, i_top = 0; y < p_sys->i_row; y++ ) { /* */ - int i_height = 0; int i_halign = 0; - if( y * i_target_height >= i_vstart && - ( y + 1 ) * i_target_height <= i_vend ) - { - i_height = i_target_height; - } - else if( ( y + 1 ) * i_target_height < i_vstart || - ( y * i_target_height ) > i_vend ) - { - i_height = 0; - } + if ( y >= ( p_sys->i_row / 2 ) ) + i_halign = VOUT_ALIGN_BOTTOM; else - { - i_height = ( i_target_height - - i_vstart%i_target_height ); - if( y >= ( p_sys->i_row / 2 ) ) - { - i_halign = VOUT_ALIGN_TOP; - i_height -= b_vstart_rounded ? 2: 0; - } - else - { - i_halign = VOUT_ALIGN_BOTTOM; - } - } + i_halign = VOUT_ALIGN_TOP; /* */ for( int x = 0, i_left = 0; x < p_sys->i_col; x++ ) @@ -280,35 +211,14 @@ static int Open( vlc_object_t *p_this ) wall_output_t *p_output = &p_sys->pp_output[x][y]; /* */ - int i_width; int i_valign = 0; - if( x*i_target_width >= i_hstart && - (x+1)*i_target_width <= i_hend ) - { - i_width = i_target_width; - } - else if( ( x + 1 ) * i_target_width < i_hstart || - ( x * i_target_width ) > i_hend ) - { - i_width = 0; - } + if( x >= ( p_sys->i_col / 2 ) ) + i_valign = VOUT_ALIGN_RIGHT; else - { - i_width = ( i_target_width - i_hstart % i_target_width ); - if( x >= ( p_sys->i_col / 2 ) ) - { - i_valign = VOUT_ALIGN_LEFT; - i_width -= b_hstart_rounded ? 2: 0; - } - else - { - i_valign = VOUT_ALIGN_RIGHT; - } - } + i_valign = VOUT_ALIGN_LEFT; /* */ - p_output->b_active = pb_active[y * p_sys->i_col + x] && - i_height > 0 && i_width > 0; + p_output->b_active = pb_active[y * p_sys->i_col + x]; p_output->i_output = -1; p_output->i_align = i_valign | i_halign; p_output->i_width = i_width; @@ -449,4 +359,3 @@ static int Mouse( video_splitter_t *p_splitter, vlc_mouse_t *p_mouse, vlc_assert_unreachable(); return VLC_EGENERIC; } - _______________________________________________ vlc-commits mailing list vlc-commits@videolan.org https://mailman.videolan.org/listinfo/vlc-commits