Opened 7 years ago

Closed 7 years ago

#1858 closed defect (fixed)

smackvideo: fail to decode

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

Description

for some reason "128_76.avi" file fails to decode with ffmpeg (plays fine with SmackPlay?)

C:\>ffmpeg -i 128_76.smk out.avi
ffmpeg version N-45867-g3318d6b Copyright (c) 2000-2012 the FFmpeg developers
  built on Oct 23 2012 02:39:33 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-w32threads --enable-memalign-hack --enable-runtime-cpudetect
--enable-cross-compile --enable-static --disable-shared --extra-libs='-lws2_32 -
lwinmm -lpthread' --extra-cflags='--static -I/var/www/users/research/ffmpeg/snap
shots/build/include' --extra-ldflags='-static -L/var/www/users/research/ffmpeg/s
napshots/build/lib' --enable-bzlib --enable-zlib --enable-gpl --enable-version3
--enable-nonfree --enable-libx264 --enable-libspeex --enable-libtheora --enable-
libvorbis --enable-libfaac --enable-libxvid --enable-libopencore-amrnb --enable-
libopencore-amrwb --enable-libmp3lame --enable-libvpx --disable-decoder=libvpx
  libavutil      51. 77.100 / 51. 77.100
  libavcodec     54. 68.100 / 54. 68.100
  libavformat    54. 33.100 / 54. 33.100
  libavdevice    54.  3.100 / 54.  3.100
  libavfilter     3. 20.104 /  3. 20.104
  libswscale      2.  1.101 /  2.  1.101
  libswresample   0. 16.100 /  0. 16.100
  libpostproc    52.  1.100 / 52.  1.100
Input #0, smk, from '128_76.smk':
  Duration: 00:00:01.00, bitrate: 92 kb/s
    Stream #0:0: Video: smackvideo (SMK4 / 0x344B4D53), pal8, 128x76, 1 tbr, 1 t
bn, 1 tbc
Output #0, avi, to 'out.avi':
    Stream #0:0: Video: mpeg4, yuv420p, 128x76, q=2-31, 200 kb/s, 90k tbn, 1 tbc

Stream mapping:
  Stream #0:0 -> #0:0 (smackvid -> mpeg4)
Error while opening decoder for input stream #0:0

Attachments (2)

128_76.smk (11.3 KB) - added by ami_stuff 7 years ago.
128_80.smk (11.6 KB) - added by ami_stuff 7 years ago.

Download all attachments as: .zip

Change History (5)

Changed 7 years ago by ami_stuff

Changed 7 years ago by ami_stuff

comment:1 Changed 7 years ago by cehoyos

  • Keywords smacker added
  • Reproduced by developer set
  • Status changed from new to open
  • Version changed from unspecified to git-master

Fails when calling smacker_decode_header_tree() from decode_header_trees() for TYPE.

comment:2 Changed 7 years ago by richardpl

This fixes decoding:

diff --git a/libavcodec/smacker.c b/libavcodec/smacker.c
index 472d0ef..b1e656a 100644
--- a/libavcodec/smacker.c
+++ b/libavcodec/smacker.c
@@ -137,11 +137,9 @@ static int smacker_decode_bigtree(GetBitContext *gb, HuffContext *hc, DBCtx *ctx
         return -1;
     }
     if(!get_bits1(gb)){ //Leaf
-        int val, i1, i2;
+        unsigned int val, i1, i2;
         i1 = ctx->v1->table ? get_vlc2(gb, ctx->v1->table, SMKTREE_BITS, 3) : 0;
         i2 = ctx->v2->table ? get_vlc2(gb, ctx->v2->table, SMKTREE_BITS, 3) : 0;
-        if (i1 < 0 || i2 < 0)
-            return -1;
         val = ctx->recode1[i1] | (ctx->recode2[i2] << 8);
         if(val == ctx->escapes[0]) {
             ctx->last[0] = hc->current;

comment:3 Changed 7 years ago by michael

  • Component changed from undetermined to avcodec
  • Resolution set to fixed
  • Status changed from open to closed

Fixed differently (similar to how audio vlc tables are handled)

Note: See TracTickets for help on using tickets.