Opened 8 years ago

Last modified 8 years ago

#5559 new defect

IFF ANIM: fix decoding artefacts (ANIM-J)

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

Description

attached files decodes correctly with "cvtmovie" from

http://www.etwright.org/getstuff/source/

D:\>ffmpegx -i D:\anim\LASERBOING out.avi
ffmpeg version N-79991-g86e493a Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.5.0 (GCC) 20100414 (Fedora MinGW 4.5.0-1.fc14)
  configuration: --prefix=/var/www/users/research/ffmpeg/snapshots/build --arch=
x86 --target-os=mingw32 --cross-prefix=i686-pc-mingw32- --cc='ccache i686-pc-min
gw32-gcc' --enable-pthreads --enable-memalign-hack --enable-runtime-cpudetect --
enable-cross-compile --enable-static --disable-shared --extra-libs='-lws2_32 -lw
inmm -lpthread' --extra-cflags='--static -I/var/www/users/research/ffmpeg/snapsh
ots/build/include' --extra-ldflags='-static -L/var/www/users/research/ffmpeg/sna
pshots/build/lib' --enable-bzlib --enable-zlib --enable-gpl --enable-version3 --
enable-nonfree --enable-libx264 --enable-libspeex --enable-libtheora --enable-li
bvorbis --enable-libfaac --enable-libxvid --enable-libopencore-amrnb --enable-li
bopencore-amrwb --enable-libmp3lame --enable-libfreetype --enable-libvpx --disab
le-decoder=libvpx
  libavutil      55. 24.100 / 55. 24.100
  libavcodec     57. 41.102 / 57. 41.102
  libavformat    57. 36.100 / 57. 36.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 45.100 /  6. 45.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Input #0, iff, from 'D:\anim\LASERBOING':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: iff_ilbm (ANIM / 0x4D494E41), rgb0, 320x400, SAR 10:11 D
AR 8:11, 30 fps, 60 tbr, 60 tbn
File 'out.avi' already exists. Overwrite ? [y/N] y
[avi @ 0x24b04a0] Using AVStream.codec to pass codec parameters to muxers is dep
recated, use AVStream.codecpar instead.
Output #0, avi, to 'out.avi':
  Metadata:
    ISFT            : Lavf57.36.100
    Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 320x400 [SAR 10:11 D
AR 8:11], q=2-31, 200 kb/s, 60 fps, 60 tbn
    Metadata:
      encoder         : Lavc57.41.102 mpeg4
    Side data:
      cpb: bitrate max/min/avg: 0/0/200000 buffer size: 0 vbv_delay: -1
Stream mapping:
  Stream #0:0 -> #0:0 (iff_ilbm (iff) -> mpeg4 (native))
Press [q] to stop, [?] for help
frame=    5 fps=0.0 q=5.0 Lsize=     187kB time=00:00:00.28 bitrate=5417.3kbits/
s speed=16.4x
video:181kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing o
verhead: 3.324340%

Attachments (4)

LASERBOING (380.8 KB ) - added by ami_stuff 8 years ago.
NotBoingAgain (385.2 KB ) - added by ami_stuff 8 years ago.
spigot (245.5 KB ) - added by ami_stuff 8 years ago.
moviepro_notboingagain.txt (267.8 KB ) - added by ami_stuff 8 years ago.

Download all attachments as: .zip

Change History (10)

by ami_stuff, 8 years ago

Attachment: LASERBOING added

by ami_stuff, 8 years ago

Attachment: NotBoingAgain added

by ami_stuff, 8 years ago

Attachment: spigot added

comment:1 by ami_stuff, 8 years ago

ffmpeg thinks that there are 147 frames while cvt decodes 352

C:\>ffmpeg -i NotBoingAgain -f null -
ffmpeg version N-79986-g01ead2a Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.5.0 (GCC) 20100414 (Fedora MinGW 4.5.0-1.fc14)
  configuration: --prefix=/var/www/users/research/ffmpeg/snapshots/build --arch=
