Re: [FFmpeg-devel] [PATCH 1/6] lavu/pixfmt: add new pixel format ayuv/y210/y410
Am Mi., 11. Sept. 2019 um 09:35 Uhr schrieb Hendrik Leppkes : > > On Wed, Sep 11, 2019 at 5:20 AM Fu, Linjie wrote: > > > > > -Original Message- > > > From: ffmpeg-devel [mailto:ffmpeg-devel-boun...@ffmpeg.org] On Behalf > > > Of Carl Eugen Hoyos > > > Sent: Wednesday, September 11, 2019 03:25 > > > To: FFmpeg development discussions and patches > > de...@ffmpeg.org> > > > Subject: Re: [FFmpeg-devel] [PATCH 1/6] lavu/pixfmt: add new pixel format > > > ayuv/y210/y410 > > > > > > Am Di., 10. Sept. 2019 um 18:08 Uhr schrieb Linjie Fu > > > : > > > > > > > > Add some packed pixel formats for hardware decode support > > > > in VAAPI and QSV: > > > > > > > > 4:2:2 10 bit: Y210 > > > > 4:4:4 8 bit: AYUV > > > > 4:4:4 10 bit: Y410 > > > > > > Please add a short explanation (either in the commit message or > > > only in this thread) for which kind of samples these pixel formats > > > are needed. > > > > > > Or to say it differently: Why is the hardware outputting planar > > > formats for some samples and packed for others? > > > > I kind of remember that it was discussed in previous patch thread: > > Previously, media driver provided planar format(like 420 8 bit), > > but for HEVC Range Extension (422/444 8/10 bit), the decoded image > > is produced in packed format. And the reason is " because Windows > > expects it" as you have pointed. > > > > It could be updated in the commit message if this is good enough. > > > > > I see you added LE and BE versions: Why are both needed? > > > And if they are needed, why is there only AYUV and not AYUV > > > and VUYA? > > > > I noticed LE and BE versions are added for some of the added pixel > > format, out of the compatibility for big-endian and little-endian(IMHO). > > And that's the reason I add it for Y210 and Y410. > > > > I'm not sure I understood it correctly, LE/BE version is necessary for > > newly added pixel format right? > > > > It depends on the definition of the pixel format. AYUV is defined as > 4 consecutive BYTEs, which means its identical on LE and BE. > Y210 is defined as being stored as an array of 4 WORDs (Y0, U, Y1, V). > For a WORD, the difference of LE/BE matters. > Y410 is defined as being stored as a single DWORD, again LE/BE matters here. > > Obviously the differences in LE/BE need to be implemented properly as > well, for Y210 for each WORD, and for Y410 for the entire DWORD. I wonder if only the LE variants would be sufficient for the time being. Or is it (theoretically) possible to use this code on BE? Carl Eugen ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/6] lavu/pixfmt: add new pixel format ayuv/y210/y410
> -Original Message- > From: ffmpeg-devel [mailto:ffmpeg-devel-boun...@ffmpeg.org] On Behalf > Of Michael Niedermayer > Sent: Wednesday, September 11, 2019 23:06 > To: FFmpeg development discussions and patches de...@ffmpeg.org> > Subject: Re: [FFmpeg-devel] [PATCH 1/6] lavu/pixfmt: add new pixel format > ayuv/y210/y410 > > > Content-Type: text/plain; charset=y > > error: cannot convert from y to UTF-8 > fatal: could not parse patch Occasionally meet this prompt while sending out the patch: "The following files are 8bit, but do not declare a Content-Transfer-Encoding. 0001-lavu-pixfmt-add-new-pixel-format-ayuv-y210-y410.patch Which 8bit encoding should I declare [UTF-8]?" Seems I should press enter to choose the default [UTF-8] charset instead of pressing "y". This patch has been resent, thanks. - linjie ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/6] lavu/pixfmt: add new pixel format ayuv/y210/y410
Content-Type: text/plain; charset=y error: cannot convert from y to UTF-8 fatal: could not parse patch On Wed, Sep 11, 2019 at 12:05:58AM +0800, Linjie Fu wrote: > Add some packed pixel formats for hardware decode support in VAAPI > and QSV: > > 4:2:2 10 bit: Y210 > 4:4:4 8 bit: AYUV > 4:4:4 10 bit: Y410 > > Signed-off-by: Linjie Fu > --- > libavutil/pixdesc.c | 62 > +++ > libavutil/pixfmt.h| 9 +++ > libavutil/tests/pixfmt_best.c | 1 + > libavutil/version.h | 2 +- > 4 files changed, 73 insertions(+), 1 deletion(-) [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Elect your leaders based on what they did after the last election, not based on what they say before an election. signature.asc Description: PGP signature ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/6] lavu/pixfmt: add new pixel format ayuv/y210/y410
> -Original Message- > From: ffmpeg-devel [mailto:ffmpeg-devel-boun...@ffmpeg.org] On Behalf > Of Hendrik Leppkes > Sent: Wednesday, September 11, 2019 15:28 > To: FFmpeg development discussions and patches de...@ffmpeg.org> > Subject: Re: [FFmpeg-devel] [PATCH 1/6] lavu/pixfmt: add new pixel format > ayuv/y210/y410 > > On Wed, Sep 11, 2019 at 5:20 AM Fu, Linjie wrote: > > > > > -Original Message- > > > From: ffmpeg-devel [mailto:ffmpeg-devel-boun...@ffmpeg.org] On > Behalf > > > Of Carl Eugen Hoyos > > > Sent: Wednesday, September 11, 2019 03:25 > > > To: FFmpeg development discussions and patches > > de...@ffmpeg.org> > > > Subject: Re: [FFmpeg-devel] [PATCH 1/6] lavu/pixfmt: add new pixel > format > > > ayuv/y210/y410 > > > > > > Am Di., 10. Sept. 2019 um 18:08 Uhr schrieb Linjie Fu > : > > > > > > > > Add some packed pixel formats for hardware decode support > > > > in VAAPI and QSV: > > > > > > > > 4:2:2 10 bit: Y210 > > > > 4:4:4 8 bit: AYUV > > > > 4:4:4 10 bit: Y410 > > > > > > Please add a short explanation (either in the commit message or > > > only in this thread) for which kind of samples these pixel formats > > > are needed. > > > > > > Or to say it differently: Why is the hardware outputting planar > > > formats for some samples and packed for others? > > > > I kind of remember that it was discussed in previous patch thread: > > Previously, media driver provided planar format(like 420 8 bit), > > but for HEVC Range Extension (422/444 8/10 bit), the decoded image > > is produced in packed format. And the reason is " because Windows > > expects it" as you have pointed. > > > > It could be updated in the commit message if this is good enough. > > > > > I see you added LE and BE versions: Why are both needed? > > > And if they are needed, why is there only AYUV and not AYUV > > > and VUYA? > > > > I noticed LE and BE versions are added for some of the added pixel > > format, out of the compatibility for big-endian and little-endian(IMHO). > > And that's the reason I add it for Y210 and Y410. > > > > I'm not sure I understood it correctly, LE/BE version is necessary for > > newly added pixel format right? > > > > It depends on the definition of the pixel format. AYUV is defined as > 4 consecutive BYTEs, which means its identical on LE and BE. > Y210 is defined as being stored as an array of 4 WORDs (Y0, U, Y1, V). > For a WORD, the difference of LE/BE matters. > Y410 is defined as being stored as a single DWORD, again LE/BE matters here. Got it. > Obviously the differences in LE/BE need to be implemented properly as > well, for Y210 for each WORD, and for Y410 for the entire DWORD. Thanks Hendrik, for the detailed explanation. It seems AV_RL16 should be used for Y210LE, but for Y410LE, AV_RL32 is needed instead. linjie ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/6] lavu/pixfmt: add new pixel format ayuv/y210/y410
On Wed, Sep 11, 2019 at 5:20 AM Fu, Linjie wrote: > > > -Original Message- > > From: ffmpeg-devel [mailto:ffmpeg-devel-boun...@ffmpeg.org] On Behalf > > Of Carl Eugen Hoyos > > Sent: Wednesday, September 11, 2019 03:25 > > To: FFmpeg development discussions and patches > de...@ffmpeg.org> > > Subject: Re: [FFmpeg-devel] [PATCH 1/6] lavu/pixfmt: add new pixel format > > ayuv/y210/y410 > > > > Am Di., 10. Sept. 2019 um 18:08 Uhr schrieb Linjie Fu : > > > > > > Add some packed pixel formats for hardware decode support > > > in VAAPI and QSV: > > > > > > 4:2:2 10 bit: Y210 > > > 4:4:4 8 bit: AYUV > > > 4:4:4 10 bit: Y410 > > > > Please add a short explanation (either in the commit message or > > only in this thread) for which kind of samples these pixel formats > > are needed. > > > > Or to say it differently: Why is the hardware outputting planar > > formats for some samples and packed for others? > > I kind of remember that it was discussed in previous patch thread: > Previously, media driver provided planar format(like 420 8 bit), > but for HEVC Range Extension (422/444 8/10 bit), the decoded image > is produced in packed format. And the reason is " because Windows > expects it" as you have pointed. > > It could be updated in the commit message if this is good enough. > > > I see you added LE and BE versions: Why are both needed? > > And if they are needed, why is there only AYUV and not AYUV > > and VUYA? > > I noticed LE and BE versions are added for some of the added pixel > format, out of the compatibility for big-endian and little-endian(IMHO). > And that's the reason I add it for Y210 and Y410. > > I'm not sure I understood it correctly, LE/BE version is necessary for > newly added pixel format right? > It depends on the definition of the pixel format. AYUV is defined as 4 consecutive BYTEs, which means its identical on LE and BE. Y210 is defined as being stored as an array of 4 WORDs (Y0, U, Y1, V). For a WORD, the difference of LE/BE matters. Y410 is defined as being stored as a single DWORD, again LE/BE matters here. Obviously the differences in LE/BE need to be implemented properly as well, for Y210 for each WORD, and for Y410 for the entire DWORD. - Hendrik ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/6] lavu/pixfmt: add new pixel format ayuv/y210/y410
> -Original Message- > From: ffmpeg-devel [mailto:ffmpeg-devel-boun...@ffmpeg.org] On Behalf > Of Carl Eugen Hoyos > Sent: Wednesday, September 11, 2019 03:25 > To: FFmpeg development discussions and patches de...@ffmpeg.org> > Subject: Re: [FFmpeg-devel] [PATCH 1/6] lavu/pixfmt: add new pixel format > ayuv/y210/y410 > > Am Di., 10. Sept. 2019 um 18:08 Uhr schrieb Linjie Fu : > > > > Add some packed pixel formats for hardware decode support > > in VAAPI and QSV: > > > > 4:2:2 10 bit: Y210 > > 4:4:4 8 bit: AYUV > > 4:4:4 10 bit: Y410 > > Please add a short explanation (either in the commit message or > only in this thread) for which kind of samples these pixel formats > are needed. > > Or to say it differently: Why is the hardware outputting planar > formats for some samples and packed for others? I kind of remember that it was discussed in previous patch thread: Previously, media driver provided planar format(like 420 8 bit), but for HEVC Range Extension (422/444 8/10 bit), the decoded image is produced in packed format. And the reason is " because Windows expects it" as you have pointed. It could be updated in the commit message if this is good enough. > I see you added LE and BE versions: Why are both needed? > And if they are needed, why is there only AYUV and not AYUV > and VUYA? I noticed LE and BE versions are added for some of the added pixel format, out of the compatibility for big-endian and little-endian(IMHO). And that's the reason I add it for Y210 and Y410. I'm not sure I understood it correctly, LE/BE version is necessary for newly added pixel format right? > > Signed-off-by: Linjie Fu > > --- > > libavutil/pixdesc.c | 62 > +++ > > libavutil/pixfmt.h| 9 +++ > > libavutil/tests/pixfmt_best.c | 1 + > > libavutil/version.h | 2 +- > > 4 files changed, 73 insertions(+), 1 deletion(-) > > > diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h > > index d78e863..0176a2a 100644 > > --- a/libavutil/pixfmt.h > > +++ b/libavutil/pixfmt.h > > @@ -348,6 +348,12 @@ enum AVPixelFormat { > > AV_PIX_FMT_NV24, ///< planar YUV 4:4:4, 24bpp, 1 plane for Y and 1 > plane for the UV components, which are interleaved (first byte U and the > following byte V) > > AV_PIX_FMT_NV42, ///< as above, but U and V bytes are swapped > > > > +AV_PIX_FMT_Y210BE,///< packed YUV 4:2:2, 32bpp, Y0 Cb Y1 Cr, big- > endian > > +AV_PIX_FMT_Y210LE,///< packed YUV 4:2:2, 32bpp, Y0 Cb Y1 Cr, > > little- > endian > > I believe they are 16bpp. Thanks for pointing out this, and since Y210 is a 10 bit 4:2:2 format, IMHO 20bpp is expected information. (see AV_PIX_FMT_YUV422P10LE,///< planar YUV 4:2:2, 20bpp) Regards, linjie ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/6] lavu/pixfmt: add new pixel format ayuv/y210/y410
Am Di., 10. Sept. 2019 um 18:08 Uhr schrieb Linjie Fu : > > Add some packed pixel formats for hardware decode support > in VAAPI and QSV: > > 4:2:2 10 bit: Y210 > 4:4:4 8 bit: AYUV > 4:4:4 10 bit: Y410 Please add a short explanation (either in the commit message or only in this thread) for which kind of samples these pixel formats are needed. Or to say it differently: Why is the hardware outputting planar formats for some samples and packed for others? I see you added LE and BE versions: Why are both needed? And if they are needed, why is there only AYUV and not AYUV and VUYA? > Signed-off-by: Linjie Fu > --- > libavutil/pixdesc.c | 62 > +++ > libavutil/pixfmt.h| 9 +++ > libavutil/tests/pixfmt_best.c | 1 + > libavutil/version.h | 2 +- > 4 files changed, 73 insertions(+), 1 deletion(-) > diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h > index d78e863..0176a2a 100644 > --- a/libavutil/pixfmt.h > +++ b/libavutil/pixfmt.h > @@ -348,6 +348,12 @@ enum AVPixelFormat { > AV_PIX_FMT_NV24, ///< planar YUV 4:4:4, 24bpp, 1 plane for Y and 1 > plane for the UV components, which are interleaved (first byte U and the > following byte V) > AV_PIX_FMT_NV42, ///< as above, but U and V bytes are swapped > > +AV_PIX_FMT_Y210BE,///< packed YUV 4:2:2, 32bpp, Y0 Cb Y1 Cr, > big-endian > +AV_PIX_FMT_Y210LE,///< packed YUV 4:2:2, 32bpp, Y0 Cb Y1 Cr, > little-endian I believe they are 16bpp. Carl Eugen ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".