Opened 13 years ago
Closed 13 years ago
#3281 closed defect (fixed)
ffvhuff -context 1 outputs garbled video
| Reported by: | qyot27 | Owned by: | |
|---|---|---|---|
| Priority: | important | Component: | avcodec |
| Version: | git-master | Keywords: | ffvhuff regression |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | no |
Description
Summary of the bug:
Since I noticed the recent commits extending ffvhuff to experimentally support 4:4:4, et al., I rebuilt FFmpeg from git to test it out.
However, it seems that as part of that patchset, -context 1 broke, as later on I was actually just converting 4:2:0 like I usually do and I ended up finding out that the output was corrupted badly. To its credit, -context 1 also seemed to corrupt 4:4:4 when I tested it there too, but not as badly (4:4:4 output was still in the proper colors as the source video, although there were artifacts; 4:2:0 was awash in rainbow-colored strobing and artifacts).
If I don't use -context 1 at all, then the problem doesn't occur. But then it doesn't enable the adaptive huffman tables.
How to reproduce:
Broken:
ffmpeg -i input -vcodec ffvhuff -context 1 output.avi
Working:
ffmpeg -i input -vcodec ffvhuff output.avi
Attachments (2)
Change History (6)
by , 13 years ago
| Attachment: | ffvhuff-420-with-context1.avi added |
|---|
by , 13 years ago
| Attachment: | original.avi added |
|---|
Original source, 4:2:0, FFV1 (to get under the 2.5 MB size limit)
comment:1 by , 13 years ago
| Keywords: | regression added |
|---|---|
| Priority: | normal → important |
For future tickets: Please always provide a failing command line together with the complete, uncut console output.
out.avi is broken.
$ ffmpeg -f lavfi -i testsrc -vcodec ffvhuff -context 1 -t 2 out.avi
ffmpeg version N-59661-g243b9fe Copyright (c) 2000-2014 the FFmpeg developers
built on Jan 7 2014 20:37:45 with gcc 4.7 (SUSE Linux)
configuration: --enable-gpl
libavutil 52. 62.100 / 52. 62.100
libavcodec 55. 47.100 / 55. 47.100
libavformat 55. 22.102 / 55. 22.102
libavdevice 55. 5.102 / 55. 5.102
libavfilter 4. 0.103 / 4. 0.103
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
libpostproc 52. 3.100 / 52. 3.100
Input #0, lavfi, from 'testsrc':
Duration: N/A, start: 0.000000, bitrate: N/A
Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 320x240 [SAR 1:1 DAR 4:3], 25 tbr, 25 tbn, 25 tbc
Output #0, avi, to 'out.avi':
Metadata:
ISFT : Lavf55.22.102
Stream #0:0: Video: ffvhuff (FFVH / 0x48564646), rgb24, 320x240 [SAR 1:1 DAR 4:3], q=2-31, 200 kb/s, 25 tbn, 25 tbc
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo -> ffvhuff)
Press [q] to stop, [?] for help
frame= 50 fps=0.0 q=0.0 Lsize= 1770kB time=00:00:02.00 bitrate=7251.2kbits/s
video:1763kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.385304%
comment:2 by , 13 years ago
I don't know where my mind was not putting that info in, aside from the build including some disparate patches. The patches I'd included in the build didn't touch anything related to ffvhuff, though.
>ffmpeg -i test.avs -vcodec ffvhuff -context 1 test.avi
ffmpeg version r59664 git-a8a9c74 Copyright (c) 2000-2014 the FFmpeg developers
built on Jan 7 2014 02:25:46 with gcc 4.8.2 (GCC)
libavutil 52. 62.100 / 52. 62.100
libavcodec 55. 47.100 / 55. 47.100
libavformat 55. 22.102 / 55. 22.102
libavdevice 55. 5.102 / 55. 5.102
libavfilter 4. 0.103 / 4. 0.103
libavresample 1. 1. 0 / 1. 1. 0
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
libpostproc 52. 3.100 / 52. 3.100
Input #0, avisynth, from 'test.avs':
Duration: 00:00:00.83, start: 0.000000, bitrate: 1 kb/s
Stream #0:0: Video: rawvideo (I420 / 0x30323449), yuv420p, 720x480, 23.98 fps, 23.98 t
br, 23.98 tbn, 23.98 tbc
Output #0, avi, to 'test.avi':
Metadata:
ISFT : Lavf55.22.102
Stream #0:0: Video: ffvhuff (FFVH / 0x48564646), yuv420p, 720x480, q=2-31, 200 kb/s, 2
3.98 tbn, 23.98 tbc
Stream mapping:
Stream #0:0 -> #0:0 (rawvideo -> ffvhuff)
Press [q] to stop, [?] for help
frame= 20 fps=2.6 q=0.0 Lsize= 2066kB time=00:00:00.83 bitrate=20293.9kbits/s
video:2060kB audio:0kB subtitle:0 global headers:0kB muxing overhead 0.292052%
>ffmpeg -buildconf
ffmpeg version r59664 git-a8a9c74 Copyright (c) 2000-2014 the FFmpeg developers
built on Jan 7 2014 02:25:46 with gcc 4.8.2 (GCC)
libavutil 52. 62.100 / 52. 62.100
libavcodec 55. 47.100 / 55. 47.100
libavformat 55. 22.102 / 55. 22.102
libavdevice 55. 5.102 / 55. 5.102
libavfilter 4. 0.103 / 4. 0.103
libavresample 1. 1. 0 / 1. 1. 0
libswscale 2. 5.101 / 2. 5.101
libswresample 0. 17.104 / 0. 17.104
libpostproc 52. 3.100 / 52. 3.100
configuration:
--prefix=/home/qyot27/win32_build
--cross-prefix=i686-w64-mingw32-
--enable-gpl
--enable-version3
--disable-w32threads
--enable-avresample
--disable-doc
--enable-concise-version
--enable-fontconfig
--enable-libfreetype
--enable-libass
--enable-libbluray
--enable-libcaca
--enable-libcdio
--enable-openal
--enable-libquvi
--enable-librtmp
--enable-libsoxr
--enable-libvidstab
--enable-libflite
--enable-libgme
--enable-libgsm
--enable-libilbc
--enable-libmp3lame
--enable-libnut
--enable-libopencore-amrnb
--enable-libopencore-amrwb
--enable-libopenjpeg
--enable-libopus
--enable-libschroedinger
--enable-libshine
--enable-libspeex
--enable-libtheora
--enable-libtwolame
--enable-libutvideo
--enable-libvo-aacenc
--enable-libvo-amrwbenc
--enable-libvorbis
--enable-libvpx
--enable-libwavpack
--enable-libx264
--enable-libxavs
--enable-libxvid
--enable-avisynth
--cpu=pentium3
--extra-cflags='-mfpmath=sse -march=pentium3 -msse -mtune=pentium3 -DPTW32_STATIC_LIB -DCACA_STATIC'
--extra-ldflags='-mconsole -Wl,--allow-multiple-definition'
--target-os=mingw32
--arch=x86
--pkg-config='pkg-config --static'
comment:4 by , 13 years ago
| Reproduced by developer: | set |
|---|---|
| Resolution: | → fixed |
| Status: | new → closed |



ffvhuff 4:2:0 -context 1 corrupted output