Opened 13 years ago
Closed 11 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 )
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)
Change History (13)
by , 13 years ago
| Attachment: | ISAIAHS_BIRTHDAY.REEL001.00101979.j2c added |
|---|
comment:1 by , 13 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 , 13 years ago
| Description: | modified (diff) |
|---|
comment:3 by , 13 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 , 13 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 , 13 years ago
| Analyzed by developer: | set |
|---|---|
| Component: | undetermined → avcodec |
| Keywords: | jpeg2000 4K added |
| Reproduced by developer: | set |
| Status: | new → 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 by , 13 years ago
| Keywords: | 4k added; jpeg2000 4K removed |
|---|
comment:7 by , 13 years ago
| Keywords: | crash added |
|---|---|
| Priority: | normal → wish |
| Summary: | FFplay crashes on 4k DCI Jpeg200 → Unsupported 4k DCI Jpeg2000 file |
| Type: | defect → 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.
by , 13 years ago
| Attachment: | fdfcde74_excerpt_000000-000023.mxf added |
|---|
by , 13 years ago
| Attachment: | fdfcde74_excerpt_000000-000023.mkv added |
|---|
comment:8 by , 12 years ago
I uploaded the sample from ticket #3435 to http://samples.ffmpeg.org/ffmpeg-bugs/trac/ticket2586
comment:9 by , 11 years ago
The attached sample fdfcde74_excerpt_000000-000023.mxf was fixed by Michael in 81471d82467647994067203b21c29183ac5f25be (ticket #4602).
comment:10 by , 11 years ago
| Resolution: | → fixed |
|---|---|
| Status: | open → closed |



Sample 4k Jpeg2000