diff mbox series

[FFmpeg-devel] libavcodec/options_table: Add missing colorspace options

Message ID 20200819203103.74726-1-harry.mallon@codex.online
State Accepted
Commit 811514abb7ef398d30747b1925ad880a841c87e9
Headers show
Series [FFmpeg-devel] libavcodec/options_table: Add missing colorspace options | expand

Checks

Context Check Description
andriy/default pending
andriy/make success Make finished
andriy/make_fate success Make fate finished

Commit Message

Harry Mallon Aug. 19, 2020, 8:31 p.m. UTC
* chroma-derived-nc / chroma-derived-c and ictcp

Signed-off-by: Harry Mallon <harry.mallon@codex.online>
---
 doc/codecs.texi            |  6 ++++++
 libavcodec/options_table.h | 33 ++++++++++++++++++---------------
 2 files changed, 24 insertions(+), 15 deletions(-)

Comments

Harry Mallon Sept. 6, 2020, 9:29 a.m. UTC | #1
Is there anything I need to do to move this forwards? I think it is relatively uncontroversial?

Harry
Gyan Doshi Sept. 6, 2020, 10:54 a.m. UTC | #2
On 06-09-2020 02:59 pm, Harry Mallon wrote:
> Is there anything I need to do to move this forwards? I think it is relatively uncontroversial?

Agreed. Will push in 3 days if there are no objections.

Gyan
Gyan Doshi Sept. 8, 2020, 12:08 p.m. UTC | #3
Hi Harry,

On 06-09-2020 04:24 pm, Gyan Doshi wrote:
>
>
> On 06-09-2020 02:59 pm, Harry Mallon wrote:
>> Is there anything I need to do to move this forwards? I think it is 
>> relatively uncontroversial?
>
> Agreed. Will push in 3 days if there are no objections.

Can you link to some doc references for the entries you added?

Thanks,
Gyan
Harry Mallon Sept. 8, 2020, 12:53 p.m. UTC | #4
> On 8 Sep 2020, at 13:08, Gyan Doshi <ffmpeg@gyani.pro> wrote:
> 
> Hi Harry,
> 
> On 06-09-2020 04:24 pm, Gyan Doshi wrote:
>> 
>> 
>> On 06-09-2020 02:59 pm, Harry Mallon wrote:
>>> Is there anything I need to do to move this forwards? I think it is relatively uncontroversial?
>> 
>> Agreed. Will push in 3 days if there are no objections.
> 
> Can you link to some doc references for the entries you added?
> 

I'm not 100% sure what you mean, do you mean add some links to the doc/codecs.texi file, or just for the mailing list? ICtCp is definitely in ITU-R Rec 2100, I'm not sure about the others. It just seemed to me that they were missing from the command line arguments (and I needed to manually set ICtCp for something).

Best,
Harry
Gyan Doshi Sept. 8, 2020, 1:29 p.m. UTC | #5
On 08-09-2020 06:23 pm, Harry Mallon wrote:
>
>
>> On 8 Sep 2020, at 13:08, Gyan Doshi <ffmpeg@gyani.pro> wrote:
>>
>> Hi Harry,
>>
>> On 06-09-2020 04:24 pm, Gyan Doshi wrote:
>>>
>>> On 06-09-2020 02:59 pm, Harry Mallon wrote:
>>>> Is there anything I need to do to move this forwards? I think it is relatively uncontroversial?
>>> Agreed. Will push in 3 days if there are no objections.
>> Can you link to some doc references for the entries you added?
>>
> I'm not 100% sure what you mean, do you mean add some links to the doc/codecs.texi file, or just for the mailing list? ICtCp is definitely in ITU-R Rec 2100, I'm not sure about the others. It just seemed to me that they were missing from the command line arguments (and I needed to manually set ICtCp for something).

For the ML, at present. Ideally, the canonical standard docs. Avoid 
Wikipedia, forum posts..etc

