Opened 11 years ago

Closed 9 years ago

#2586 closed enhancement (fixed)

Unsupported 4k DCI Jpeg2000 file

Reported by: Andrew Hunter Owned by:
Priority: wish Component: avcodec
Version: git-master Keywords: j2k 4k crash
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: yes

Description (last modified by Carl Eugen Hoyos)

Jpeg2000 encoded from OpenDCP Cinema4k profile fails with the following error.

Error is also reproduceable on the .j2c source file, attached.

$ ffplay -threads 8 'K:\ISAIAH''S BIRTHDAY\IB_MXF\ISAIAHS_BIRTHDAY.REEL00
1.PIX.mxf'-lowres 1
ffplay version N-53033-g56ba331 Copyright (c) 2003-2013 the FFmpeg developers
  built on May 13 2013 22:23:31 with gcc 4.7.3 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfi
g --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libcaca --enable-libfreetyp
e --enable-libgsm --enable-libilbc --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-li
bopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheo
ra --enable-libtwolame --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libx264
 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      52. 31.100 / 52. 31.100
  libavcodec     55.  9.100 / 55.  9.100
  libavformat    55.  7.100 / 55.  7.100
  libavdevice    55.  0.100 / 55.  0.100
  libavfilter     3. 65.100 /  3. 65.100
  libswscale      2.  3.100 /  2.  3.100
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  3.100 / 52.  3.100
    nan A-V: [mxf @ 00000000023d1500]  0
"OPAtom" with 2 ECs - assuming OP1a
.000 fd=   0 aq=    0KB vq=  
[jpeg2000 @ 00000000023d9a80]   unsupported marker 0xFF5F at pos 0x10B

Attachments (3)

ISAIAHS_BIRTHDAY.REEL001.00101979.j2c (275.5 KB ) - added by Andrew Hunter 11 years ago.
Sample 4k Jpeg2000
fdfcde74_excerpt_000000-000023.mxf (38.2 KB ) - added by Carl Eugen Hoyos 10 years ago.
http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/168934
fdfcde74_excerpt_000000-000023.mkv (8.8 KB ) - added by Carl Eugen Hoyos 10 years ago.

Download all attachments as: .zip

Change History (13)

by Andrew Hunter, 11 years ago

Sample 4k Jpeg2000

comment:1 by Carl Eugen Hoyos, 11 years ago

Keywords: j2k added; Cinema4k DCP Jpeg2000 removed

I cannot reproduce the crash, please provide gdb output as explained on http://ffmpeg.org/bugreports.html

comment:2 by Carl Eugen Hoyos, 11 years ago

Description: modified (diff)

comment:3 by Andrew Hunter, 11 years ago

Hey Cehoyos,

The crash aspect is perhaps platform specific, more interested in getting the Jpeg2000 to display. Are you able to read the sample?

Running pre-compiled windows binaries, app crash is reported as:

Problem signature:

Problem Event Name: APPCRASH
Application Name: ffplay.exe
Application Version: 0.0.0.0
Application Timestamp: 5191a094
Fault Module Name: StackHash_89cf
Fault Module Version: 6.1.7601.17725
Fault Module Timestamp: 4ec4aa8e
Exception Code: c0000374
Exception Offset: 00000000000c40f2
OS Version: 6.1.7601.2.1.0.256.1
Locale ID: 1033
Additional Information 1: 89cf
Additional Information 2: 89cff8509c07302aed9e8b8d4a017c24
Additional Information 3: e5c8
Additional Information 4: e5c8276b82f09a5c6049e7a73f482846

comment:4 by Carl Eugen Hoyos, 11 years ago

You will have to provide a backtrace with gdb, above does not help at all unfortunately.
(gdb works fine on Windows.)

comment:5 by Nicolas Bertrand, 11 years ago

Analyzed by developer: set
Component: undeterminedavcodec
Keywords: jpeg2000 4K added
Reproduced by developer: set
Status: newopen

Hi,
I tried the image,
it says unsupported marker 0xFF5F, is the POC marker( Progression Order change). this marker is not handled bu the jpeg2000 decoder. And its specific for 4K. AS DCI says :
For a 4K distribution, there shall be exactly one POC marker segment in the main header. Other POC marker segments are forbidden. The POC marker segment shall specify exactly two progressions having the following parameters:
DCI Digital Cinema System Specification v.1.2 Page 41

  • First progression: RSpoc = 0, CSpoc = 0, LYEpoc = L, REpoc = D, CEpoc = 3, Ppoc = 4
  • Second progression: RSpoc = D, CSpoc = 0, LYEpoc = L, REpoc = D+1, CEpoc = 3, Ppoc = 4
  • In the above, D is the number of wavelet transform levels and L is the number of quality layers. The constant 3 specifies the number of color components, and the constant 4 specifies CPRL progression.

