Opened 7 years ago

Last modified 15 months ago

#128 reopened defect

svq1 decoder is somehow buggy

Reported by: ami_stuff Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords: svq1
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

ftp://ftp.pigwa.net/stuff/other/vcsclip.mov

please compare attached screenshot (left = ffplay / right = qt player)

I found this with google, maybe related?

[Ffmpeg-user] A small but disastrous bug in SVQ1 Decoder

Hi, I am using ffmpeg repository source code for developing Sorenson
decoder and encountered a "break" statement missing in
"avcodec_align_dimensions()" function under "switch case
PIX_FMT_YUV410P" in file "utils.c". Due to this every time when
controls come to "case PIX_FMT_YUV410P" instead of breaking after
executing the required commands, it goes to the default case and
reset the values of w_align & h_align to 1. Which eventually change
the file size of output yuv file, resulting in corrupted output.

Please add the necessary "break" statement in appropriate switch case
in the new version.

C:\>ffmpeg -i C:\vcsclip.mov
FFmpeg version git-N-29181-ga304071, Copyright (c) 2000-2011 the FFmpeg develope
rs
  built on Apr 18 2011 21:24:03 with gcc 4.5.2
  configuration: --enable-gpl --enable-version3 --enable-runtime-cpudetect --ena
ble-memalign-hack --enable-avisynth --enable-bzlib --enable-frei0r --enable-libo
pencore-amrnb --enable-libopencore-amrwb --enable-libfreetype --enable-libgsm --
enable-libmp3lame --enable-libopenjpeg --enable-librtmp --enable-libschroedinger
 --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enabl
e-libx264 --enable-libxavs --enable-libxvid --enable-zlib --cross-prefix=i686-w6
4-mingw32- --target-os=mingw32 --arch=x86_32 --extra-cflags=-I/home/kyle/softwar
e/ffmpeg/external-libraries/win32/include --extra-ldflags=-L/home/kyle/software/
ffmpeg/external-libraries/win32/lib --pkg-config=pkg-config
  libavutil    50. 40. 1 / 50. 40. 1
  libavcodec   52.120. 0 / 52.120. 0
  libavformat  52.108. 0 / 52.108. 0
  libavdevice  52.  4. 0 / 52.  4. 0
  libavfilter   1. 79. 0 /  1. 79. 0
  libswscale    0. 13. 0 /  0. 13. 0
[mov,mp4,m4a,3gp,3g2,mj2 @ 01CEC000] max_analyze_duration reached

Seems stream 0 codec frame rate differs from container frame rate: 600.00 (600/1
) -> 12.00 (12/1)
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\vcsclip.mov':
  Metadata:
    creation_time   : 2000-08-17 00:28:08
    album           : Digital 2600
    album-eng       : Digital 2600
    artist          : Kevin Rodgers & Markus Karlus
    artist-eng      : Kevin Rodgers & Markus Karlus
    copyright-eng   : [C] 2000
    comment         : goldenshower@uia.com.br ]]]] www.goldenshower.gs
    copyright       : [C] 2000
    comment-eng     : goldenshower@uia.com.br ]]]] www.goldenshower.gs
  Duration: 00:02:52.53, start: 0.000000, bitrate: 338 kb/s
    Stream #0.0(eng): Video: svq1, yuv410p, 320x240, 289 kb/s, 12 fps, 12 tbr, 6
00 tbn, 600 tbc
    Metadata:
      creation_time   : 2000-08-17 00:28:08
    Stream #0.1(eng): Audio: qdm2, 44100 Hz, 1 channels, s16, 48 kb/s
    Metadata:
      creation_time   : 2000-08-17 00:28:08
At least one output file must be specified

Attachments (4)

svq1.jpg (34.1 KB) - added by ami_stuff 7 years ago.
svq1.rar (850.8 KB) - added by ami_stuff 6 years ago.
256kbps.mov (664.4 KB) - added by ami_stuff 23 months ago.
svq1_set.7z (628.6 KB) - added by ami_stuff 15 months ago.

Change History (9)

Changed 7 years ago by ami_stuff

comment:1 Changed 7 years ago by cehoyos

  • Component changed from undetermined to avcodec
  • Keywords svq1 added
  • Status changed from new to open
  • Version changed from unspecified to git-master

There is a break in avcodec_align_dimensions() (w_align is not set to 1), but the problem is reproducible.

Not a regression, afaict.

comment:2 Changed 6 years ago by ami_stuff

I have reencoded the original file and it seems that the problem is most visible when keyframes are set after every 24 frames (default) - see attached samples.

Changed 6 years ago by ami_stuff

Changed 23 months ago by ami_stuff

comment:3 Changed 23 months ago by ami_stuff

  • Resolution set to invalid
  • Status changed from open to closed

This is probably just how this codec works at lower bitrate.

comment:4 follow-up: Changed 23 months ago by cehoyos

  • Resolution invalid deleted
  • Status changed from closed to reopened

The artefacts visible with FFmpeg are not reproducible with QT.

Changed 15 months ago by ami_stuff

comment:5 in reply to: ↑ 4 Changed 15 months ago by ami_stuff

Replying to cehoyos:

The artefacts visible with FFmpeg are not reproducible with QT.

yes, attached one more set of samples

Note: See TracTickets for help on using tickets.