Opened 5 years ago

Closed 3 years ago

#2586 closed enhancement (fixed)

Unsupported 4k DCI Jpeg2000 file

Reported by: rexbron 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 cehoyos)

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 rexbron 5 years ago.
Sample 4k Jpeg2000
fdfcde74_excerpt_000000-000023.mxf (38.2 KB) - added by cehoyos 5 years ago.
http://thread.gmane.org/gmane.comp.video.ffmpeg.devel/168934
fdfcde74_excerpt_000000-000023.mkv (8.8 KB) - added by cehoyos 5 years ago.

Download all attachments as: .zip

Change History (13)

Changed 5 years ago by rexbron

Sample 4k Jpeg2000

comment:1 Changed 5 years ago by cehoyos

  • 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 Changed 5 years ago by cehoyos

  • Description modified (diff)

comment:3 Changed 5 years ago by rexbron

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 Changed 5 years ago by cehoyos

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

comment:5 Changed 5 years ago by Buxiness

  • Analyzed by developer set
  • Component changed from undetermined to avcodec
  • Keywords jpeg2000 4K added
  • Reproduced by developer set
  • Status changed from new to open

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 Changed 5 years ago by cehoyos

  • Keywords 4k added; jpeg2000 4K removed

comment:7 Changed 5 years ago by cehoyos

  • Keywords crash added
  • Priority changed from normal to wish
  • Summary changed from FFplay crashes on 4k DCI Jpeg200 to Unsupported 4k DCI Jpeg2000 file
  • Type changed from defect to enhancement

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.

Changed 5 years ago by cehoyos

comment:8 Changed 4 years ago by cehoyos

comment:9 Changed 3 years ago by cehoyos

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

comment:10 Changed 3 years ago by michael

  • Resolution set to fixed
  • Status changed from open to closed
Note: See TracTickets for help on using tickets.