x86 --target-os=mingw32 --cross-prefix=i686-pc-mingw32- --cc='ccache i686-pc-min
gw32-gcc' --enable-pthreads --enable-memalign-hack --enable-runtime-cpudetect --
enable-cross-compile --enable-static --disable-shared --extra-libs='-lws2_32 -lw
inmm -lpthread' --extra-cflags='--static -I/var/www/users/research/ffmpeg/snapsh
ots/build/include' --extra-ldflags='-static -L/var/www/users/research/ffmpeg/sna
pshots/build/lib' --enable-bzlib --enable-zlib --enable-gpl --enable-version3 --
enable-nonfree --enable-libx264 --enable-libspeex --enable-libtheora --enable-li
bvorbis --enable-libfaac --enable-libxvid --enable-libopencore-amrnb --enable-li
bopencore-amrwb --enable-libmp3lame --enable-libfreetype --enable-libvpx --disab
le-decoder=libvpx
  libavutil      55. 24.100 / 55. 24.100
  libavcodec     57. 41.102 / 57. 41.102
  libavformat    57. 36.100 / 57. 36.100
  libavdevice    57.  0.101 / 57.  0.101
  libavfilter     6. 45.100 /  6. 45.100
  libswscale      4.  1.100 /  4.  1.100
  libswresample   2.  0.101 /  2.  0.101
  libpostproc    54.  0.100 / 54.  0.100
Input #0, iff, from 'NotBoingAgain':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: iff_ilbm (ANIM / 0x4D494E41), rgb0, 352x440, SAR 12:7 DA
R 48:35, 30 fps, 60 tbr, 60 tbn
[null @ 0x2c75680] Using AVStream.codec to pass codec parameters to muxers is de
precated, use AVStream.codecpar instead.
Output #0, null, to 'pipe:':
  Metadata:
    encoder         : Lavf57.36.100
    Stream #0:0: Video: wrapped_avframe, rgb0, 352x440 [SAR 12:7 DAR 48:35], q=2
-31, 200 kb/s, 60 fps, 60 tbn
    Metadata:
      encoder         : Lavc57.41.102 wrapped_avframe
Stream mapping:
  Stream #0:0 -> #0:0 (iff_ilbm (iff) -> wrapped_avframe (native))
Press [q] to stop, [?] for help
frame=  147 fps=0.0 q=-0.0 Lsize=N/A time=00:00:05.01 bitrate=N/A speed= 161x

video:55kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing ov
erhead: unknown
C:\>cvt.exe NotBoingAgain nba

352 x 440, 6 planes, HAM interlaced
146 deltas, 352 frames

