mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-17 20:17:55 +02:00
avfilter/vf_framepack: Check and update frame_rate
The frame_rate update was missing leaving the output frame rate wrong. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
d3d9a00bcd
commit
a46a23d30f
@ -82,6 +82,7 @@ static int config_output(AVFilterLink *outlink)
|
|||||||
int width = ctx->inputs[LEFT]->w;
|
int width = ctx->inputs[LEFT]->w;
|
||||||
int height = ctx->inputs[LEFT]->h;
|
int height = ctx->inputs[LEFT]->h;
|
||||||
AVRational time_base = ctx->inputs[LEFT]->time_base;
|
AVRational time_base = ctx->inputs[LEFT]->time_base;
|
||||||
|
AVRational frame_rate = ctx->inputs[LEFT]->frame_rate;
|
||||||
|
|
||||||
// check size and fps match on the other input
|
// check size and fps match on the other input
|
||||||
if (width != ctx->inputs[RIGHT]->w ||
|
if (width != ctx->inputs[RIGHT]->w ||
|
||||||
@ -93,11 +94,18 @@ static int config_output(AVFilterLink *outlink)
|
|||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
} else if (av_cmp_q(time_base, ctx->inputs[RIGHT]->time_base) != 0) {
|
} else if (av_cmp_q(time_base, ctx->inputs[RIGHT]->time_base) != 0) {
|
||||||
av_log(ctx, AV_LOG_ERROR,
|
av_log(ctx, AV_LOG_ERROR,
|
||||||
"Left and right framerates differ (%d/%d vs %d/%d).\n",
|
"Left and right time bases differ (%d/%d vs %d/%d).\n",
|
||||||
time_base.num, time_base.den,
|
time_base.num, time_base.den,
|
||||||
ctx->inputs[RIGHT]->time_base.num,
|
ctx->inputs[RIGHT]->time_base.num,
|
||||||
ctx->inputs[RIGHT]->time_base.den);
|
ctx->inputs[RIGHT]->time_base.den);
|
||||||
return AVERROR_INVALIDDATA;
|
return AVERROR_INVALIDDATA;
|
||||||
|
} else if (av_cmp_q(frame_rate, ctx->inputs[RIGHT]->frame_rate) != 0) {
|
||||||
|
av_log(ctx, AV_LOG_ERROR,
|
||||||
|
"Left and right framerates differ (%d/%d vs %d/%d).\n",
|
||||||
|
frame_rate.num, frame_rate.den,
|
||||||
|
ctx->inputs[RIGHT]->frame_rate.num,
|
||||||
|
ctx->inputs[RIGHT]->frame_rate.den);
|
||||||
|
return AVERROR_INVALIDDATA;
|
||||||
}
|
}
|
||||||
|
|
||||||
s->pix_desc = av_pix_fmt_desc_get(outlink->format);
|
s->pix_desc = av_pix_fmt_desc_get(outlink->format);
|
||||||
@ -108,6 +116,8 @@ static int config_output(AVFilterLink *outlink)
|
|||||||
switch (s->format) {
|
switch (s->format) {
|
||||||
case AV_STEREO3D_FRAMESEQUENCE:
|
case AV_STEREO3D_FRAMESEQUENCE:
|
||||||
time_base.den *= 2;
|
time_base.den *= 2;
|
||||||
|
frame_rate.num *= 2;
|
||||||
|
|
||||||
s->double_pts = AV_NOPTS_VALUE;
|
s->double_pts = AV_NOPTS_VALUE;
|
||||||
break;
|
break;
|
||||||
case AV_STEREO3D_COLUMNS:
|
case AV_STEREO3D_COLUMNS:
|
||||||
@ -126,6 +136,7 @@ static int config_output(AVFilterLink *outlink)
|
|||||||
outlink->w = width;
|
outlink->w = width;
|
||||||
outlink->h = height;
|
outlink->h = height;
|
||||||
outlink->time_base = time_base;
|
outlink->time_base = time_base;
|
||||||
|
outlink->frame_rate= frame_rate;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
#tb 0: 1/25
|
#tb 0: 1/50
|
||||||
0, 0, 0, 1, 152064, 0x05b789ef
|
0, 0, 0, 1, 152064, 0x05b789ef
|
||||||
0, 1, 1, 1, 152064, 0x05b789ef
|
0, 1, 1, 1, 152064, 0x05b789ef
|
||||||
0, 2, 2, 1, 152064, 0x4bb46551
|
0, 2, 2, 1, 152064, 0x4bb46551
|
||||||
0, 3, 3, 1, 152064, 0x9dddf64a
|
0, 3, 3, 1, 152064, 0x4bb46551
|
||||||
0, 4, 4, 1, 152064, 0x2a8380b0
|
0, 4, 4, 1, 152064, 0x9dddf64a
|
||||||
0, 5, 5, 1, 152064, 0x4de3b652
|
0, 5, 5, 1, 152064, 0x9dddf64a
|
||||||
0, 6, 6, 1, 152064, 0xedb5a8e6
|
0, 6, 6, 1, 152064, 0x2a8380b0
|
||||||
0, 7, 7, 1, 152064, 0xe20f7c23
|
0, 7, 7, 1, 152064, 0x2a8380b0
|
||||||
0, 8, 8, 1, 152064, 0x5ab58bac
|
0, 8, 8, 1, 152064, 0x4de3b652
|
||||||
0, 9, 9, 1, 152064, 0x1f1b8026
|
0, 9, 9, 1, 152064, 0x4de3b652
|
||||||
0, 10, 10, 1, 152064, 0x91373915
|
0, 10, 10, 1, 152064, 0xedb5a8e6
|
||||||
0, 11, 11, 1, 152064, 0x02344760
|
0, 11, 11, 1, 152064, 0xedb5a8e6
|
||||||
0, 12, 12, 1, 152064, 0x30f5fcd5
|
0, 12, 12, 1, 152064, 0xe20f7c23
|
||||||
0, 13, 13, 1, 152064, 0xc711ad61
|
0, 13, 13, 1, 152064, 0xe20f7c23
|
||||||
0, 14, 14, 1, 152064, 0x24eca223
|
0, 14, 14, 1, 152064, 0x5ab58bac
|
||||||
|
Loading…
x
Reference in New Issue
Block a user