Gyan
Harry Mallon Sept. 8, 2020, 3:01 p.m. UTC | #6
> On 8 Sep 2020, at 14:29, Gyan Doshi <ffmpeg@gyani.pro> wrote:
> 
> On 08-09-2020 06:23 pm, Harry Mallon wrote:
>> 
>> 
>>> On 8 Sep 2020, at 13:08, Gyan Doshi <ffmpeg@gyani.pro> wrote:
>>> 
>>> Hi Harry,
>>> 
>>> On 06-09-2020 04:24 pm, Gyan Doshi wrote:
>>>> 
>>>> On 06-09-2020 02:59 pm, Harry Mallon wrote:
>>>>> Is there anything I need to do to move this forwards? I think it is relatively uncontroversial?
>>>> Agreed. Will push in 3 days if there are no objections.
>>> Can you link to some doc references for the entries you added?
>>> 
>> I'm not 100% sure what you mean, do you mean add some links to the doc/codecs.texi file, or just for the mailing list? ICtCp is definitely in ITU-R Rec 2100, I'm not sure about the others. It just seemed to me that they were missing from the command line arguments (and I needed to manually set ICtCp for something).
> 
> For the ML, at present. Ideally, the canonical standard docs. Avoid Wikipedia, forum posts..etc
> 

