Opened 11 years ago

Last modified 11 years ago

#2240 open defect

xvid: visible artefects

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

Description

there are visible artefacts on the car at the end of the video

the file decodes ok with xvid codec

attached patch "fixes" the problem

http://samples.mplayerhq.hu/V-codecs/MPEG4/color16.avi

C:\>ffmpeg -i color16.avi out.avi
ffmpeg version N-48610-gb23aff6 Copyright (c) 2000-2013 the FFmpeg developers
  built on Jan  8 2013 02:37:29 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      52. 13.100 / 52. 13.100
  libavcodec     54. 86.100 / 54. 86.100
  libavformat    54. 59.106 / 54. 59.106
  libavdevice    54.  3.102 / 54.  3.102
  libavfilter     3. 32.100 /  3. 32.100
  libswscale      2.  1.103 /  2.  1.103
  libswresample   0. 17.102 /  0. 17.102
  libpostproc    52.  2.100 / 52.  2.100
Input #0, avi, from 'color16.avi':
  Duration: 00:00:04.68, start: 0.000000, bitrate: 2583 kb/s
    Stream #0:0: Video: mpeg4 (XVID / 0x44495658), yuv420p, 712x368 [SAR 1:1 DAR
 89:46], 25 fps, 25 tbr, 25 tbn, 2 tbc
Output #0, avi, to 'out.avi':
  Metadata:
    ISFT            : Lavf54.59.106
    Stream #0:0: Video: mpeg4 (FMP4 / 0x34504D46), yuv420p, 712x368 [SAR 1:1 DAR
 89:46], q=2-31, 200 kb/s, 25 tbn, 25 tbc
Stream mapping:
  Stream #0:0 -> #0:0 (mpeg4 -> mpeg4)
Press [q] to stop, [?] for help
[mpeg4 @ 0x1eff580] looks like this file was encoded with (divx4/(old)xvid/opend
ivx) -> forcing low_delay flag
frame=   39 fps=0.0 q=28.6 size=     123kB time=00:00:01.56 bitrate= 646.0kbits/
frame=   85 fps=0.0 q=19.2 size=     182kB time=00:00:03.40 bitrate= 439.5kbits/
frame=  117 fps= 86 q=21.6 Lsize=     229kB time=00:00:04.68 bitrate= 400.4kbits
/s
video:220kB audio:0kB subtitle:0 global headers:0kB muxing overhead 3.821809%

Attachments (1)

xvid.diff (501 bytes ) - added by ami_stuff 11 years ago.

Download all attachments as: .zip

Change History (6)

by ami_stuff, 11 years ago

Attachment: xvid.diff added

comment:1 by Carl Eugen Hoyos, 11 years ago

Component: undeterminedavcodec
Keywords: asp added
Reproduced by developer: set
Status: newopen
Version: unspecifiedgit-master

comment:2 by Michael Niedermayer, 11 years ago

it has a xvid fourcc but iam not so sure that xvid was the actual encoder

comment:3 by Michael Niedermayer, 11 years ago

below may or may not work (needs testing with lots of old xvid files, that is maybe puting an assert there to first find which are affected and then looking at them to see which way is better for affected files)

-        if(s->xvid_build<=12U)
+        if(s->xvid_build > 0 && s->xvid_build<=12U)

comment:4 by Carl Eugen Hoyos, 11 years ago

Don't we do the same - only accepting build values > 0 - for x264?

in reply to:  4 comment:5 by Michael Niedermayer, 11 years ago

Replying to cehoyos:

Don't we do the same - only accepting build values > 0 - for x264?

the value 0 has special meaning, it just says it IS xvid but we dont know the version
if its not xvid then it should be -1 and not 0, if it IS xvid we need testing to know which bug set matches unindentified xvid.
Having a testset of xvid_build==0 files should also make it quite easy to test different solutions

Note: See TracTickets for help on using tickets.