Opened 5 years ago

Last modified 6 months ago

#1178 reopened defect

tiff enc: visible green dots with odd width and -pix_fmt yuv410p

Reported by: ami_stuff Owned by:
Priority: normal Component: avcodec
Version: git-master Keywords: tif
Cc: khali 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)

yuv410p.avi (48.1 KB) - added by ami_stuff 5 years ago.
out.tif (86.0 KB) - added by ami_stuff 5 years ago.
out.png (60.6 KB) - added by ami_stuff 5 years ago.
knoppix.jpg (308.6 KB) - added by ami_stuff 2 years ago.

Download all attachments as: .zip

Change History (17)

Changed 5 years ago by ami_stuff

comment:1 Changed 5 years ago by cehoyos

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

comment:2 Changed 5 years ago by ami_stuff

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%

Changed 5 years ago by ami_stuff

comment:3 Changed 5 years ago by ami_stuff

output attached

comment:4 follow-up: Changed 5 years ago by 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?

Changed 5 years ago by ami_stuff

comment:5 in reply to: ↑ 4 Changed 5 years ago by ami_stuff

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 Changed 5 years ago by cehoyos

  • Resolution set to worksforme
  • Status changed from new to 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)

comment:7 Changed 2 years ago by ami_stuff

It's really interesting why I get these dots and you don't.

Changed 2 years ago by ami_stuff

comment:8 Changed 2 years ago by cehoyos

  • Component changed from undetermined to avcodec
  • Keywords tif added
  • Reproduced by developer set
  • Resolution worksforme deleted
  • Status changed from closed to reopened
  • Version changed from unspecified to git-master

If I knew on which computer I originally tested...

comment:9 Changed 18 months ago by richardpl

I assume we lavc is correct and all others are broken.

comment:10 follow-up: Changed 12 months ago by khali

  • Cc jdelvare@suse.de 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 in reply to: ↑ 10 Changed 12 months ago by cehoyos

  • Cc khali 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 Changed 12 months ago by khali

  • Cc jdelvare@suse.de removed

comment:13 Changed 6 months ago by cehoyos

Also reproducible with tiff2rgba from libtiff v4.0.6.

Note: See TracTickets for help on using tickets.