Hi Vittorio, On Thu, Aug 25, 2016 at 7:14 PM, Vittorio Giovara < vittorio.giov...@gmail.com> wrote:
> The filter needs input frames with color properties filled out by > the decoder. Since this is not always possible, add input options to > the filter so that user may override color space, color primaries, > transfer characteristics, and color range. > > Signed-off-by: Vittorio Giovara <vittorio.giov...@gmail.com> > --- > Please keep me in CC. > Vittorio > [..] > @@ -1014,6 +1022,9 @@ static const AVOption colorspace_options[] = { > { "space", "Output colorspace", > OFFSET(user_csp), AV_OPT_TYPE_INT, { .i64 = AVCOL_SPC_UNSPECIFIED > }, > AVCOL_PRI_RESERVED0, AVCOL_PRI_NB - 1, FLAGS, "csp" }, > + { "ispace", "Input colorspace", > + OFFSET(user_icsp), AV_OPT_TYPE_INT, { .i64 = AVCOL_SPC_UNSPECIFIED > }, > + AVCOL_PRI_RESERVED0, AVCOL_PRI_NB - 1, FLAGS, "csp" }, > ENUM("bt709", AVCOL_SPC_BT709, "csp"), > ENUM("fcc", AVCOL_SPC_FCC, "csp"), > ENUM("bt470bg", AVCOL_SPC_BT470BG, "csp"), > @@ -1024,12 +1035,18 @@ static const AVOption colorspace_options[] = { > { "range", "Output color range", > OFFSET(user_rng), AV_OPT_TYPE_INT, { .i64 = > AVCOL_RANGE_UNSPECIFIED }, > AVCOL_RANGE_UNSPECIFIED, AVCOL_RANGE_NB - 1, FLAGS, "rng" }, > + { "irange", "Input color range", > + OFFSET(user_irng), AV_OPT_TYPE_INT, { .i64 = > AVCOL_RANGE_UNSPECIFIED }, > + AVCOL_RANGE_UNSPECIFIED, AVCOL_RANGE_NB - 1, FLAGS, "rng" }, > ENUM("mpeg", AVCOL_RANGE_MPEG, "rng"), > ENUM("jpeg", AVCOL_RANGE_JPEG, "rng"), > > { "primaries", "Output color primaries", > OFFSET(user_prm), AV_OPT_TYPE_INT, { .i64 = AVCOL_PRI_UNSPECIFIED > }, > AVCOL_PRI_RESERVED0, AVCOL_PRI_NB - 1, FLAGS, "prm" }, > + { "iprimaries", "Input color primaries", > + OFFSET(user_iprm), AV_OPT_TYPE_INT, { .i64 = AVCOL_PRI_UNSPECIFIED > }, > + AVCOL_PRI_RESERVED0, AVCOL_PRI_NB - 1, FLAGS, "prm" }, > ENUM("bt709", AVCOL_PRI_BT709, "prm"), > ENUM("bt470m", AVCOL_PRI_BT470M, "prm"), > ENUM("bt470bg", AVCOL_PRI_BT470BG, "prm"), > @@ -1040,6 +1057,9 @@ static const AVOption colorspace_options[] = { > { "trc", "Output transfer characteristics", > OFFSET(user_trc), AV_OPT_TYPE_INT, { .i64 = AVCOL_TRC_UNSPECIFIED > }, > AVCOL_TRC_RESERVED0, AVCOL_TRC_NB - 1, FLAGS, "trc" }, > + { "itrc", "Input transfer characteristics", > + OFFSET(user_itrc), AV_OPT_TYPE_INT, { .i64 = AVCOL_TRC_UNSPECIFIED > }, > + AVCOL_TRC_RESERVED0, AVCOL_TRC_NB - 1, FLAGS, "trc" }, > ENUM("bt709", AVCOL_TRC_BT709, "trc"), > ENUM("gamma22", AVCOL_TRC_GAMMA22, "trc"), > ENUM("gamma28", AVCOL_TRC_GAMMA28, "trc"), Do you think it makes sense to have a "iall" property, similar to "all"? iprm/irange/itr/iprimeries would take precedence over iall, but iall could be used to set all 4 at once in the (common) case where they are consistent. Ronald _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel