Opened 13 years ago
Closed 12 years ago
#458 closed defect (fixed)
Scale filter can create output which scale filter cannot accept on its input
Reported by: | Mark Himsley | Owned by: | Michael Niedermayer |
---|---|---|---|
Priority: | important | Component: | undetermined |
Version: | git-master | Keywords: | crash abort |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | yes | |
Analyzed by developer: | no |
Description
I know this is a bit of a bizarre filter chain, It's constructed to
demonstrate the point I'm hoping to make, without using any of my code.
Clock10.mov is just a PAL DV, but I think any _interlaced_ file will do.
./ffmpeg -loglevel debug -i ~/Movies/Clock10.mov -vf
"slicify=32,scale=0:0:interl=1,format=yuv420p,scale=0:0:interl=1,format=yuv422p,scale=0:0:interl=1,format=yuv420p"
-pix_fmt yuv420p -vframes 1 -an -f rawvideo -y /dev/null
Essentially, the 'y' parameter in the slices of the output of the second
scale is not aligned by 4 (the first slice is, in fact, 26 lines high,
so the second slice starts at 26) so it is not valid for the input of
the third scale.
I don't think the output of this filter chain should throw an assert.
Change History (7)
comment:1 by , 13 years ago
Status: | new → open |
---|
comment:2 by , 13 years ago
ffmpeg -v 9 -loglevel 99 -i ~/Movies/Clock10.mov -vf "slicify=32,scale=0:0:interl=1,format=yuv420p,scale=0:0:interl=1,format=yuv422p,scale=0:0:interl=1,format=yuv420p" -pix_fmt yuv420p -vframes 1 -an -f rawvideo -y /dev/null ffmpeg version N-32383-ga2b66a3, Copyright (c) 2000-2011 the FFmpeg developers built on Sep 7 2011 20:41:27 with gcc 4.0.1 (Apple Inc. build 5494) configuration: --extra-cflags='-I${PREFIX}/include -I/opt/local/include' --extra-libs='-L${PREFIX}/lib -L/opt/local/lib -mmacosx-version-min=10.5' --prefix=/Users/mdsh/ffmpeg --enable-shared --disable-indev=jack --cc=gcc-4.0 --enable-gpl --enable-nonfree --enable-pthreads libavutil 51. 16. 0 / 51. 16. 0 libavcodec 53. 13. 0 / 53. 13. 0 libavformat 53. 11. 0 / 53. 11. 0 libavdevice 53. 3. 0 / 53. 3. 0 libavfilter 2. 39. 0 / 2. 39. 0 libswscale 2. 1. 0 / 2. 1. 0 libpostproc 51. 2. 0 / 51. 2. 0 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x12b9000] Format mov,mp4,m4a,3gp,3g2,mj2 probed with size=2048 and score=95 [dvvideo @ 0x12cf800] Unsupported bit depth: 0 [dvvideo @ 0x12bae00] Unsupported bit depth: 0 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x12b9000] All info found Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/Users/mdsh/Movies/Clock10.mov': Metadata: creation_time : 2009-06-23 19:40:06 Duration: 00:00:10.00, start: 0.000000, bitrate: 29011 kb/s Stream #0.0(eng), 1, 1/2500: Video: dvvideo (dvcp / 0x70637664), yuv420p, 720x576 [SAR 16:15 DAR 4:3], 1/25, 28800 kb/s, 25 fps, 25 tbr, 2500 tbn, 25 tbc Metadata: creation_time : 2009-06-23 19:40:07 Stream #0.1(eng), 1, 1/2500: Video: dvvideo (dvcp / 0x70637664), yuv420p, 720x576 [SAR 16:15 DAR 4:3], 1/25, 28800 kb/s, 25 fps, 25 tbr, 2500 tbn, 25 tbc Metadata: creation_time : 2009-06-23 19:40:07 [buffer @ 0xd63920] w:720 h:576 pixfmt:yuv420p tb:1/1000000 sar:16/15 sws_param: [scale @ 0xd63e20] w:720 h:576 fmt:yuv420p -> w:720 h:576 fmt:yuv420p flags:0x4 [scale @ 0xd64520] w:720 h:576 fmt:yuv420p -> w:720 h:576 fmt:yuv422p flags:0x4 [scale @ 0xd64a20] w:720 h:576 fmt:yuv422p -> w:720 h:576 fmt:yuv420p flags:0x4 [dvvideo @ 0x12cf800] Unsupported bit depth: 0 Output #0, rawvideo, to '/dev/null': Metadata: creation_time : 2009-06-23 19:40:06 encoder : Lavf53.11.0 Stream #0.0(eng), 0, 1/90000: Video: rawvideo (I420 / 0x30323449), yuv420p, 720x576 [SAR 16:15 DAR 4:3], 1/25, q=2-31, 200 kb/s, 90k tbn, 25 tbc Metadata: creation_time : 2009-06-23 19:40:07 Stream mapping: Stream #0.0 -> #0.0 (dvvideo -> rawvideo) Press [q] to stop, [?] for help [slicify @ 0xd63ea0] h:32 Assertion y%4 == 0 failed at libavfilter/vf_scale.c:316 Abort trap: 6
comment:3 by , 13 years ago
Reproduced by developer: | set |
---|
$ ./ffmpeg -i tests/lena.pnm -vf "slicify=32,scale=0:0,scale=0:0,format=yuv422p,scale=0:0:interl=1" -f null - ffmpeg version N-32463-g3fec40b, Copyright (c) 2000-2011 the FFmpeg developers built on Sep 11 2011 14:22:55 with gcc 4.5.3 configuration: --cc=/usr/local/gcc-4.5.3/bin/gcc libavutil 51. 16. 0 / 51. 16. 0 libavcodec 53. 13. 0 / 53. 13. 0 libavformat 53. 12. 0 / 53. 12. 0 libavdevice 53. 3. 0 / 53. 3. 0 libavfilter 2. 39. 0 / 2. 39. 0 libswscale 2. 1. 0 / 2. 1. 0 Input #0, image2, from 'tests/lena.pnm': Duration: 00:00:00.04, start: 0.000000, bitrate: N/A Stream #0.0: Video: ppm, rgb24, 256x256, 25 tbr, 25 tbn, 25 tbc [buffer @ 0x12a4640] w:256 h:256 pixfmt:rgb24 tb:1/1000000 sar:0/1 sws_param: [scale @ 0x12a7800] w:256 h:256 fmt:rgb24 -> w:256 h:256 fmt:yuv420p flags:0x4 [scale @ 0x12a80a0] w:256 h:256 fmt:yuv420p -> w:256 h:256 fmt:yuv422p flags:0x4 [scale @ 0x12a90e0] w:256 h:256 fmt:yuv422p -> w:256 h:256 fmt:rgb24 flags:0x4 [swscaler @ 0x12e8b20] No accelerated colorspace conversion found from yuv422p to rgb24. [swscaler @ 0x12ee6c0] No accelerated colorspace conversion found from yuv422p to rgb24. [swscaler @ 0x12f4260] No accelerated colorspace conversion found from yuv422p to rgb24. Output #0, null, to 'pipe:': Metadata: encoder : Lavf53.12.0 Stream #0.0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 256x256, q=2-31, 200 kb/s, 90k tbn, 25 tbc Stream mapping: Stream #0.0 -> #0.0 (ppm -> rawvideo) Press [q] to stop, [?] for help Assertion y%4 == 0 failed at libavfilter/vf_scale.c:316 Aborted
comment:4 by , 13 years ago
I have a better and much simpler demonstration, but it should mean the change of title for this ticket:
Pad filter can create output which scale filter cannot accept on its input.
Since the pad filter adds slices if it's adding lines at the top or bottom of the input, it's trivial to send slices into the interlaced scale filter that do not start at line%4.
ffmpeg -threads 4 -i ../576i25/Clock10tone.mov -an -vf pad=in_w:in_h+2:0:2:white,scale=0:0:interl=1,format=uyvy422 -r 25 -vcodec rawvideo -pix_fmt uyvy422 -y out.yuv ffmpeg version N-31938-g3a9e227, Copyright (c) 2000-2011 the FFmpeg developers built on Aug 17 2011 14:37:20 with gcc 4.4.3 configuration: --cpu=i686 --enable-static --extra-cflags='--static -I$PREFIX/include' --extra-libs='-static -L$PREFIX/lib' --prefix=/usr/local --disable-ffplay --disable-ffprobe --enable-gpl --enable-nonfree --enable-pthreads --enable-x11grab --enable-libdirac --enable-libfaac --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid libavutil 51. 12. 0 / 51. 12. 0 libavcodec 53. 10. 0 / 53. 10. 0 libavformat 53. 7. 0 / 53. 7. 0 libavdevice 53. 3. 0 / 53. 3. 0 libavfilter 2. 32. 0 / 2. 32. 0 libswscale 2. 0. 0 / 2. 0. 0 libpostproc 51. 2. 0 / 51. 2. 0 [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb4bfc20] Unimplemented container channel layout. [mov,mp4,m4a,3gp,3g2,mj2 @ 0xb4bfc20] If you want to help, upload a sample of this file to ftp://upload.ffmpeg.org/MPlayer/incoming/ and contact the ffmpeg-devel mailing list. Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/home/himslm01/Videos/576i25/Clock10tone.mov': Metadata: major_brand : qt minor_version : 537199360 compatible_brands: qt creation_time : 2009-07-16 17:23:31 Duration: 00:00:10.00, start: 0.000000, bitrate: 30334 kb/s Stream #0.0(eng): Video: dvvideo, yuv420p, 720x576 [SAR 64:45 DAR 16:9], 28800 kb/s, 25 fps, 25 tbr, 25 tbn, 25 tbc Metadata: creation_time : 2009-07-16 17:23:31 Stream #0.1(eng): Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s Metadata: creation_time : 2009-07-16 17:23:31 [buffer @ 0xb4c80a0] w:720 h:576 pixfmt:yuv420p tb:1/1000000 sar:64/45 sws_param: [pad @ 0xb4ba320] w:720 h:576 -> w:720 h:578 x:0 y:2 color:0xEB8080FF[yuva] [scale @ 0xb4b9900] w:720 h:578 fmt:yuv420p -> w:720 h:578 fmt:uyvy422 flags:0x4 Output #0, rawvideo, to 'out.yuv': Metadata: major_brand : qt minor_version : 537199360 compatible_brands: qt creation_time : 2009-07-16 17:23:31 encoder : Lavf53.7.0 Stream #0.0(eng): Video: rawvideo, uyvy422, 720x578 [SAR 64:45 DAR 512:289], q=2-31, 200 kb/s, 90k tbn, 25 tbc Metadata: creation_time : 2009-07-16 17:23:31 Stream mapping: Stream #0.0 -> #0.0 Press [q] to stop, [?] for help Assertion y%4 == 0 failed at libavfilter/vf_scale.c:311
comment:5 by , 12 years ago
$ ./ffmpeg -i fate-suite/svq3/Vertical400kbit.sorenson3.mov -vf pad=in_w:in_h+2:0:2,scale=0:0:interl=1,format=uyvy422 -f null - ffmpeg version N-44632-ga16c512 Copyright (c) 2000-2012 the FFmpeg developers built on Sep 20 2012 16:11:00 with gcc 4.5.3 (GCC) configuration: --cc=/usr/local/gcc-4.5.3/bin/gcc --enable-gpl libavutil 51. 73.101 / 51. 73.101 libavcodec 54. 56.100 / 54. 56.100 libavformat 54. 27.101 / 54. 27.101 libavdevice 54. 2.101 / 54. 2.101 libavfilter 3. 16.105 / 3. 16.105 libswscale 2. 1.101 / 2. 1.101 libswresample 0. 15.100 / 0. 15.100 libpostproc 52. 0.100 / 52. 0.100 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x14f0240] max_analyze_duration 5000000 reached at 5000998 Guessed Channel Layout for Input Stream #0.1 : mono Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'fate-suite/svq3/Vertical400kbit.sorenson3.mov': Metadata: creation_time : 2001-03-20 16:17:18 title : Vertical Online SV3 Demo title-eng : Vertical Online SV3 Demo artist : Logan Kelsey artist-eng : Logan Kelsey copyright : © Vertical Online 2001 copyright-eng : © Vertical Online 2001 encoder : Sorenson Video 3 encoder-eng : Sorenson Video 3 Duration: 00:00:43.57, start: 0.000000, bitrate: 580 kb/s Stream #0:0(eng): Video: svq3 (SVQ3 / 0x33515653), yuvj420p, 320x240, 391 kb/s, 30.02 fps, 30 tbr, 600 tbn, 600 tbc Metadata: creation_time : 2001-03-20 16:17:18 handler_name : Apple Alias Data Handler Stream #0:1(eng): Audio: adpcm_ima_qt (ima4 / 0x34616D69), 44100 Hz, mono, s16, 176 kb/s Metadata: creation_time : 2001-03-20 16:17:18 handler_name : Apple Alias Data Handler Output #0, null, to 'pipe:': Metadata: encoder-eng : Sorenson Video 3 title : Vertical Online SV3 Demo title-eng : Vertical Online SV3 Demo artist : Logan Kelsey artist-eng : Logan Kelsey copyright : © Vertical Online 2001 copyright-eng : © Vertical Online 2001 encoder : Lavf54.27.101 Stream #0:0(eng): Video: rawvideo (UYVY / 0x59565955), uyvy422, 320x242, q=2-31, 200 kb/s, 90k tbn, 30 tbc Metadata: creation_time : 2001-03-20 16:17:18 handler_name : Apple Alias Data Handler Stream #0:1(eng): Audio: pcm_s16le, 44100 Hz, mono, s16, 705 kb/s Metadata: creation_time : 2001-03-20 16:17:18 handler_name : Apple Alias Data Handler Stream mapping: Stream #0:0 -> #0:0 (svq3 -> rawvideo) Stream #0:1 -> #0:1 (adpcm_ima_qt -> pcm_s16le) Press [q] to stop, [?] for help Multiple frames in a packet from stream 1 Assertion y%(2<<scale->vsub) == 0 failed at libavfilter/vf_scale.c:383 Aborted
comment:6 by , 12 years ago
Component: | swscale → undetermined |
---|---|
Keywords: | crash abort added |
Priority: | normal → important |
comment:7 by , 12 years ago
Resolution: | → fixed |
---|---|
Status: | open → closed |
Not reproducible with latest git head.
Complete, uncut output missing.
(And please consider pointing to a sample in http://samples.mplayerhq.hu/fate-suite/ or http://samples.mplayerhq.hu that allows to reproduce the problem.)