Well ICtCp (which is the one I am interested in) is in ITU-R BT.2100 https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2100-2-201807-I!!PDF-E.pdf
I am not sure where the chroma-derived ones come from. They are all already supported in ffmpeg (https://github.com/FFmpeg/FFmpeg/commit/f3571048669bf876681499f49e9df492f05f73c6), just they were missing from this specific command line option.

Best,
Harry
Gyan Doshi Sept. 10, 2020, 10:51 a.m. UTC | #7
On 08-09-2020 08:31 pm, Harry Mallon wrote:
>
>> On 8 Sep 2020, at 14:29, Gyan Doshi <ffmpeg@gyani.pro> wrote:
>>
>> On 08-09-2020 06:23 pm, Harry Mallon wrote:
>>>
>>>> On 8 Sep 2020, at 13:08, Gyan Doshi <ffmpeg@gyani.pro> wrote:
>>>>
>>>> Hi Harry,
>>>>
>>>> On 06-09-2020 04:24 pm, Gyan Doshi wrote:
>>>>> On 06-09-2020 02:59 pm, Harry Mallon wrote:
>>>>>> Is there anything I need to do to move this forwards? I think it is relatively uncontroversial?
>>>>> Agreed. Will push in 3 days if there are no objections.
>>>> Can you link to some doc references for the entries you added?
>>>>
>>> I'm not 100% sure what you mean, do you mean add some links to the doc/codecs.texi file, or just for the mailing list? ICtCp is definitely in ITU-R Rec 2100, I'm not sure about the others. It just seemed to me that they were missing from the command line arguments (and I needed to manually set ICtCp for something).
>> For the ML, at present. Ideally, the canonical standard docs. Avoid Wikipedia, forum posts..etc
>>
> Well ICtCp (which is the one I am interested in) is in ITU-R BT.2100 https://www.itu.int/dms_pubrec/itu-r/rec/bt/R-REC-BT.2100-2-201807-I!!PDF-E.pdf
> I am not sure where the chroma-derived ones come from. They are all already supported in ffmpeg (https://github.com/FFmpeg/FFmpeg/commit/f3571048669bf876681499f49e9df492f05f73c6), just they were missing from this specific command line option.

Will push now and supplement details later.

Thanks,
Gyan
diff mbox series

Patch

diff --git a/doc/codecs.texi b/doc/codecs.texi
index c092aadc0e..1da2590795 100644
--- a/doc/codecs.texi
+++ b/doc/codecs.texi
@@ -1110,6 +1110,12 @@  BT.2020 NCL
 BT.2020 CL
 @item smpte2085
 SMPTE 2085
+@item chroma-derived-nc
+Chroma-derived NCL
+@item chroma-derived-c
+Chroma-derived CL
+@item ictcp
+ICtCp
 @end table
 
 @item color_range @var{integer} (@emph{decoding/encoding,video})
diff --git a/libavcodec/options_table.h b/libavcodec/options_table.h
index 1d0db1b5a4..66bda42663 100644
--- a/libavcodec/options_table.h
+++ b/libavcodec/options_table.h
@@ -381,21 +381,24 @@  static const AVOption avcodec_options[] = {
 {"bt2020_12bit", "BT.2020 - 12 bit", 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_TRC_BT2020_12 },    INT_MIN, INT_MAX, V|E|D, "color_trc_type"},
 {"smpte428_1",   "SMPTE 428-1",      0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_TRC_SMPTE428 },     INT_MIN, INT_MAX, V|E|D, "color_trc_type"},
 {"colorspace", "color space", OFFSET(colorspace), AV_OPT_TYPE_INT, {.i64 = AVCOL_SPC_UNSPECIFIED }, 0, INT_MAX, V|E|D, "colorspace_type"},
-{"rgb",         "RGB",         0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_RGB },         INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
-{"bt709",       "BT.709",      0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_BT709 },       INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
-{"unknown",     "Unspecified", 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_UNSPECIFIED }, INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
-{"fcc",         "FCC",         0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_FCC },         INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
-{"bt470bg",     "BT.470 BG",   0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_BT470BG },     INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
-{"smpte170m",   "SMPTE 170 M", 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_SMPTE170M },   INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
-{"smpte240m",   "SMPTE 240 M", 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_SMPTE240M },   INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
-{"ycgco",       "YCGCO",       0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_YCGCO },       INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
-{"bt2020nc",    "BT.2020 NCL", 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_BT2020_NCL },  INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
-{"bt2020c",     "BT.2020 CL",  0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_BT2020_CL },   INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
-{"smpte2085",   "SMPTE 2085",  0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_SMPTE2085 },   INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
-{"unspecified", "Unspecified", 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_UNSPECIFIED }, INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
-{"ycocg",       "YCGCO",       0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_YCGCO },       INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
-{"bt2020_ncl",  "BT.2020 NCL", 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_BT2020_NCL },  INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
-{"bt2020_cl",   "BT.2020 CL",  0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_BT2020_CL },   INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"rgb",               "RGB",                0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_RGB },                INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"bt709",             "BT.709",             0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_BT709 },              INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"unknown",           "Unspecified",        0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_UNSPECIFIED },        INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"fcc",               "FCC",                0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_FCC },                INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"bt470bg",           "BT.470 BG",          0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_BT470BG },            INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"smpte170m",         "SMPTE 170 M",        0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_SMPTE170M },          INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"smpte240m",         "SMPTE 240 M",        0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_SMPTE240M },          INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"ycgco",             "YCGCO",              0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_YCGCO },              INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"bt2020nc",          "BT.2020 NCL",        0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_BT2020_NCL },         INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"bt2020c",           "BT.2020 CL",         0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_BT2020_CL },          INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"smpte2085",         "SMPTE 2085",         0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_SMPTE2085 },          INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"chroma-derived-nc", "Chroma-derived NCL", 0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_CHROMA_DERIVED_NCL }, INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"chroma-derived-c",  "Chroma-derived CL",  0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_CHROMA_DERIVED_CL },  INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"ictcp",             "ICtCp",              0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_ICTCP },              INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"unspecified",       "Unspecified",        0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_UNSPECIFIED },        INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"ycocg",             "YCGCO",              0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_YCGCO },              INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"bt2020_ncl",        "BT.2020 NCL",        0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_BT2020_NCL },         INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
+{"bt2020_cl",         "BT.2020 CL",         0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_SPC_BT2020_CL },          INT_MIN, INT_MAX, V|E|D, "colorspace_type"},
 {"color_range", "color range", OFFSET(color_range), AV_OPT_TYPE_INT, {.i64 = AVCOL_RANGE_UNSPECIFIED }, 0, INT_MAX, V|E|D, "color_range_type"},
 {"unknown", "Unspecified",     0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_RANGE_UNSPECIFIED }, INT_MIN, INT_MAX, V|E|D, "color_range_type"},
 {"tv", "MPEG (219*2^(n-8))",   0, AV_OPT_TYPE_CONST, {.i64 = AVCOL_RANGE_MPEG },        INT_MIN, INT_MAX, V|E|D, "color_range_type"},