Note: This POC marker segment ensures that all 2K data precede all 4K data. Within each portion (2K, 4K), all data for color component 0 precede all data for color component 1, which in turn precede all data for color component 2.

There are also in management of TPsot market who have to handle 6 tileparts in 4K, instead of 3 in 2K

Sample command :

./ffmpeg -v verbose -y -i /home/nicolas/Téléchargements/ISAIAHS_BIRTHDAY.REEL001.00101979.j2c -vcodec jpeg2000 -strict -2 /tmp/out.tiff
ffmpeg version N-53811-gc8faa47 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jun  3 2013 18:16:12 with gcc 4.6 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  configuration: --prefix=/home/nicolas/dev/local --enable-pic --enable-libopenjpeg
  libavutil      52. 34.100 / 52. 34.100
  libavcodec     55. 15.100 / 55. 15.100
  libavformat    55.  8.102 / 55.  8.102
  libavdevice    55.  2.100 / 55.  2.100
  libavfilter     3. 74.101 /  3. 74.101
  libswscale      2.  3.100 /  2.  3.100
  libswresample   0. 17.102 /  0. 17.102
[jpeg2000 @ 0x29818a0] unsupported marker 0xFF5F at pos 0x10B
[jpeg2000 @ 0x29818a0] TPsot 3 too big
[jpeg2000 @ 0x29818a0] error during processing marker segment ff90
Input #0, image2, from '/home/nicolas/Téléchargements/ISAIAHS_BIRTHDAY.REEL001.00101979.j2c':
  Duration: 00:00:00.04, start: 0.000000, bitrate: N/A
    Stream #0:0: Video: jpeg2000 (JPEG 2000 digital cinema 4K), xyz12le, 3840x2160, 25 tbr, 25 tbn, 25 tbc
[graph 0 input from stream 0:0 @ 0x296c860] w:3840 h:2160 pixfmt:xyz12le tb:1/25 fr:25/1 sar:0/1 sws_param:flags=2
[auto-inserted scaler 0 @ 0x296d440] w:iw h:ih flags:'0x4' interl:0
[format @ 0x296e720] auto-inserting filter 'auto-inserted scaler 0' between the filter 'Parsed_null_0' and the filter 'format'
[auto-inserted scaler 0 @ 0x296d440] w:3840 h:2160 fmt:xyz12le sar:0/1 -> w:3840 h:2160 fmt:yuv444p sar:0/1 flags:0x4
Output #0, image2, to '/tmp/out.tiff':
  Metadata:
    encoder         : Lavf55.8.102
    Stream #0:0: Video: jpeg2000, yuv444p, 3840x2160, q=2-31, 200 kb/s, 90k tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (jpeg2000 -> jpeg2000)
Press [q] to stop, [?] for help
[jpeg2000 @ 0x90bc040] unsupported marker 0xFF5F at pos 0x10B
[jpeg2000 @ 0x90bc040] TPsot 3 too big
[jpeg2000 @ 0x90bc040] error during processing marker segment ff90
No more output streams to write to, finishing.
frame=    0 fps=0.0 q=-1.0 Lsize=N/A time=00:00:00.00 bitrate=N/A    
video:0kB audio:0kB subtitle:0 global headers:0kB muxing overhead -inf%
Output file is empty, nothing was encoded (check -ss / -t / -frames parameters if used)

Tested with libopenjpeg is works

./ffplay -lowres 2  /home/nicolas/Téléchargements/ISAIAHS_BIRTHDAY.REEL001.00101979.j2c -vcodec libopenjpeg

comment:6 by Carl Eugen Hoyos, 11 years ago

Keywords: 4k added; jpeg2000 4K removed

comment:7 by Carl Eugen Hoyos, 11 years ago

Keywords: crash added
Priority: normalwish
Summary: FFplay crashes on 4k DCI Jpeg200Unsupported 4k DCI Jpeg2000 file
Type: defectenhancement

The original crash that was reproducible with ffmpeg, a regression since e2e9bee / c81a706, was fixed by Michael (73ffab4), the file currently can only be decoded with -vcodec libopenjpeg.
I leave this open as a feature request for decoding with the native jpeg2000 decoder.

by Carl Eugen Hoyos, 10 years ago

comment:8 by Carl Eugen Hoyos, 10 years ago

comment:9 by Carl Eugen Hoyos, 9 years ago

The attached sample fdfcde74_excerpt_000000-000023.mxf​ was fixed by Michael in 81471d82467647994067203b21c29183ac5f25be (ticket #4602).

comment:10 by Michael Niedermayer, 9 years ago

Resolution: fixed
Status: openclosed
Note: See TracTickets for help on using tickets.