[FFmpeg-devel] [FFmpeg-cvslog] fftools/ffplay: constrain supported YUV color spaces
Michael Niedermayer
michael at niedermayer.cc
Thu Oct 24 23:08:58 EEST 2024
On Thu, Oct 24, 2024 at 10:55:40AM +0200, Niklas Haas wrote:
> On Thu, 24 Oct 2024 02:44:34 +0200 Michael Niedermayer <michael at niedermayer.cc> wrote:
> > On Fri, Feb 09, 2024 at 08:14:46PM +0000, Niklas Haas wrote:
> > > ffmpeg | branch: master | Niklas Haas <git at haasn.dev> | Mon Feb 5 19:28:04 2024 +0100| [c619d20906d039060efbeaa822daf8e949f3ef24] | committer: Niklas Haas
> > >
> > > fftools/ffplay: constrain supported YUV color spaces
> > >
> > > SDL supports only these three matrices. Actually, it only supports these
> > > three combinations: BT.601+JPEG, BT.601+MPEG, BT.709+MPEG, but we have
> > > no way to restrict the specific *combination* of YUV range and YUV
> > > colorspace with the current filter design.
> > >
> > > See-Also: https://trac.ffmpeg.org/ticket/10839
> > >
> > > Instead of an incorrect conversion result, trying to play a YCgCo file
> > > with ffplay will simply error out with a "No conversion possible" error.
> > >
> > > > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c619d20906d039060efbeaa822daf8e949f3ef24
> > > ---
> > >
> > > fftools/ffplay.c | 9 +++++++++
> > > 1 file changed, 9 insertions(+)
> >
> > this causes a regression with
> >
> > ./ffplay test25.nut
> > use the mouse to scale it up a bit to better see
> > and then repeatly press arrow left, each time on the right side a different
> > mix of colors appears
> >
> > test25.nut is a mpeg4 yuv420p video with 25x25 size, infact codec and content seem not to matter
> >
> > ==1071990== Conditional jump or move depends on uninitialised value(s)
> > ==1071990== at 0x1324673: av_clip_uint8_c (common.h:208)
> > ==1071990== by 0x13260C3: yuv2plane1_8_c (output.c:426)
> > ==1071990== by 0x12FCC0D: lum_planar_vscale (vscale.c:53)
> > ==1071990== by 0x12F0E0A: swscale (swscale.c:498)
> > ==1071990== by 0x12F320A: scale_internal (swscale.c:1046)
> > ==1071990== by 0x12F239C: scale_cascaded (swscale.c:875)
> > ==1071990== by 0x12F27D4: scale_internal (swscale.c:937)
> > ==1071990== by 0x12F3BBD: ff_sws_slice_worker (swscale.c:1240)
> > ==1071990== by 0x13DC790: run_jobs (slicethread.c:65)
> > ==1071990== by 0x13DC866: thread_worker (slicethread.c:89)
> > ==1071990== by 0x694B608: start_thread (pthread_create.c:477)
> > ==1071990== by 0x6A85352: clone (clone.S:95)
> > ==1071990==
> > ==1071990== Thread 83:
> > ==1071990== Conditional jump or move depends on uninitialised value(s)
> > ==1071990== at 0x1324673: av_clip_uint8_c (common.h:208)
> > ==1071990== by 0x132602D: yuv2planeX_8_c (output.c:416)
> > ==1071990== by 0x12FD038: chr_planar_vscale (vscale.c:100)
> > ==1071990== by 0x12F0E0A: swscale (swscale.c:498)
> > ==1071990== by 0x12F320A: scale_internal (swscale.c:1046)
> > ==1071990== by 0x12F239C: scale_cascaded (swscale.c:875)
> > ==1071990== by 0x12F27D4: scale_internal (swscale.c:937)
> > ==1071990== by 0x12F3BBD: ff_sws_slice_worker (swscale.c:1240)
> > ==1071990== by 0x13DC790: run_jobs (slicethread.c:65)
> > ==1071990== by 0x13DC866: thread_worker (slicethread.c:89)
> > ==1071990== by 0x694B608: start_thread (pthread_create.c:477)
> > ==1071990== by 0x6A85352: clone (clone.S:95)
> > ==1071990==
> > ==1071990== Conditional jump or move depends on uninitialised value(s)
> > ==1071990== at 0x1324673: av_clip_uint8_c (common.h:208)
> > ==1071990== by 0x132602D: yuv2planeX_8_c (output.c:416)
> > ==1071990== by 0x12FD09E: chr_planar_vscale (vscale.c:101)
> > ==1071990== by 0x12F0E0A: swscale (swscale.c:498)
> > ==1071990== by 0x12F320A: scale_internal (swscale.c:1046)
> > ==1071990== by 0x12F239C: scale_cascaded (swscale.c:875)
> > ==1071990== by 0x12F27D4: scale_internal (swscale.c:937)
> > ==1071990== by 0x12F3BBD: ff_sws_slice_worker (swscale.c:1240)
> > ==1071990== by 0x13DC790: run_jobs (slicethread.c:65)
> > ==1071990== by 0x13DC866: thread_worker (slicethread.c:89)
> > ==1071990== by 0x694B608: start_thread (pthread_create.c:477)
> > ==1071990== by 0x6A85352: clone (clone.S:95)
> >
> > [...]
> > --
> > Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> >
> > "I am not trying to be anyone's saviour, I'm trying to think about the
> > future and not be sad" - Elon Musk
>
> Possibly an issue inside swscale, but I can't immediately see what. Can you
> please open a ticket for it please and assign it to me?
https://trac.ffmpeg.org/ticket/11265
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Avoid a single point of failure, be that a person or equipment.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20241024/a7eee219/attachment.sig>
More information about the ffmpeg-devel
mailing list