[FFmpeg-devel] [PATCH 5/6] ffmpeg: auto-insert setfield, tinterlace filters for MXF files with separate fields layout
wm4
nfxjfg at googlemail.com
Thu Jul 23 15:09:09 CEST 2015
On Wed, 22 Jul 2015 22:40:22 +0200
Matthieu Bouron <matthieu.bouron at gmail.com> wrote:
> On Wed, Jul 22, 2015 at 8:02 PM, wm4 <nfxjfg at googlemail.com> wrote:
>
> > On Wed, 22 Jul 2015 15:29:46 +0200
> > Matthieu Bouron <matthieu.bouron at gmail.com> wrote:
> >
> > > From: Matthieu Bouron <matthieu.bouron at stupeflix.com>
> > >
> > > Fixes ticket #1102.
> > > ---
> > > ffmpeg_filter.c | 25 +++++++++++++++++++++++++
> > > 1 file changed, 25 insertions(+)
> > >
> > > diff --git a/ffmpeg_filter.c b/ffmpeg_filter.c
> > > index 950e4d0..774ec1c 100644
> > > --- a/ffmpeg_filter.c
> > > +++ b/ffmpeg_filter.c
> > > @@ -706,6 +706,8 @@ static int configure_input_video_filter(FilterGraph
> > *fg, InputFilter *ifilter,
> > > int ret, pad_idx = 0;
> > > int64_t tsoffset = 0;
> > >
> > > + AVDictionaryEntry *entry;
> > > +
> > > if (ist->dec_ctx->codec_type == AVMEDIA_TYPE_AUDIO) {
> > > av_log(NULL, AV_LOG_ERROR, "Cannot connect video filter to
> > audio input\n");
> > > return AVERROR(EINVAL);
> > > @@ -764,6 +766,29 @@ static int configure_input_video_filter(FilterGraph
> > *fg, InputFilter *ifilter,
> > > return ret;
> > > }
> > >
> > > + entry = av_dict_get(ist->st->metadata, "mxf_frame_layout", NULL, 0);
> > > + if (entry && entry->value &&
> > > + (!strcmp(entry->value, "separate_fields") ||
> > > + !strcmp(entry->value, "segmented_frame"))) {
> >
> > This is a terrible way to signal something this important...
> >
>
> Would you have any suggestions to implement this in a better way other than
> using stream metadata ?
This should probably be some sort of AVFrame flag. See
AVFrame.interlaced_frame for inspiration for example.
More information about the ffmpeg-devel
mailing list