Opened 3 years ago

Closed 3 years ago

Last modified 11 months ago

#8930 closed enhancement (fixed)

Pixel format 0x21112100 bits:8 is not implemented.

Reported by: ikorolev72 Owned by:
Priority: wish Component: avcodec
Version: git-master Keywords: mjpeg
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

Summary of the bug: Pixel format 0x21112100 bits:8 is not implemented.
How to reproduce:

Converting the attached file will result in the error "Pixel format 0x21112100 bit: 8 not implemented."

% ffmpeg -i 1602445422320867.jpeg 1.jpg

ffmpeg version 4.3 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 9.3.1 (GCC) 20200621
  configuration: --enable-gpl --enable-version3 --enable-sdl2 --enable-fontconfig --enable-gnutls --enable-iconv --enable-libass --enable-libdav1d --enable-libbluray --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libsrt --enable-libtheora --enable-libtwolame --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libzimg --enable-lzma --enable-zlib --enable-gmp --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvo-amrwbenc --enable-libmysofa --enable-libspeex --enable-libxvid --enable-libaom --enable-libgsm --disable-w32threads --enable-libmfx --enable-ffnvcodec --enable-cuda-llvm --enable-cuvid --enable-d3d11va --enable-nvenc --enable-nvdec --enable-dxva2 --enable-avisynth --enable-libopenmpt --enable-amf
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
[mjpeg @ 0000000000554f80] Pixel format 0x21112100 bits:8 is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
[image2 @ 0000000000552680] decoding for stream 0 failed
[image2 @ 0000000000552680] Could not find codec parameters for stream 0 (Video: mjpeg (Baseline), none(bt470bg/unknown/unknown), 150x100 [SAR 1:1 DAR 3:2]): unspecified pixel format
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Input #0, image2, from '1602445422320867.jpeg':
  Duration: 00:00:00.04, start: 0.000000, bitrate: 624 kb/s
    Stream #0:0: Video: mjpeg (Baseline), none(bt470bg/unknown/unknown), 150x100 [SAR 1:1 DAR 3:2], 25 tbr, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mjpeg (native) -> mjpeg (native))
Press [q] to stop, [?] for help
[mjpeg @ 000000000055c3c0] Pixel format 0x21112100 bits:8 is not implemented. Update your FFmpeg version to the newest one from Git. If the problem still occurs, it means that your file has a feature which has not been implemented.
Error while decoding stream #0:0: Not yet implemented in FFmpeg, patches welcome
Cannot determine format of input stream 0:0 after EOF
Error marking filters as finished
Conversion failed!

Attachments (1)

1602445422320867.jpeg (3.1 KB ) - added by ikorolev72 3 years ago.

Download all attachments as: .zip

Change History (8)

by ikorolev72, 3 years ago

Attachment: 1602445422320867.jpeg added

comment:1 by Carl Eugen Hoyos, 3 years ago

Priority: minorwish
Reproduced by developer: set
Status: newopen
Type: defectenhancement

For future tickets: Please always test current FFmpeg git head before reporting an issue.

comment:2 by Balling, 3 years ago

So this file means that:

0x21 11 21 00

First component is Horizontal sampling factor 2, Vertical sampling factor 1,
Second component is Horizontal sampling factor 1, Vertical sampling factor 1,
Third component is Horizontal sampling factor 2, Vertical sampling factor 1.
No 4th component.

So there is no vertical sampling? But Cb is preserved? Interesting.

BTW, if component ids are 'Y','C','c' it is PhotoYCC, and if it is 'Y','C','c','A' it is PhotoYCCA :) Just as used in Kodak Photo CD. As you can see Ci is one byte actually ;)

From mediainfo:

0A3  Nf - Number of image components in frame: 3 (0x03)
0A4  Component - 1 (0x1) - 2 (0x2) - 1 (0x1) (3 bytes)
0A4   Ci - Component identifier:            1 (0x01)
0A5   Hi - Horizontal sampling factor:      2 (0x2) - (4 bits)
0A5   Vi - Vertical sampling factor:        1 (0x1) - (4 bits)
0A6   Tqi - Quantization table destination selector: 0 (0x00)
0A7  Component - 2 (0x2) - 1 (0x1) - 1 (0x1) (3 bytes)
0A7   Ci - Component identifier:            2 (0x02)
0A8   Hi - Horizontal sampling factor:      1 (0x1) - (4 bits)
0A8   Vi - Vertical sampling factor:        1 (0x1) - (4 bits)
0A9   Tqi - Quantization table destination selector: 1 (0x01)
0AA  Component - 3 (0x3) - 2 (0x2) - 1 (0x1) (3 bytes)
0AA   Ci - Component identifier:            3 (0x03)
0AB   Hi - Horizontal sampling factor:      2 (0x2) - (4 bits)
0AB   Vi - Vertical sampling factor:        1 (0x1) - (4 bits)
0AC   Tqi - Quantization table destination selector: 1 (0x01)
Last edited 3 years ago by Balling (previous) (diff)

comment:3 by Carl Eugen Hoyos, 3 years ago

Resolution: fixed
Status: openclosed

Fixed in 3220a908ca3c9e2d4108464f2127fdbb7479e69a, thank you for the sample!

comment:4 by Balling, 3 years ago

It is not bit perfect with photoshop though, with a very interesting pattern, every other line is broken.

BTW, there are unsupported yet samples in this comment: https://forum.doom9.org/showthread.php?p=1678985#post1678985

0x41211100
0x11412100
0x11311100

And there is patch for support of 0x41212100 https://patchwork.ffmpeg.org/project/ffmpeg/patch/20180618201930.84734-1-derek.buitenhuis@gmail.com/

comment:6 by Leo Izen, 11 months ago

See: 0b352e350e77

comment:7 by Balling, 11 months ago

Will compare with Photoshop after 0b352e350e773673f11ea380f3507923c70e1175.

Note: See TracTickets for help on using tickets.