diff mbox series

[FFmpeg-devel] avformat/nut: add support for P010 pixel format

Message ID 20210601040239.2690-1-val.zapod.vz@gmail.com
State New
Headers show
Series [FFmpeg-devel] avformat/nut: add support for P010 pixel format
Related show

Checks

Context Check Description
andriy/x86_make success Make finished
andriy/x86_make_fate fail Make fate failed
andriy/PPC64_make success Make finished
andriy/PPC64_make_fate warning Make fate failed

Commit Message

Valerii Zapodovnikov June 1, 2021, 4:02 a.m. UTC
This is used for dshow, though may be swapped endianness there.
Fixes #8454. fate-pixdesc-p010le and be will have to be updated.
---
 libavcodec/raw.c  | 3 +++
 libavformat/nut.c | 3 +++
 2 files changed, 6 insertions(+)

Comments

Michael Niedermayer June 2, 2021, 3:07 p.m. UTC | #1
On Tue, Jun 01, 2021 at 07:02:39AM +0300, Valerii Zapodovnikov wrote:
> This is used for dshow, though may be swapped endianness there.
> Fixes #8454. fate-pixdesc-p010le and be will have to be updated.
> ---
>  libavcodec/raw.c  | 3 +++
>  libavformat/nut.c | 3 +++
>  2 files changed, 6 insertions(+)
> 
> diff --git a/libavcodec/raw.c b/libavcodec/raw.c
> index 079d5c5d10..7efc0156ca 100644
> --- a/libavcodec/raw.c
> +++ b/libavcodec/raw.c
> @@ -224,6 +224,9 @@ const PixelFormatTag ff_raw_pix_fmt_tags[] = {
>      { AV_PIX_FMT_BAYER_GRBG16LE, MKTAG(0xBA, 'G', 'R', 16  ) },
>      { AV_PIX_FMT_BAYER_GRBG16BE, MKTAG(16,   'R', 'G', 0xBA) },
>  
> +    { AV_PIX_FMT_P010LE,  MKTAG('P', '0', '1', '0') },
> +    { AV_PIX_FMT_P010BE,  MKTAG('0', '1', '0', 'P') },
> +
>      /* quicktime */
>      { AV_PIX_FMT_YUV420P, MKTAG('R', '4', '2', '0') }, /* Radius DV YUV PAL */
>      { AV_PIX_FMT_YUV411P, MKTAG('R', '4', '1', '1') }, /* Radius DV YUV NTSC */
> diff --git a/libavformat/nut.c b/libavformat/nut.c
> index 47ed152529..c69a9ab6ad 100644
> --- a/libavformat/nut.c
> +++ b/libavformat/nut.c
> @@ -205,6 +205,9 @@ const AVCodecTag ff_nut_video_tags[] = {
>      { AV_CODEC_ID_RAWVIDEO, MKTAG(0xBA, 'G', 'R', 16  ) },
>      { AV_CODEC_ID_RAWVIDEO, MKTAG(16,   'R', 'G', 0xBA) },
>  
> +    { AV_CODEC_ID_RAWVIDEO,  MKTAG('P', '0', '1', '0') },
> +    { AV_CODEC_ID_RAWVIDEO,  MKTAG('0', '1', '0', 'P') },
> +
>      { AV_CODEC_ID_NONE,             0 }

these are not listed in https://git.ffmpeg.org/gitweb/nut.git/blob_plain/HEAD:/docs/nut4cc.txt
and i also see no suggestion to add them
how could anyone be interoperable with this without them being documented ?

[...]
Valerii Zapodovnikov June 2, 2021, 4:08 p.m. UTC | #2
I don't really care about your nut container, FATE just complains that
something in raw.c is not in nut.c.
Michael Niedermayer June 3, 2021, 11:50 a.m. UTC | #3
On Wed, Jun 02, 2021 at 07:08:24PM +0300, Valerii Zapodovnikov wrote:
> I don't really care about your nut container, FATE just complains that
> something in raw.c is not in nut.c.

If you care about the discrepancy then you have to fix it.
your patch just moves the discrepancy to be between the nut spec and nut.c

Thanks

[...]
Valerii Zapodovnikov June 3, 2021, 9:04 p.m. UTC | #4
The bigger problem are FATE hashes. I am not able to fill them here. As to
send patches against another repo, I can do that, no problem with
--subject-prefix="PATCH
nut".

Also, I do not see a problem with the spec, the spec says that it has
priority, not the code. I am not doing this patch for nut.c, but for dshow
to support HDR, but HDR signalling is PQ transfer and other patches
implement reading that. I still do not know whether endianness is swapped
in dshow and what sample location means for P010, BTW.
Valerii Zapodovnikov June 5, 2021, 8:29 a.m. UTC | #5
Okay, I will send a patch to just raw.c to check it out, if it will not
work I will send against
http://lists.mplayerhq.hu/pipermail/nut-devel/2020-December/thread.html

Again, who can do FATE hashes for me? Please?
Michael Niedermayer June 5, 2021, 8:50 a.m. UTC | #6
On Sat, Jun 05, 2021 at 11:29:24AM +0300, Valerii Zapodovnikov wrote:
> Okay, I will send a patch to just raw.c to check it out, if it will not
> work I will send against
> http://lists.mplayerhq.hu/pipermail/nut-devel/2020-December/thread.html
> 
> Again, who can do FATE hashes for me? Please?

if you are asking about updating fate checksums
"make fate GEN=1" should update them in theory but maybe i misunderstand the question
you would after that definitly want to look at the diff before submitting it though
and also checking if fate passes after it

thx

[...]
Valerii Zapodovnikov June 5, 2021, 8:59 a.m. UTC | #7
GEN=1 is nice, but why diff is no longer working on patchwork itself? See:
https://patchwork.ffmpeg.org/check/18368/
diff mbox series

Patch

diff --git a/libavcodec/raw.c b/libavcodec/raw.c
index 079d5c5d10..7efc0156ca 100644
--- a/libavcodec/raw.c
+++ b/libavcodec/raw.c
@@ -224,6 +224,9 @@  const PixelFormatTag ff_raw_pix_fmt_tags[] = {
     { AV_PIX_FMT_BAYER_GRBG16LE, MKTAG(0xBA, 'G', 'R', 16  ) },
     { AV_PIX_FMT_BAYER_GRBG16BE, MKTAG(16,   'R', 'G', 0xBA) },
 
+    { AV_PIX_FMT_P010LE,  MKTAG('P', '0', '1', '0') },
+    { AV_PIX_FMT_P010BE,  MKTAG('0', '1', '0', 'P') },
+
     /* quicktime */
     { AV_PIX_FMT_YUV420P, MKTAG('R', '4', '2', '0') }, /* Radius DV YUV PAL */
     { AV_PIX_FMT_YUV411P, MKTAG('R', '4', '1', '1') }, /* Radius DV YUV NTSC */
diff --git a/libavformat/nut.c b/libavformat/nut.c
index 47ed152529..c69a9ab6ad 100644
--- a/libavformat/nut.c
+++ b/libavformat/nut.c
@@ -205,6 +205,9 @@  const AVCodecTag ff_nut_video_tags[] = {
     { AV_CODEC_ID_RAWVIDEO, MKTAG(0xBA, 'G', 'R', 16  ) },
     { AV_CODEC_ID_RAWVIDEO, MKTAG(16,   'R', 'G', 0xBA) },
 
+    { AV_CODEC_ID_RAWVIDEO,  MKTAG('P', '0', '1', '0') },
+    { AV_CODEC_ID_RAWVIDEO,  MKTAG('0', '1', '0', 'P') },
+
     { AV_CODEC_ID_NONE,             0 }
 };