Mercurial > mplayer.hg
changeset 33789:475d96f700d4
Half-width side-by-side formats for stereo3d.
Patch by Steaphan Greene [sgreene cs.binghamton.edu]
author | reimar |
---|---|
date | Mon, 11 Jul 2011 21:54:53 +0000 |
parents | 03b638e2b994 |
children | ab6d06f5b98b |
files | DOCS/man/en/mplayer.1 libmpcodecs/vf_stereo3d.c |
diffstat | 2 files changed, 24 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/DOCS/man/en/mplayer.1 Mon Jul 11 15:19:56 2011 +0000 +++ b/DOCS/man/en/mplayer.1 Mon Jul 11 21:54:53 2011 +0000 @@ -7843,6 +7843,14 @@ .RS side by side crosseye (right eye left, left eye right) .RE +.B sbs2l or side_by_side_half_width_left_first +.RS +side by side with half width resolution (left eye left, right eye right) +.RE +.B sbs2r or side_by_side_half_width_right_first +.RS +side by side with half width resolution (right eye left, left eye right) +.RE .B abl or above_below_left_first .RS above-below (left eye above, right eye below)
--- a/libmpcodecs/vf_stereo3d.c Mon Jul 11 15:19:56 2011 +0000 +++ b/libmpcodecs/vf_stereo3d.c Mon Jul 11 21:54:53 2011 +0000 @@ -52,6 +52,8 @@ MONO_R, //mono output for debugging (right eye only) SIDE_BY_SIDE_LR, //side by side parallel (left eye left, right eye right) SIDE_BY_SIDE_RL, //side by side crosseye (right eye left, left eye right) + SIDE_BY_SIDE_2_LR, //side by side parallel with half width resolution + SIDE_BY_SIDE_2_RL, //side by side crosseye with half width resolution ABOVE_BELOW_LR, //above-below (left eye above, right eye below) ABOVE_BELOW_RL, //above-below (right eye above, left eye below) ABOVE_BELOW_2_LR, //above-below with half height resolution @@ -148,10 +150,14 @@ //check input format switch (vf->priv->in.fmt) { + case SIDE_BY_SIDE_2_LR: + d_width *= 2; case SIDE_BY_SIDE_LR: vf->priv->width = width / 2; vf->priv->in.off_right = vf->priv->width * 3; break; + case SIDE_BY_SIDE_2_RL: + d_width *= 2; case SIDE_BY_SIDE_RL: vf->priv->width = width / 2; vf->priv->in.off_left = vf->priv->width * 3; @@ -197,10 +203,14 @@ memcpy(vf->priv->ana_matrix, ana_coeff[vf->priv->out.fmt], sizeof(vf->priv->ana_matrix)); break; + case SIDE_BY_SIDE_2_LR: + d_width /= 2; case SIDE_BY_SIDE_LR: vf->priv->out.width = vf->priv->width * 2; vf->priv->out.off_right = vf->priv->width * 3; break; + case SIDE_BY_SIDE_2_RL: + d_width /= 2; case SIDE_BY_SIDE_RL: vf->priv->out.width = vf->priv->width * 2; vf->priv->out.off_left = vf->priv->width * 3; @@ -274,6 +284,8 @@ switch (vf->priv->out.fmt) { case SIDE_BY_SIDE_LR: case SIDE_BY_SIDE_RL: + case SIDE_BY_SIDE_2_LR: + case SIDE_BY_SIDE_2_RL: case ABOVE_BELOW_LR: case ABOVE_BELOW_RL: case ABOVE_BELOW_2_LR: @@ -407,6 +419,10 @@ {"side_by_side_left_first", SIDE_BY_SIDE_LR}, {"sbsr", SIDE_BY_SIDE_RL}, {"side_by_side_right_first", SIDE_BY_SIDE_RL}, + {"sbs2l", SIDE_BY_SIDE_2_LR}, + {"side_by_side_half_width_left_first", SIDE_BY_SIDE_2_LR}, + {"sbs2r", SIDE_BY_SIDE_2_RL}, + {"side_by_side_half_width_right_first",SIDE_BY_SIDE_2_RL}, {"abl", ABOVE_BELOW_LR}, {"above_below_left_first", ABOVE_BELOW_LR}, {"abr", ABOVE_BELOW_RL},