Opened 4 months ago

Closed 4 months ago

Last modified 4 months ago

#6182 closed defect (fixed)

scpr: crash with 16bpp

Reported by: ami_stuff Owned by:
Priority: important Component: avcodec
Version: git-master Keywords: scpr crash
Cc: Blocked By:
Blocking: Reproduced by developer: yes
Analyzed by developer: no

Description

decodes correctly with original codec

(gdb) r -i '/media/sdb1/f/sp/sp_16bit_q100_o.avi'  -f null -
Starting program: /media/sdb1/ffmpeg/ffmpeg_g -i '/media/sdb1/f/sp/sp_16bit_q100_o.avi'  -f null -
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1".
ffmpeg version 3.2.git Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 5.3.0 (Ubuntu 5.3.0-3ubuntu1~14.04) 20151204
  configuration: --disable-ffprobe --disable-ffserver --disable-ffplay --enable-gpl
  libavutil      55. 47.100 / 55. 47.100
  libavcodec     57. 81.100 / 57. 81.100
  libavformat    57. 66.102 / 57. 66.102
  libavdevice    57.  2.100 / 57.  2.100
  libavfilter     6. 73.100 /  6. 73.100
  libswscale      4.  3.101 /  4.  3.101
  libswresample   2.  4.100 /  2.  4.100
  libpostproc    54.  2.100 / 54.  2.100
Input #0, avi, from '/media/sdb1/f/sp/sp_16bit_q100_o.avi':
  Metadata:
    encoder         : Lavf57.36.100
  Duration: 00:00:04.44, start: 0.000000, bitrate: 727 kb/s
    Stream #0:0: Video: scpr (SCPR / 0x52504353), rgb0, 318x198, 714 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc
[New Thread 0xb68c6b40 (LWP 14539)]
[New Thread 0xb60c5b40 (LWP 14540)]
[New Thread 0xb58c4b40 (LWP 14541)]
[New Thread 0xb50c3b40 (LWP 14542)]
[New Thread 0xb48c2b40 (LWP 14543)]
[New Thread 0xb40c1b40 (LWP 14544)]
[New Thread 0xb38c0b40 (LWP 14545)]
[New Thread 0xb30bfb40 (LWP 14546)]
[New Thread 0xb28beb40 (LWP 14547)]
Output #0, null, to 'pipe:':
  Metadata:
    encoder         : Lavf57.66.102
    Stream #0:0: Video: wrapped_avframe, rgb0, 318x198, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc57.81.100 wrapped_avframe
Stream mapping:
  Stream #0:0 -> #0:0 (scpr (native) -> wrapped_avframe (native))
Press [q] to stop, [?] for help

Program received signal SIGSEGV, Segmentation fault.
decode_unit (s=s@entry=0xb68c7020, pixel=pixel@entry=0xb76a08c8, 
    rval=rval@entry=0xbfffe710, step=400) at libavcodec/scpr.c:224
224	    pixel->freq[c] = cnt_c + step;
(gdb) bt
#0  decode_unit (s=s@entry=0xb68c7020, pixel=pixel@entry=0xb76a08c8, 
    rval=rval@entry=0xbfffe710, step=400) at libavcodec/scpr.c:224
#1  0x086add77 in decompress_i (linesize=320, dst=0xb2042020, avctx=0x9a29ca0)
    at libavcodec/scpr.c:307
#2  decode_frame (avctx=0x9a29ca0, data=0x9a2bf20, got_frame=0xbfffe81c, 
    avpkt=0xbfffe78c) at libavcodec/scpr.c:686
#3  0x08729a59 in avcodec_decode_video2 (avctx=0x9a29ca0, picture=0x9a2bf20, 
    got_picture_ptr=0xbfffe81c, avpkt=0xbfffe918) at libavcodec/utils.c:2263
#4  0x0872a9dd in do_decode (avctx=avctx@entry=0x9a29ca0, 
    pkt=pkt@entry=0xbfffe918) at libavcodec/utils.c:2796
