Opened 6 years ago

Closed 6 years ago

#5359 closed enhancement (wontfix)

j2k parser

Reported by: Carl Eugen Hoyos Owned by:
Priority: wish Component: avcodec
Version: git-master Keywords: j2k
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

It is possible (and was done by a user) to concatenate jpeg 2000 frames:

$ ffmpeg -f lavfi -i testsrc=r=1:d=5 -vcodec jpeg2000 -f rawvideo out.j2m

The resulting output file cannot be decoded except for the first frame because no jpeg 2000 parser exists:

$ ffmpeg -i out.j2m -f null -
ffmpeg version N-79105-gdf34b70 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.7 (SUSE Linux)
  configuration: --enable-gpl
  libavutil      55. 19.100 / 55. 19.100
  libavcodec     57. 28.103 / 57. 28.103
  libavformat    57. 28.102 / 57. 28.102
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 39.102 /  6. 39.102
  libswscale      4.  0.100 /  4.  0.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
[jpeg2000 @ 0x3397960] bpno became negative
    Last message repeated 339 times
Input #0, j2k_pipe, from 'out.j2m':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: jpeg2000 (JPEG 2000 codestream restriction 0), rgb24, 320x240, 25 tbr, 25 tbn, 25 tbc
Output #0, null, to 'pipe:':
  Metadata:
    encoder         : Lavf57.28.102
    Stream #0:0: Video: wrapped_avframe, rgb24, 320x240, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.28.103 wrapped_avframe
Stream mapping:
  Stream #0:0 -> #0:0 (jpeg2000 (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
[jpeg2000 @ 0x339e560] bpno became negative
    Last message repeated 339 times
frame=    1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A speed=1.33x
video:0kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

Change History (3)

comment:1 by Elon Musk, 6 years ago

You sure this is real j2m and not something else?

in reply to:  1 comment:2 by Carl Eugen Hoyos, 6 years ago

Replying to richardpl:

You sure this is real j2m and not something else?

What is real j2m?
I thought I used an extension that is not yet used by any specification, sorry if I made a mistake.

comment:3 by Elon Musk, 6 years ago

Resolution: wontfix
Status: newclosed

This can't be fixed, the format is broken to begin with, as it allows SOT marker to not specify size which ultimately disallows proper parsing.

Note: See TracTickets for help on using tickets.