[FFmpeg-trac] #9693(swscale:new): change of matrix cannot happen on full range
FFmpeg
trac at avcodec.org
Sat Mar 19 22:58:56 EET 2022
#9693: change of matrix cannot happen on full range
---------------------------------+--------------------------------------
Reporter: Balling | Type: defect
Status: new | Priority: important
Component: swscale | Version: git-master
Keywords: zscale | Blocked By:
Blocking: | Reproduced by developer: 1
Analyzed by developer: 0 |
---------------------------------+--------------------------------------
Summary of the bug:
I have BT.709 sample that I want to do a jpeg image from, yet because std-
complient jpeg is only bt.601 full range and thus the change of matrix
must occur it just sees hevc video as bt.601 full range and does a no-op!
Does not happen in png (remove gAMA from png). So apparently
c523724c693ee031d8b5351aff6232a1f7d86876 was not enough!
How to reproduce:
{{{
PS C:\Users\xxxx>ffmpeg.exe -i "this one does it.mp4" -frames:v 1 -q:v 1
318281.jpg
ffmpeg version N-105504-g04cc7a5548-20220207 Copyright (c) 2000-2022 the
FFmpeg developers
built with gcc 11.2.0 (crosstool-NG 1.24.0.498_5075e1f)
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static
--pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64
--target-os=mingw32 --enable-gpl --enable-version3 --disable-debug
--enable-shared --disable-static --disable-w32threads --enable-pthreads
--enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype
--enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig
--enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf
--disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-
avisynth --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac
--enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme
--enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus
--enable-librist --enable-libtheora --enable-libvpx --enable-libwebp
--enable-lv2 --enable-libmfx --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-
libopenmpt --enable-librav1e --enable-librubberband --enable-schannel
--enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1
--enable-libtwolame --enable-libuavs3d --disable-libdrm --disable-vaapi
--enable-libvidstab --enable-vulkan --enable-libshaderc --enable-
libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-
libxvid --enable-libzimg --enable-libzvbi --extra-
cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread
--extra-ldexeflags= --extra-libs=-lgomp --extra-version=20220207
libavutil 57. 21.100 / 57. 21.100
libavcodec 59. 20.100 / 59. 20.100
libavformat 59. 17.101 / 59. 17.101
libavdevice 59. 5.100 / 59. 5.100
libavfilter 8. 26.101 / 8. 26.101
libswscale 6. 5.100 / 6. 5.100
libswresample 4. 4.100 / 4. 4.100
libpostproc 56. 4.100 / 56. 4.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'this one does it.mp4':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
creation_time : 2021-07-05T19:03:03.000000Z
com.apple.quicktime.description: [{"rParams":"2560000,{1080,
1920}","appRecord":"1","videoIndex":"1","userDevice":"iPhone11,8","userSystem":"14.2"}]
com.apple.quicktime.software:
{"TEEditor":"1"},{"isFastImport":"0"},{"transType":"2"},{"source":"1"}
com.apple.quicktime.copyright: ba465c12a45eb7a886ad4f22aa7710b6
Duration: 00:00:07.03, start: 0.000000, bitrate: 4004 kb/s
Stream #0:0[0x1](und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz,
stereo, fltp, 132 kb/s (default)
Metadata:
creation_time : 2021-07-05T19:03:03.000000Z
handler_name : Core Media Audio
vendor_id : [0][0][0][0]
Stream #0:1[0x2](und): Video: hevc (Main) (hvc1 / 0x31637668),
yuvj420p(pc, bt709), 720x1280, 3864 kb/s, 29.01 fps, 29 tbr, 600 tbn
(default)
Metadata:
creation_time : 2021-07-05T19:03:03.000000Z
handler_name : Core Media Video
vendor_id : [0][0][0][0]
encoder : HEVC
Stream mapping:
Stream #0:1 -> #0:0 (hevc (native) -> mjpeg (native))
Press [q] to stop, [?] for help
Output #0, image2, to '318281.jpg':
Metadata:
major_brand : qt
minor_version : 0
compatible_brands: qt
com.apple.quicktime.copyright: ba465c12a45eb7a886ad4f22aa7710b6
com.apple.quicktime.description: [{"rParams":"2560000,{1080,
1920}","appRecord":"1","videoIndex":"1","userDevice":"iPhone11,8","userSystem":"14.2"}]
com.apple.quicktime.software:
{"TEEditor":"1"},{"isFastImport":"0"},{"transType":"2"},{"source":"1"}
encoder : Lavf59.17.101
Stream #0:0(und): Video: mjpeg, yuvj420p(pc, bt709, progressive),
720x1280, q=2-31, 200 kb/s, 29 fps, 29 tbn (default)
Metadata:
creation_time : 2021-07-05T19:03:03.000000Z
handler_name : Core Media Video
vendor_id : [0][0][0][0]
encoder : Lavc59.20.100 mjpeg
Side data:
cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: N/A
frame= 1 fps=0.0 q=1.0 Lsize=N/A time=00:00:00.03 bitrate=N/A
speed=1.13x
video:105kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: unknown
}}}
The sample is here:
https://mega.nz/folder/5EMWDDrS#MlG_UA9CHvG633ldHvmnTQ/folder/tQtm0TpB
The downupstream issue is here
https://github.com/n00mkrad/flowframes/issues/84
zscale is affected too, foring does not work.
Patches should be submitted to the ffmpeg-devel mailing list and not this
bug tracker.
--
Ticket URL: <https://trac.ffmpeg.org/ticket/9693>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list