[FFmpeg-trac] #10058(undetermined:new): jpeg2000: support paletted images
FFmpeg
trac at avcodec.org
Mon Nov 21 01:56:26 EET 2022
#10058: jpeg2000: support paletted images
-------------------------------------+-------------------------------------
Reporter: ami_stuff | Owner: (none)
Type: defect | Status: new
Priority: normal | Component:
| undetermined
Version: unspecified | Resolution:
Keywords: | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Comment (by ami_stuff):
Replying to [comment:1 Balling]:
> >openjpeg decodes it with palette
>
> No, it does not.
>
> ffplay -i palettedImage.jp2 -vcodec libopenjpeg
>
> while
> ffplay -i palettedImage.jp2 -vcodec jpeg2000
>
> works.
something really strange happens here
with the ffmpeg from my system I get color output:
{{{
ffmpeg -vcodec jpeg2000 -i 'palettedImage.jp2' -pix_fmt bgr24 -y out.bmp
ffmpeg version 4.2.7-0ubuntu0.1 Copyright (c) 2000-2022 the FFmpeg
developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
configuration: --prefix=/usr --extra-version=0ubuntu0.1
--toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu
--incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl
--disable-stripping --enable-avresample --disable-filter=resample
--enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom
--enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca
--enable-libcdio --enable-libcodec2 --enable-libflite --enable-
libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme
--enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa
--enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-
libpulse --enable-librsvg --enable-librubberband --enable-libshine
--enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh
--enable-libtheora --enable-libtwolame --enable-libvidstab --enable-
libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-
libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi
--enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl
--enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883
--enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264
--enable-shared
WARNING: library configuration mismatch
avcodec configuration: --prefix=/usr --extra-version=0ubuntu0.1
--toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu
--incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl
--disable-stripping --enable-avresample --disable-filter=resample
--enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom
--enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca
--enable-libcdio --enable-libcodec2 --enable-libflite --enable-
libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme
--enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa
--enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-
libpulse --enable-librsvg --enable-librubberband --enable-libshine
--enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh
--enable-libtheora --enable-libtwolame --enable-libvidstab --enable-
libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-
libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi
--enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl
--enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883
--enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264
--enable-shared --enable-version3 --disable-doc --disable-programs
--enable-libaribb24 --enable-liblensfun --enable-libopencore_amrnb
--enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
[jpeg2000 @ 0x5623cbbd2700] Progression order RPCL
Input #0, j2k_pipe, from 'palettedImage.jp2':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: jpeg2000, pal8, 1024x1024, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (jpeg2000 (native) -> bmp (native))
Press [q] to stop, [?] for help
[jpeg2000 @ 0x5623cbc1c640] Progression order RPCL
Output #0, image2, to 'out.bmp':
Metadata:
encoder : Lavf58.29.100
Stream #0:0: Video: bmp, bgr24, 1024x1024, q=2-31, 200 kb/s, 25 fps,
25 tbn, 25 tbc
Metadata:
encoder : Lavc58.54.100 bmp
frame= 1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A
speed=0.317x
video:3072kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: unknown
}}}
{{{
VFS..D jpeg2000 JPEG 2000
VF...D libopenjpeg OpenJPEG JPEG 2000 (codec jpeg2000)
}}}
but with my own build I get only grayscale output:
{{{
./ffmpeg -vcodec jpeg2000 -i palettedImage.jp2 -pix_fmt bgr24 -y out.bmp
ffmpeg version N-109101-g822da7a317 Copyright (c) 2000-2022 the FFmpeg
developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
configuration:
libavutil 57. 42.100 / 57. 42.100
libavcodec 59. 52.102 / 59. 52.102
libavformat 59. 34.101 / 59. 34.101
libavdevice 59. 8.101 / 59. 8.101
libavfilter 8. 50.100 / 8. 50.100
libswscale 6. 8.112 / 6. 8.112
libswresample 4. 9.100 / 4. 9.100
[jpeg2000 @ 0x55770e74bdc0] SOC marker not present
Input #0, j2k_pipe, from 'palettedImage.jp2':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: jpeg2000, pal8, 1024x1024, 25 fps, 25 tbr, 25 tbn
Stream mapping:
Stream #0:0 -> #0:0 (jpeg2000 (native) -> bmp (native))
Press [q] to stop, [?] for help
[jpeg2000 @ 0x55770e75e940] SOC marker not present
Error while decoding stream #0:0: Invalid data found when processing input
[jpeg2000 @ 0x55770e75fec0] Progression order RPCL
Output #0, image2, to 'out.bmp':
Metadata:
encoder : Lavf59.34.101
Stream #0:0: Video: bmp, bgr24(pc, gbr/unknown/unknown, progressive),
1024x1024, q=2-31, 200 kb/s, 25 fps, 25 tbn
Metadata:
encoder : Lavc59.52.102 bmp
frame= 0 fps=0.0 q=-0.0 size= 0kB time=00:00:00.04 bitrate=
0.0kbits/[image2 @ 0x55770e74d340] The specified filename 'out.bmp' does
not contain an image sequence pattern or a pattern is invalid.
[image2 @ 0x55770e74d340] Use a pattern such as %03d for an image sequence
or use the -update option (with -frames:v 1 if needed) to write a single
image.
frame= 1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A
speed=0.306x
video:3072kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
muxing overhead: unknown
}}}
My own build has no openjpeg support.
And if that's not enough, the ffmpeg from my system crashes when I force
usage of libopenjpeg:
{{{
ffmpeg -vcodec libopenjpeg -i 'palettedImage.jp2' -pix_fmt bgr24 -y
out.bmp
ffmpeg version 4.2.7-0ubuntu0.1 Copyright (c) 2000-2022 the FFmpeg
developers
built with gcc 9 (Ubuntu 9.4.0-1ubuntu1~20.04.1)
configuration: --prefix=/usr --extra-version=0ubuntu0.1
--toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu
--incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl
--disable-stripping --enable-avresample --disable-filter=resample
--enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom
--enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca
--enable-libcdio --enable-libcodec2 --enable-libflite --enable-
libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme
--enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa
--enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-
libpulse --enable-librsvg --enable-librubberband --enable-libshine
--enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh
--enable-libtheora --enable-libtwolame --enable-libvidstab --enable-
libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-
libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi
--enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl
--enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883
--enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264
--enable-shared
WARNING: library configuration mismatch
avcodec configuration: --prefix=/usr --extra-version=0ubuntu0.1
--toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu
--incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl
--disable-stripping --enable-avresample --disable-filter=resample
--enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom
--enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca
--enable-libcdio --enable-libcodec2 --enable-libflite --enable-
libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme
--enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa
--enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-
libpulse --enable-librsvg --enable-librubberband --enable-libshine
--enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh
--enable-libtheora --enable-libtwolame --enable-libvidstab --enable-
libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-
libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi
--enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl
--enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883
--enable-nvenc --enable-chromaprint --enable-frei0r --enable-libx264
--enable-shared --enable-version3 --disable-doc --disable-programs
--enable-libaribb24 --enable-liblensfun --enable-libopencore_amrnb
--enable-libopencore_amrwb --enable-libtesseract --enable-libvo_amrwbenc
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libavresample 4. 0. 0 / 4. 0. 0
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
Input #0, j2k_pipe, from 'palettedImage.jp2':
Duration: N/A, bitrate: N/A
Stream #0:0: Video: jpeg2000, gray, 1024x1024, 25 tbr, 25 tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (jpeg2000 (libopenjpeg) -> bmp (native))
Press [q] to stop, [?] for help
free(): invalid pointer
}}}
{{{
==20017== Invalid write of size 1
==20017== at 0x53912C8: ??? (in /usr/lib/x86_64-linux-
gnu/libavcodec.so.58.54.100)
==20017== by 0x50F12BF: ??? (in /usr/lib/x86_64-linux-
gnu/libavcodec.so.58.54.100)
==20017== by 0x50F1FC7: avcodec_send_packet (in /usr/lib/x86_64-linux-
gnu/libavcodec.so.58.54.100)
==20017== by 0x4DC9F22: ??? (in /usr/lib/x86_64-linux-
gnu/libavformat.so.58.29.100)
==20017== by 0x4DD2BEF: avformat_find_stream_info (in /usr/lib/x86_64
-linux-gnu/libavformat.so.58.29.100)
==20017== by 0x11D3E3: ??? (in /usr/bin/ffmpeg)
==20017== by 0x11EFC3: ??? (in /usr/bin/ffmpeg)
==20017== by 0x115DD7: main (in /usr/bin/ffmpeg)
==20017== Address 0x11d1b28f is 0 bytes after a block of size 1,048,655
alloc'd
==20017== at 0x483E0F0: memalign (in /usr/lib/x86_64-linux-gnu/valgrind
/vgpreload_memcheck-amd64-linux.so)
==20017== by 0x483E212: posix_memalign (in /usr/lib/x86_64-linux-
gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==20017== by 0x6598FFC: av_malloc (in /usr/lib/x86_64-linux-
gnu/libavutil.so.56.31.100)
==20017== by 0x65773AC: av_buffer_alloc (in /usr/lib/x86_64-linux-
gnu/libavutil.so.56.31.100)
==20017== by 0x6577431: av_buffer_allocz (in /usr/lib/x86_64-linux-
gnu/libavutil.so.56.31.100)
==20017== by 0x6577BBC: av_buffer_pool_get (in /usr/lib/x86_64-linux-
gnu/libavutil.so.56.31.100)
==20017== by 0x50F36BB: avcodec_default_get_buffer2 (in /usr/lib/x86_64
-linux-gnu/libavcodec.so.58.54.100)
==20017== by 0x50F3F5A: ??? (in /usr/lib/x86_64-linux-
gnu/libavcodec.so.58.54.100)
==20017== by 0x54BB197: ??? (in /usr/lib/x86_64-linux-
gnu/libavcodec.so.58.54.100)
==20017== by 0x5390D80: ??? (in /usr/lib/x86_64-linux-
gnu/libavcodec.so.58.54.100)
==20017== by 0x50F12BF: ??? (in /usr/lib/x86_64-linux-
gnu/libavcodec.so.58.54.100)
==20017== by 0x50F1FC7: avcodec_send_packet (in /usr/lib/x86_64-linux-
gnu/libavcodec.so.58.54.100)
==20017==
==20017== Invalid read of size 4
==20017== at 0x6577505: av_buffer_unref (in /usr/lib/x86_64-linux-
gnu/libavutil.so.56.31.100)
==20017== by 0x6583A1B: av_frame_unref (in /usr/lib/x86_64-linux-
gnu/libavutil.so.56.31.100)
==20017== by 0x6583BAD: av_frame_free (in /usr/lib/x86_64-linux-
gnu/libavutil.so.56.31.100)
==20017== by 0x4DC9EE5: ??? (in /usr/lib/x86_64-linux-
gnu/libavformat.so.58.29.100)
==20017== by 0x4DD2BEF: avformat_find_stream_info (in /usr/lib/x86_64
-linux-gnu/libavformat.so.58.29.100)
==20017== by 0x11D3E3: ??? (in /usr/bin/ffmpeg)
==20017== by 0x11EFC3: ??? (in /usr/bin/ffmpeg)
==20017== by 0x115DD7: main (in /usr/bin/ffmpeg)
==20017== Address 0x121a000f15000b1b is not stack'd, malloc'd or
(recently) free'd
==20017==
==20017==
==20017== Process terminating with default action of signal 11 (SIGSEGV)
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/10058#comment:2>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list