#5  0x0872b7b0 in avcodec_send_packet (avctx=0x9a29ca0, avpkt=<optimized out>)
    at libavcodec/utils.c:2885
#6  0x080e8447 in decode (pkt=0xbfffe918, got_frame=0xbfffeab4, 
    frame=<optimized out>, avctx=0x9a29ca0) at ffmpeg.c:2052
#7  decode_video (ist=ist@entry=0x9a29940, pkt=pkt@entry=0xbfffeaf4, 
    got_output=got_output@entry=0xbfffeab4, eof=0) at ffmpeg.c:2248
#8  0x080e9806 in process_input_packet (ist=0x9a29940, pkt=0xbfffed24, 
    no_eof=0) at ffmpeg.c:2491
#9  0x080c78d6 in process_input (file_index=<optimized out>) at ffmpeg.c:4251
#10 transcode_step () at ffmpeg.c:4339
#11 transcode () at ffmpeg.c:4393
#12 main (argc=<optimized out>, argv=<optimized out>) at ffmpeg.c:4598
(gdb) 

Attachments (9)

sp_16bit_q100_o.avi (394.4 KB) - added by ami_stuff 4 months ago.
16bpp_odd_q72.avi (134.9 KB) - added by ami_stuff 4 months ago.
16bpp_odd_q62.avi (78.1 KB) - added by ami_stuff 4 months ago.
16bpp_odd_q50.avi (44.8 KB) - added by ami_stuff 4 months ago.
16bpp_odd_q87.avi (227.1 KB) - added by ami_stuff 4 months ago.
500_500_q50.avi (139.1 KB) - added by ami_stuff 4 months ago.
500_500_q100.avi (138.5 KB) - added by ami_stuff 4 months ago.
502_500_q50.avi (255.3 KB) - added by ami_stuff 4 months ago.
502_500_q100.avi (603.5 KB) - added by ami_stuff 4 months ago.

Download all attachments as: .zip

Change History (18)

Changed 4 months ago by ami_stuff

comment:1 follow-up: Changed 4 months ago by richardpl

This decodes to green nonsense. What you used to encode this?

comment:2 in reply to: ↑ 1 Changed 4 months ago by ami_stuff

Replying to richardpl:

This decodes to green nonsense.

It decodes here just fine with 32bit codec.

What you used to encode this?

VirtualDub? + original codec.

comment:3 Changed 4 months ago by richardpl

What version of "original codec"?

comment:4 Changed 4 months ago by richardpl

Also send picture of one decoded frame.

comment:5 Changed 4 months ago by ami_stuff

http://www.infognition.com/ScreenPressor/download.html

The original codec is buggy as well because it crashes with attached new files (when quality is lower than 72), so yes fixing the crash should be probably enough.

Last edited 4 months ago by ami_stuff (previous) (diff)

Changed 4 months ago by ami_stuff

Changed 4 months ago by ami_stuff

Changed 4 months ago by ami_stuff

Changed 4 months ago by ami_stuff

comment:6 Changed 4 months ago by richardpl

  • Resolution set to fixed
  • Status changed from new to closed

comment:7 Changed 4 months ago by richardpl

  • Component changed from undetermined to avcodec
  • Reproduced by developer set
  • Version changed from unspecified to git-master

comment:8 Changed 4 months ago by cehoyos

  • Keywords scpr crash added
  • Priority changed from normal to important

Changed 4 months ago by ami_stuff

Changed 4 months ago by ami_stuff

Changed 4 months ago by ami_stuff

Changed 4 months ago by ami_stuff

comment:9 Changed 4 months ago by ami_stuff

It looks like for certain resolutions this codec is encoding video in lossy compression mode even if not asked to do so?

Last edited 4 months ago by ami_stuff (previous) (diff)
Note: See TracTickets for help on using tickets.