Message ID | 1524751587-32477-1-git-send-email-t.rapp@noa-archive.com |
---|---|
State | Accepted |
Commit | a150b2e3a099fd539ecc6664050fd20617ce223c |
Headers | show |
On 4/26/2018 3:06 PM, Tobias Rapp wrote: > + if (ost->top_field_first == 0) { > + enc_ctx->field_order = AV_FIELD_BB; > + } else if (ost->top_field_first == 1) { > + enc_ctx->field_order = AV_FIELD_TT; > + } This doesn't look correct; ost->top_field_first is only valid if ost->interlaced_frame is set. Wouldn't this incorrectly set field_order on progressive streams, which should be set to AV_FIELD_PROGRESSIVE? - Derek
On 26.04.2018 16:11, Derek Buitenhuis wrote: > On 4/26/2018 3:06 PM, Tobias Rapp wrote: >> + if (ost->top_field_first == 0) { >> + enc_ctx->field_order = AV_FIELD_BB; >> + } else if (ost->top_field_first == 1) { >> + enc_ctx->field_order = AV_FIELD_TT; >> + } > > This doesn't look correct; ost->top_field_first is only > valid if ost->interlaced_frame is set. Wouldn't this > incorrectly set field_order on progressive streams, > which should be set to AV_FIELD_PROGRESSIVE? "ost" is of type OutputStream here, which only has top_field_first with values auto=-1/bff=0/tff=1. AVFrame has the interlaced_frame/top_field_first pair you mentioned, while AVCodecContext has field_order. Regards, Tobias
On 4/26/2018 3:49 PM, Tobias Rapp wrote: > "ost" is of type OutputStream here, which only has top_field_first with > values auto=-1/bff=0/tff=1. AVFrame has the > interlaced_frame/top_field_first pair you mentioned, while > AVCodecContext has field_order. Ah, I misunderstood the type and values of ost. Confusing naming... Seems OK then, I suppose. - Derek
On Thu, Apr 26, 2018 at 04:06:27PM +0200, Tobias Rapp wrote: > Fixes stream field order written by avformat_write_header when "top" > option is specified on the command-line. > > Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com> > --- > fftools/ffmpeg.c | 6 ++++++ > 1 file changed, 6 insertions(+) possibly correct thanks [...]
On 26.04.2018 16:06, Tobias Rapp wrote: > Fixes stream field order written by avformat_write_header when "top" > option is specified on the command-line. > > Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com> > --- > fftools/ffmpeg.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > [...] Pushed, thanks to both of you for the review. Regards, Tobias
diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 4dbe721..a28786a 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -3379,6 +3379,12 @@ static int init_output_stream_encode(OutputStream *ost) enc_ctx->bits_per_raw_sample = frame_bits_per_raw_sample; } + if (ost->top_field_first == 0) { + enc_ctx->field_order = AV_FIELD_BB; + } else if (ost->top_field_first == 1) { + enc_ctx->field_order = AV_FIELD_TT; + } + if (ost->forced_keyframes) { if (!strncmp(ost->forced_keyframes, "expr:", 5)) { ret = av_expr_parse(&ost->forced_keyframes_pexpr, ost->forced_keyframes+5,
Fixes stream field order written by avformat_write_header when "top" option is specified on the command-line. Signed-off-by: Tobias Rapp <t.rapp@noa-archive.com> --- fftools/ffmpeg.c | 6 ++++++ 1 file changed, 6 insertions(+)