About to create 352 BMP files.
Is that OK? (y/n) y
nba.0001.bmp
nba.0002.bmp
nba.0003.bmp
nba.0004.bmp
nba.0005.bmp
nba.0006.bmp
nba.0007.bmp
nba.0008.bmp
nba.0009.bmp
nba.0010.bmp
nba.0011.bmp
nba.0012.bmp
nba.0013.bmp
nba.0014.bmp
nba.0015.bmp
nba.0016.bmp
nba.0017.bmp
nba.0018.bmp
nba.0019.bmp
nba.0020.bmp
nba.0021.bmp
nba.0022.bmp
nba.0023.bmp
nba.0024.bmp
nba.0025.bmp
nba.0026.bmp
nba.0027.bmp
nba.0028.bmp
nba.0029.bmp
nba.0030.bmp
nba.0031.bmp
nba.0032.bmp
nba.0033.bmp
nba.0034.bmp
nba.0035.bmp
nba.0036.bmp
nba.0037.bmp
nba.0038.bmp
nba.0039.bmp
nba.0040.bmp
nba.0041.bmp
nba.0042.bmp
nba.0043.bmp
nba.0044.bmp
nba.0045.bmp
nba.0046.bmp
nba.0047.bmp
nba.0048.bmp
nba.0049.bmp
nba.0050.bmp
nba.0051.bmp
nba.0052.bmp
nba.0053.bmp
nba.0054.bmp
nba.0055.bmp
nba.0056.bmp
nba.0057.bmp
nba.0058.bmp
nba.0059.bmp
nba.0060.bmp
nba.0061.bmp
nba.0062.bmp
nba.0063.bmp
nba.0064.bmp
nba.0065.bmp
nba.0066.bmp
nba.0067.bmp
nba.0068.bmp
nba.0069.bmp
nba.0070.bmp
nba.0071.bmp
nba.0072.bmp
nba.0073.bmp
nba.0074.bmp
nba.0075.bmp
nba.0076.bmp
nba.0077.bmp
nba.0078.bmp
nba.0079.bmp
nba.0080.bmp
nba.0081.bmp
nba.0082.bmp
nba.0083.bmp
nba.0084.bmp
nba.0085.bmp
nba.0086.bmp
nba.0087.bmp
nba.0088.bmp
nba.0089.bmp
nba.0090.bmp
nba.0091.bmp
nba.0092.bmp
nba.0093.bmp
nba.0094.bmp
nba.0095.bmp
nba.0096.bmp
nba.0097.bmp
nba.0098.bmp
nba.0099.bmp
nba.0100.bmp
nba.0101.bmp
nba.0102.bmp
nba.0103.bmp
nba.0104.bmp
nba.0105.bmp
nba.0106.bmp
nba.0107.bmp
nba.0108.bmp
nba.0109.bmp
nba.0110.bmp
nba.0111.bmp
nba.0112.bmp
nba.0113.bmp
nba.0114.bmp
nba.0115.bmp
nba.0116.bmp
nba.0117.bmp
nba.0118.bmp
nba.0119.bmp
nba.0120.bmp
nba.0121.bmp
nba.0122.bmp
nba.0123.bmp
nba.0124.bmp
nba.0125.bmp
nba.0126.bmp
nba.0127.bmp
nba.0128.bmp
nba.0129.bmp
nba.0130.bmp
nba.0131.bmp
nba.0132.bmp
nba.0133.bmp
nba.0134.bmp
nba.0135.bmp
nba.0136.bmp
nba.0137.bmp
nba.0138.bmp
nba.0139.bmp
nba.0140.bmp
nba.0141.bmp
nba.0142.bmp
nba.0143.bmp
nba.0144.bmp
nba.0145.bmp
nba.0146.bmp
nba.0147.bmp
nba.0148.bmp
nba.0149.bmp
nba.0150.bmp
nba.0151.bmp
nba.0152.bmp
nba.0153.bmp
nba.0154.bmp
nba.0155.bmp
nba.0156.bmp
nba.0157.bmp
nba.0158.bmp
nba.0159.bmp
nba.0160.bmp
nba.0161.bmp
nba.0162.bmp
nba.0163.bmp
nba.0164.bmp
nba.0165.bmp
nba.0166.bmp
nba.0167.bmp
nba.0168.bmp
nba.0169.bmp
nba.0170.bmp
nba.0171.bmp
nba.0172.bmp
nba.0173.bmp
nba.0174.bmp
nba.0175.bmp
nba.0176.bmp
nba.0177.bmp
nba.0178.bmp
nba.0179.bmp
nba.0180.bmp
nba.0181.bmp
nba.0182.bmp
nba.0183.bmp
nba.0184.bmp
nba.0185.bmp
nba.0186.bmp
nba.0187.bmp
nba.0188.bmp
nba.0189.bmp
nba.0190.bmp
nba.0191.bmp
nba.0192.bmp
nba.0193.bmp
nba.0194.bmp
nba.0195.bmp
nba.0196.bmp
nba.0197.bmp
nba.0198.bmp
nba.0199.bmp
nba.0200.bmp
nba.0201.bmp
nba.0202.bmp
nba.0203.bmp
nba.0204.bmp
nba.0205.bmp
nba.0206.bmp
nba.0207.bmp
nba.0208.bmp
nba.0209.bmp
nba.0210.bmp
nba.0211.bmp
nba.0212.bmp
nba.0213.bmp
nba.0214.bmp
nba.0215.bmp
nba.0216.bmp
nba.0217.bmp
nba.0218.bmp
nba.0219.bmp
nba.0220.bmp
nba.0221.bmp
nba.0222.bmp
nba.0223.bmp
nba.0224.bmp
nba.0225.bmp
nba.0226.bmp
nba.0227.bmp
nba.0228.bmp
nba.0229.bmp
nba.0230.bmp
nba.0231.bmp
nba.0232.bmp
nba.0233.bmp
nba.0234.bmp
nba.0235.bmp
nba.0236.bmp
nba.0237.bmp
nba.0238.bmp
nba.0239.bmp
nba.0240.bmp
nba.0241.bmp
nba.0242.bmp
nba.0243.bmp
nba.0244.bmp
nba.0245.bmp
nba.0246.bmp
nba.0247.bmp
nba.0248.bmp
nba.0249.bmp
nba.0250.bmp
nba.0251.bmp
nba.0252.bmp
nba.0253.bmp
nba.0254.bmp
nba.0255.bmp
nba.0256.bmp
nba.0257.bmp
nba.0258.bmp
nba.0259.bmp
nba.0260.bmp
nba.0261.bmp
nba.0262.bmp
nba.0263.bmp
nba.0264.bmp
nba.0265.bmp
nba.0266.bmp
nba.0267.bmp
nba.0268.bmp
nba.0269.bmp
nba.0270.bmp
nba.0271.bmp
nba.0272.bmp
nba.0273.bmp
nba.0274.bmp
nba.0275.bmp
nba.0276.bmp
nba.0277.bmp
nba.0278.bmp
nba.0279.bmp
nba.0280.bmp
nba.0281.bmp
nba.0282.bmp
nba.0283.bmp
nba.0284.bmp
nba.0285.bmp
nba.0286.bmp
nba.0287.bmp
nba.0288.bmp
nba.0289.bmp
nba.0290.bmp
nba.0291.bmp
nba.0292.bmp
nba.0293.bmp
nba.0294.bmp
nba.0295.bmp
nba.0296.bmp
nba.0297.bmp
nba.0298.bmp
nba.0299.bmp
nba.0300.bmp
nba.0301.bmp
nba.0302.bmp
nba.0303.bmp
nba.0304.bmp
nba.0305.bmp
nba.0306.bmp
nba.0307.bmp
nba.0308.bmp
nba.0309.bmp
nba.0310.bmp
nba.0311.bmp
nba.0312.bmp
nba.0313.bmp
nba.0314.bmp
nba.0315.bmp
nba.0316.bmp
nba.0317.bmp
nba.0318.bmp
nba.0319.bmp
nba.0320.bmp
nba.0321.bmp
nba.0322.bmp
nba.0323.bmp
nba.0324.bmp
nba.0325.bmp
nba.0326.bmp
nba.0327.bmp
nba.0328.bmp
nba.0329.bmp
nba.0330.bmp
nba.0331.bmp
nba.0332.bmp
nba.0333.bmp
nba.0334.bmp
nba.0335.bmp
nba.0336.bmp
nba.0337.bmp
nba.0338.bmp
nba.0339.bmp
nba.0340.bmp
nba.0341.bmp
nba.0342.bmp
nba.0343.bmp
nba.0344.bmp
nba.0345.bmp
nba.0346.bmp
nba.0347.bmp
nba.0348.bmp
nba.0349.bmp
nba.0350.bmp
nba.0351.bmp
nba.0352.bmp

