[FFmpeg-devel] [PATCH 1/3] avformat/mxfenc: Allow overriding numerical color_siting value.
wm4
nfxjfg at googlemail.com
Tue Aug 29 13:02:18 EEST 2017
On Tue, 29 Aug 2017 11:59:05 +0200
Michael Niedermayer <michael at niedermayer.cc> wrote:
> On Tue, Aug 29, 2017 at 11:02:32AM +0200, wm4 wrote:
> > On Tue, 29 Aug 2017 02:13:19 +0200
> > Michael Niedermayer <michael at niedermayer.cc> wrote:
> >
> > > Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> > > ---
> > > libavformat/mxfenc.c | 7 ++++++-
> > > 1 file changed, 6 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/libavformat/mxfenc.c b/libavformat/mxfenc.c
> > > index 12fc9abbc6..ccfa0d6341 100644
> > > --- a/libavformat/mxfenc.c
> > > +++ b/libavformat/mxfenc.c
> > > @@ -322,6 +322,7 @@ typedef struct MXFContext {
> > > uint8_t umid[16]; ///< unique material identifier
> > > int channel_count;
> > > int signal_standard;
> > > + int color_siting;
> > > uint32_t tagged_value_count;
> > > AVRational audio_edit_rate;
> > > int store_user_comments;
> > > @@ -2085,6 +2086,8 @@ static int mxf_write_header(AVFormatContext *s)
> > > case AVCHROMA_LOC_TOP: sc->color_siting = 1; break;
> > > case AVCHROMA_LOC_CENTER: sc->color_siting = 3; break;
> > > }
> > > + if (mxf->color_siting >= 0)
> > > + sc->color_siting = mxf->color_siting;
> > >
> > > mxf->timecode_base = (tbc.den + tbc.num/2) / tbc.num;
> > > spf = ff_mxf_get_samples_per_frame(s, tbc);
> > > @@ -2668,7 +2671,9 @@ static int mxf_interleave(AVFormatContext *s, AVPacket *out, AVPacket *pkt, int
> > > { "smpte349m", "SMPTE 349M (1485 Mbps mappings)",\
> > > 0, AV_OPT_TYPE_CONST, {.i64 = 6}, -1, 7, AV_OPT_FLAG_ENCODING_PARAM, "signal_standard"},\
> > > { "smpte428", "SMPTE 428-1 DCDM",\
> > > - 0, AV_OPT_TYPE_CONST, {.i64 = 7}, -1, 7, AV_OPT_FLAG_ENCODING_PARAM, "signal_standard"},
> > > + 0, AV_OPT_TYPE_CONST, {.i64 = 7}, -1, 7, AV_OPT_FLAG_ENCODING_PARAM, "signal_standard"},\
> > > + { "color_siting", "Force/set Color siting",\
> > > + offsetof(MXFContext, color_siting), AV_OPT_TYPE_INT, {.i64 = -1}, -1, 7, AV_OPT_FLAG_ENCODING_PARAM, "color_siting"},\
> > >
> > >
> > >
> >
> > What an absurd patch. This should be done by generic code overriding
> > the chroma_location field on AVFrames sent to the encoders. We don't
> > need inconsistent private options for an inconsistent set of encoders
> > to override generic parameters in an inconsistent way. What's even the
> > point?
>
> The point of this change is to be able to set any color siting value.
> MXF has some redundant values. The fields from AVFrame are not enough
> to choose this unless we want MXF specific information in AVFrames
>
> [...]
You probably want to use some specialized MXF tool then.
More information about the ffmpeg-devel
mailing list