mirror of
https://gitee.com/openharmony/third_party_ffmpeg
synced 2024-11-23 19:30:05 +00:00
avfilter/vf_stereo3d: stop dumping half of data for interleave rows output
Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
parent
32dd9b2c6e
commit
0c511eb272
@ -327,13 +327,6 @@ static int config_output(AVFilterLink *outlink)
|
|||||||
case ABOVE_BELOW_LR:
|
case ABOVE_BELOW_LR:
|
||||||
case ABOVE_BELOW_2_RL:
|
case ABOVE_BELOW_2_RL:
|
||||||
case ABOVE_BELOW_RL:
|
case ABOVE_BELOW_RL:
|
||||||
if (s->out.format == INTERLEAVE_ROWS_LR ||
|
|
||||||
s->out.format == INTERLEAVE_ROWS_RL) {
|
|
||||||
if (inlink->h & 3) {
|
|
||||||
av_log(ctx, AV_LOG_ERROR, "height must be multiple of 4\n");
|
|
||||||
return AVERROR_INVALIDDATA;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (inlink->h & 1) {
|
if (inlink->h & 1) {
|
||||||
av_log(ctx, AV_LOG_ERROR, "height must be even\n");
|
av_log(ctx, AV_LOG_ERROR, "height must be even\n");
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
@ -391,9 +384,7 @@ static int config_output(AVFilterLink *outlink)
|
|||||||
s->in.off_lstep = 1;
|
s->in.off_lstep = 1;
|
||||||
else
|
else
|
||||||
s->in.off_rstep = 1;
|
s->in.off_rstep = 1;
|
||||||
if (s->out.format != INTERLEAVE_ROWS_LR &&
|
if (s->out.format != CHECKERBOARD_LR &&
|
||||||
s->out.format != INTERLEAVE_ROWS_RL &&
|
|
||||||
s->out.format != CHECKERBOARD_LR &&
|
|
||||||
s->out.format != CHECKERBOARD_RL)
|
s->out.format != CHECKERBOARD_RL)
|
||||||
s->height = inlink->h / 2;
|
s->height = inlink->h / 2;
|
||||||
break;
|
break;
|
||||||
@ -468,16 +459,16 @@ static int config_output(AVFilterLink *outlink)
|
|||||||
s->out.row_left = s->height;
|
s->out.row_left = s->height;
|
||||||
break;
|
break;
|
||||||
case INTERLEAVE_ROWS_LR:
|
case INTERLEAVE_ROWS_LR:
|
||||||
s->in.row_step = 2;
|
s->in.row_step = 1 + (s->in.format == INTERLEAVE_ROWS_RL);
|
||||||
s->out.row_step = 2;
|
s->out.row_step = 2;
|
||||||
s->height = s->height / 2;
|
s->out.height = s->height * 2;
|
||||||
s->out.off_rstep = 1;
|
s->out.off_rstep = 1;
|
||||||
s->in.off_rstep = s->in.format != INTERLEAVE_ROWS_RL;
|
s->in.off_rstep = s->in.format != INTERLEAVE_ROWS_RL;
|
||||||
break;
|
break;
|
||||||
case INTERLEAVE_ROWS_RL:
|
case INTERLEAVE_ROWS_RL:
|
||||||
s->in.row_step = 2;
|
s->in.row_step = 1 + (s->in.format == INTERLEAVE_ROWS_LR);
|
||||||
s->out.row_step = 2;
|
s->out.row_step = 2;
|
||||||
s->height = s->height / 2;
|
s->out.height = s->height * 2;
|
||||||
s->out.off_lstep = 1;
|
s->out.off_lstep = 1;
|
||||||
s->in.off_lstep = s->in.format != INTERLEAVE_ROWS_LR;
|
s->in.off_lstep = s->in.format != INTERLEAVE_ROWS_LR;
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user