comment:2 by ami_stuff, 8 years ago

anim/laserboing ... 320 x 400 x 6 Movie oneway, 4 frames.
anim/notboingagain ... 352 x 440 x 6 Movie reversible, 146 frames.
anim/spigot ... 352 x 440 x 6 Movie reversible, 54 frames.

read also readme file from this archive:

https://ftp.fau.de/aminet/misc/fish/fish-0116.lha

DILBM
-----
 
This program calculates the differences between two images and stores
the result as a delta file.  The program is called with the names of
three files:
 
        dilbm image1 image2 delta
 
The two image files must exist.  The delta file will be created.  The
delta file represents the data required to convert image1 into image2.
It is not reversible.
 
There is an alternate delta format that is reversible, to generate it,
add an 'x' at the end of the command:
 
        dilbm image1 image2 delta x
 
Normally, dilbm will display a picture of the differences between the
images.  To suppress this picture, add a 'q' at the end of the command,
this will make dilbm run slightly faster.
 
 
PILBM
-----
 
This program packs delta files together to create an animation.  It
takes a single argument that is the name of a text file that contains a
description of the animation.  The following format must be followed:
 
        line
          1     a     The name of the animation that is to be produced.
          2     i     The name of the initial image.
          3     d0    The name of the initial delta file.
          4     d1    The name of the first delta file.
          5     d2    The name of the second delta file.
          ...
          n+3   dn    The name of the last delta file.
          n+4   *     An asterisk to denote the start of sequence control
          n+5   m t   m is a delta number and t is a time delay
          n+6   m t
          ...
                m t
 
