Opened 12 years ago
Last modified 6 months ago
#1178 reopened defect
tiff enc: odd-sized yuv410p tiff image decodes in other apps with visible green dots
| Reported by: | ami_stuff | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | avcodec |
| Version: | git-master | Keywords: | tif |
| Cc: | Jean Delvare | Blocked By: | |
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | no |
Description
not reproducible with -vcodec ffv1 / rawvideo / svq1
C:\>ffmpeg -i yuv410p.avi out.tif
ffmpeg version N-39492-gae3ee72 Copyright (c) 2000-2012 the FFmpeg developers
built on Apr 4 2012 02:19:52 with gcc 4.5.0 20100414 (Fedora MinGW 4.5.0-1.fc
14)
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' --extra-cflags='--static -I/var/www/users/research/ffmpeg/snapshots/buil
d/include' --extra-ldflags='-static -L/var/www/users/research/ffmpeg/snapshots/b
uild/lib' --enable-bzlib --enable-zlib --enable-gpl --enable-version3 --enable-n
onfree --enable-libx264 --enable-libspeex --enable-libtheora --enable-libvorbis
--enable-libfaac --enable-libxvid --enable-libopencore-amrnb --enable-libopencor
e-amrwb --enable-libmp3lame --enable-libvpx --disable-decoder=libvpx
libavutil 51. 44.100 / 51. 44.100
libavcodec 54. 12.100 / 54. 12.100
libavformat 54. 3.100 / 54. 3.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 66.101 / 2. 66.101
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 10.100 / 0. 10.100
libpostproc 52. 0.100 / 52. 0.100
Input #0, avi, from 'yuv410p.avi':
Metadata:
encoder : Lavf54.3.100
Duration: 00:00:00.04, start: 0.000000, bitrate: 9856 kb/s
Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv410p, 323x240, 25 tbr, 25 t
bn, 25 tbc
[buffer @ 0x1db1b20] w:323 h:240 pixfmt:yuv410p tb:1/1000000 sar:0/1 sws_param:f
lags=2
Output #0, image2, to 'out.tif':
Metadata:
encoder : Lavf54.3.100
Stream #0:0: Video: tiff, yuv410p, 323x240, q=2-31, 200 kb/s, 90k tbn, 25 tb
c
Stream mapping:
Stream #0:0 -> #0:0 (ffv1 -> tiff)
Press [q] to stop, [?] for help
frame= 1 fps=0.0 q=0.0 Lsize= 0kB time=00:00:00.04 bitrate= 0.0kbits/
s
video:86kB audio:0kB global headers:0kB muxing overhead -100.000000%
Attachments (4)
Change History (21)
by , 12 years ago
| Attachment: | yuv410p.avi added |
|---|
comment:1 by , 12 years ago
comment:2 by , 12 years ago
I get the same result with my old ffmpeg's build and build from the net (9 april) - tested with ImageMagick and IrfanView.
C:\>ffmpeg -i yuv410p.avi out.tif
ffmpeg version N-39645-gc311afc Copyright (c) 2000-2012 the FFmpeg developers
built on Apr 9 2012 02:36:41 with gcc 4.5.0 20100414 (Fedora MinGW 4.5.0-1.fc
14)
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' --extra-cflags='--static -I/var/www/users/research/ffmpeg/snapshots/buil
d/include' --extra-ldflags='-static -L/var/www/users/research/ffmpeg/snapshots/b
uild/lib' --enable-bzlib --enable-zlib --enable-gpl --enable-version3 --enable-n
onfree --enable-libx264 --enable-libspeex --enable-libtheora --enable-libvorbis
--enable-libfaac --enable-libxvid --enable-libopencore-amrnb --enable-libopencor
e-amrwb --enable-libmp3lame --enable-libvpx --disable-decoder=libvpx
libavutil 51. 45.100 / 51. 45.100
libavcodec 54. 14.100 / 54. 14.100
libavformat 54. 3.100 / 54. 3.100
libavdevice 53. 4.100 / 53. 4.100
libavfilter 2. 67.101 / 2. 67.101
libswscale 2. 1.100 / 2. 1.100
libswresample 0. 10.100 / 0. 10.100
libpostproc 52. 0.100 / 52. 0.100
Input #0, avi, from 'yuv410p.avi':
Metadata:
encoder : Lavf54.3.100
Duration: 00:00:00.04, start: 0.000000, bitrate: 9856 kb/s
Stream #0:0: Video: ffv1 (FFV1 / 0x31564646), yuv410p, 323x240, 25 tbr, 25 t
bn, 25 tbc
[buffer @ 0x1dc1c80] w:323 h:240 pixfmt:yuv410p tb:1/1000000 sar:0/1 sws_param:f
lags=2
Output #0, image2, to 'out.tif':
Metadata:
encoder : Lavf54.3.100
Stream #0:0: Video: tiff, yuv410p, 323x240, q=2-31, 200 kb/s, 90k tbn, 25 tb
c
Stream mapping:
Stream #0:0 -> #0:0 (ffv1 -> tiff)
Press [q] to stop, [?] for help
frame= 1 fps=0.0 q=0.0 Lsize= 0kB time=00:00:00.04 bitrate= 0.0kbits/
s
video:86kB audio:0kB global headers:0kB muxing overhead -100.000000%
by , 12 years ago
follow-up: 5 comment:4 by , 12 years ago
out.tif looks fine with current ImageMagick (I tested 6.5.4-8 and 6.7.6-4) and an old Gimp version (2.6.8).
How does the result of convert out.tif out.png look for you?
by , 12 years ago
comment:5 by , 12 years ago
Replying to cehoyos:
out.tif looks fine with current ImageMagick (I tested 6.5.4-8 and 6.7.6-4) and an old Gimp version (2.6.8).
How does the result of convert out.tif out.png look for you?
Output attached (version 6.7.6-5).
comment:6 by , 12 years ago
| Resolution: | → worksforme |
|---|---|
| Status: | new → closed |
I get a bit-identical out.tif with FFmpeg and out.tif looks fine with Gimp, ImageMagick and Okular, so I assume there is no FFmpeg-bug.
(I get a different, correct result with convert out.tif out.png)
by , 10 years ago
| Attachment: | knoppix.jpg added |
|---|
comment:8 by , 10 years ago
| Component: | undetermined → avcodec |
|---|---|
| Keywords: | tif added |
| Reproduced by developer: | set |
| Resolution: | worksforme |
| Status: | closed → reopened |
| Version: | unspecified → git-master |
If I knew on which computer I originally tested...
follow-up: 11 comment:10 by , 8 years ago
| Cc: | added |
|---|
I am seeing a similar issue. The following command generates a file with some green in the bottom right hand side corner, instead of the expected white:
% ffmpeg -f lavfi -i "color=color=white:size=20x20" -frames:v 1 -vf "format=yuv410p" -f image2 20x20_yuv410p.tiff
Note that 20 isn't odd, it's even a multiple of 4, which should be yuv410p-friendly. The bug also shows up for 18x18, 19x19 and 21x21, but not 17x17 nor 22x22. It doesn't show up when writing to JPEG instead of TIFF. It doesn't show up with format=yuv411p.
The green spot shows up with eog, evince, gimp and "display". When opening the suspect TIFF files with evince, gimp or "display", they complain with: "discarding 8 bytes to avoid buffer overrun." I suppose that the discarded bytes are creating the corruption.
comment:11 by , 8 years ago
| Cc: | added |
|---|
Replying to khali:
I am seeing a similar issue.
(Is it possible that you did not test the sample attached here?)
This issue is about libavcodec encoding yuv410p input to tiff and ImageMagick and FFmpeg disagreeing on how to display / encode the rightmost pixels if the tiff file has odd width (and gimp agreeing with ImageMagick). It is only related to a specific part of the tiff specification (and its interpretation) afaict.
The issue you just reported is related to libswscale (and unrelated to tiff apart from the fact that it is easier to reproduce with tiff input).
comment:12 by , 8 years ago
| Cc: | removed |
|---|
comment:14 by , 6 months ago
| Resolution: | → fixed |
|---|---|
| Status: | reopened → closed |
it looks like something has fixed this issue, but
there is now a green line with
ffmpeg -i yuv410p.avi -vcodec svq1 svq1.mov ffmpeg -i svq1.mov out.bmp
conversion
oh well
comment:15 by , 6 months ago
| Resolution: | fixed |
|---|---|
| Status: | closed → reopened |
| Summary: | tiff enc: visible green dots with odd width and -pix_fmt yuv410p → tiff enc: odd-sized yuv410p tiff image decodes in other apps with visible green dots |
actually this issue is not fixed, because this ticket is not about how ffmpeg decodes "out.tif" file, but how other apps like tiff2rgba and gimp decodes it, and green dots are still visible there



Works fine here, could you test with ImageMagick / Gimp or attach out.tif?