The animation works by double buffering, so you must specify two images.
The file 'i' specifies the first image.  The delta file 'd0' defines the
second image in terms of the first.
 
The delta file 'd0' is discarded after the second image file is
constructed.  The remaining delta files, d1 to dn are stored in memory.
When the animation is replayed, the following actions take place:
 
The first image is displayed on the screen.  Then the second image is
displayed.  While the second image is displayed, the first image is
changed with a delta file.  Then it is displayed while the second image
is modified with another delta file.  This process is repeated.
 
The sequence control determines the order in which the delta files are
used.  The value 'm' determines which delta file is to be used.  The
value t specifies how much time (in jiffies) is to be used for the
change.  If t is negative, then m is used to indicate a transfer to the
m'th m-t pair.  Thus the following sequence
 
                *
                3  2
                5  2
                9  2
                12 2
                2  -1
 
would stand for the following sequence of delta files:
 
        d3 d5 d9 d12 d5 d9 d12 d5 d9 d12 d5 d9 d12 etc.
 
Not all delta files need to be used (although that would be wasteful)
and some may be used many times, if the sequence control specifies a
loop.
 
Deciding which images to use to construct delta files, and the correct
sequence of delta files is complicated because of the nature of double
buffering.  Here is an example, suppose that we wish to display images
in the following sequence:
 
        15 14 13 12 11 10 9 8 7 8 9 10 11 12 13 14 15 14 13 12 11 etc
 
then we can use the 'x' type of reversible deltas and compute the
following files (it is a good idea to place the dilbm commands in a text
file and use an 'execute' command).
 
dilbm  pic15.image pic14.image dx15-14 x q
dilbm  pic15.image pic13.image dx15-13 x q
dilbm  pic14.image pic12.image dx14-12 x q
dilbm  pic13.image pic11.image dx13-11 x q
dilbm  pic12.image pic10.image dx12-10 x q
dilbm  pic11.image pic9.image  dx11-9  x q
dilbm  pic10.image pic8.image  dx10-8  x q
dilbm  pic9.image pic7.image   dx9-7   x q
dilbm  pic8.image pic8.image   dx8-8   x q
pilbm  buildx.script
 
The file buildx.script contains the following:
 
 
picx.anim
phongm15.image
dx15-14
 
dx15-13
dx14-12
dx13-11
dx12-10
dx11-9
dx10-8
dx9-7
dx8-8
*
1 2
2 2
3 2
4 2
5 2
6 2
7 2
8 2
7 2
6 2
5 2
4 2
3 2
2 2
1 2
8 2
1 -1
 
 
Note that the delta file dx8-8 causes no action to take place, so it is
also used in place of dx14-14.

comment:3 by Elon Musk, 8 years ago

You have binary of cvt.exe?

comment:5 by ami_stuff, 8 years ago

MoviePro from this package:

http://aminet.net/package/util/libs/iff.library-23

also creates ~350 frames (see attached log file with enabled VERBOSE option)

Last edited 8 years ago by ami_stuff (previous) (diff)

by ami_stuff, 8 years ago

Attachment: moviepro_notboingagain.txt added

comment:6 by Elon Musk, 8 years ago

Component: undeterminedavcodec
Reproduced by developer: set
Version: unspecifiedgit-master
Note: See TracTickets for help on using tickets.