[FFmpeg-trac] #5916(avfilter:new): extractplanes YUV and mergeplanes YUV something strange >8 bit depth

FFmpeg trac at avcodec.org
Sat Oct 29 14:30:41 EEST 2016


#5916: extractplanes YUV and mergeplanes YUV something strange >8 bit depth
-------------------------------------+-------------------------------------
             Reporter:  nicol        |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  avfilter     |                  Version:  git-
             Keywords:  mergeplanes  |  master
             Blocking:               |               Blocked By:
Analyzed by developer:  0            |  Reproduced by developer:  0
-------------------------------------+-------------------------------------
 Summary of the bug: Extractplanes Y, U, V and mergeplanes that Y, U, V
 outputs strange color with same >8 bit depth filter setting.
 yuv444p9le, yuv444p10le and yuv444p14le pixel of right are green, left are
 strange.
 yuv444p9be, yuv444p10be, yuv444p14be, yuv444p16be and yuv444p16le pixel of
 right are green, but left are normal.

 How to reproduce:
 {{{
 % ffmpeg -v 9 -loglevel 99 -f lavfi -i yuvtestsrc -filter_complex
 format=yuv444p16le,extractplanes=y+u+v
 [y][u][v];[y][u][v]mergeplanes=0x001020:yuv444p16le -vframes 1
 yuv444p16le.png
 ffmpeg version N-82143-gbf14393 Copyright (c) 2000-2016 the FFmpeg
 developers
   built with gcc 5.4.0 (GCC)
   configuration: --enable-gpl --enable-version3 --disable-w32threads
 --enable-dxva2 --enable-libmfx --enable-n
 venc --enable-avisynth --enable-bzlib --enable-libebur128 --enable-
 fontconfig --enable-frei0r --enable-gnutls
 --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b
 --enable-libcaca --enable-libfreetype --ena
 ble-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-
 libmp3lame --enable-libopencore-amrnb
  --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg
 --enable-libopus --enable-librtmp --enab
 le-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex
 --enable-libtheora --enable-libtwolam
 e --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-
 libvpx --enable-libwavpack --enable-
 libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-
 libxvid --enable-libzimg --enable-lzma --e
 nable-decklink --enable-zlib
   libavutil      55. 35.100 / 55. 35.100
   libavcodec     57. 65.100 / 57. 65.100
   libavformat    57. 57.100 / 57. 57.100
   libavdevice    57.  2.100 / 57.  2.100
   libavfilter     6. 66.100 /  6. 66.100
   libswscale      4.  3.100 /  4.  3.100
   libswresample   2.  4.100 /  2.  4.100
   libpostproc    54.  2.100 / 54.  2.100
 Splitting the commandline.
 Reading option '-v' ... matched as option 'v' (set logging level) with
 argument '9'.
 Reading option '-loglevel' ... matched as option 'loglevel' (set logging
 level) with argument '99'.
 Reading option '-f' ... matched as option 'f' (force format) with argument
 'lavfi'.
 Reading option '-i' ... matched as input file with argument 'yuvtestsrc'.
 Reading option '-filter_complex' ... matched as option 'filter_complex'
 (create a complex filtergraph) with ar
 gument
 'format=yuv444p16le,extractplanes=y+u+v[y][u][v];[y][u][v]mergeplanes=0x001020:yuv444p16le'.
 Reading option '-vframes' ... matched as option 'vframes' (set the number
 of video frames to output) with argu
 ment '1'.
 Reading option 'yuv444p16le.png' ... matched as output file.
 Finished splitting the commandline.
 Parsing a group of options: global .
 Applying option v (set logging level) with argument 9.
 Applying option filter_complex (create a complex filtergraph) with
 argument format=yuv444p16le,extractplanes=y
 +u+v[y][u][v];[y][u][v]mergeplanes=0x001020:yuv444p16le.
 Successfully parsed a group of options.
 Parsing a group of options: input file yuvtestsrc.
 Applying option f (force format) with argument lavfi.
 Successfully parsed a group of options.
 Opening an input file: yuvtestsrc.
 detected 4 logical cores
 [Parsed_yuvtestsrc_0 @ 000000000032a6a0] size:320x240 rate:25/1
 duration:-1.000000 sar:1/1
 [AVFilterGraph @ 000000000051af20] query_formats: 2 queried, 1 merged, 0
 already done, 0 delayed
 [lavfi @ 0000000000326fa0] All info found
 [lavfi @ 0000000000326fa0] stream 0: start_time: 0.000 duration:
 -368934881474191040.000
 [lavfi @ 0000000000326fa0] format: start_time: 0.000 duration:
 -9223372036854.775 bitrate=0 kb/s
 Input #0, lavfi, from 'yuvtestsrc':
   Duration: N/A, start: 0.000000, bitrate: N/A
     Stream #0:0, 1, 1/25: Video: rawvideo, 1 reference frame (444P /
 0x50343434), yuv444p, 320x240 [SAR 1:1 DA
 R 4:3], 0/1, 25 tbr, 25 tbn, 25 tbc
 Successfully opened the file.
 [Parsed_format_0 @ 0000000000328e00] compat: called with
 args=[yuv444p16le]
 [Parsed_format_0 @ 0000000000328e00] Setting 'pix_fmts' to value
 'yuv444p16le'
 [Parsed_extractplanes_1 @ 00000000005a5560] Setting 'planes' to value
 'y+u+v'
 [Parsed_mergeplanes_2 @ 00000000005a5620] Setting 'mapping' to value
 '0x001020'
 [Parsed_mergeplanes_2 @ 00000000005a5620] Setting 'format' to value
 'yuv444p16le'
 Parsing a group of options: output file yuv444p16le.png.
 Applying option vframes (set the number of video frames to output) with
 argument 1.
 Successfully parsed a group of options.
 Opening an output file: yuv444p16le.png.
 Successfully opened the file.
 [Parsed_format_0 @ 00000000005a5560] compat: called with
 args=[yuv444p16le]
 [Parsed_format_0 @ 00000000005a5560] Setting 'pix_fmts' to value
 'yuv444p16le'
 [Parsed_extractplanes_1 @ 00000000005a5620] Setting 'planes' to value
 'y+u+v'
 [Parsed_mergeplanes_2 @ 00000000005a5700] Setting 'mapping' to value
 '0x001020'
 [Parsed_mergeplanes_2 @ 00000000005a5700] Setting 'format' to value
 'yuv444p16le'
 [graph 0 input from stream 0:0 @ 00000000005a57c0] Setting 'video_size' to
 value '320x240'
 [graph 0 input from stream 0:0 @ 00000000005a57c0] Setting 'pix_fmt' to
 value '5'
 [graph 0 input from stream 0:0 @ 00000000005a57c0] Setting 'time_base' to
 value '1/25'
 [graph 0 input from stream 0:0 @ 00000000005a57c0] Setting 'pixel_aspect'
 to value '1/1'
 [graph 0 input from stream 0:0 @ 00000000005a57c0] Setting 'sws_param' to
 value 'flags=2'
 [graph 0 input from stream 0:0 @ 00000000005a57c0] Setting 'frame_rate' to
 value '25/1'
 [graph 0 input from stream 0:0 @ 00000000005a57c0] w:320 h:240
 pixfmt:yuv444p tb:1/25 fr:25/1 sar:1/1 sws_para
 m:flags=2
 [format @ 00000000005a5960] compat: called with
 args=[rgb24|rgba|rgb48be|rgba64be|pal8|gray|ya8|gray16be|ya16b
 e|monob]
 [format @ 00000000005a5960] Setting 'pix_fmts' to value
 'rgb24|rgba|rgb48be|rgba64be|pal8|gray|ya8|gray16be|ya
 16be|monob'
 [auto-inserted scaler 0 @ 00000000005a5b00] w:iw h:ih flags:'bilinear'
 interl:0
 [Parsed_format_0 @ 00000000005a5560] auto-inserting filter 'auto-inserted
 scaler 0' between the filter 'graph
 0 input from stream 0:0' and the filter 'Parsed_format_0'
 [auto-inserted scaler 1 @ 00000000005a5be0] w:iw h:ih flags:'bilinear'
 interl:0
 [format @ 00000000005a5960] auto-inserting filter 'auto-inserted scaler 1'
 between the filter 'Parsed_mergepla
 nes_2' and the filter 'format'
 [AVFilterGraph @ 000000000058f560] query_formats: 6 queried, 5 merged, 2
 already done, 0 delayed
 [auto-inserted scaler 1 @ 00000000005a5be0] picking rgb48be out of 9
 ref:yuv444p16le alpha:0
 [auto-inserted scaler 0 @ 00000000005a5b00] w:320 h:240 fmt:yuv444p
 sar:1/1 -> w:320 h:240 fmt:yuv444p16le sar
 :1/1 flags:0x2
 [Parsed_mergeplanes_2 @ 00000000005a5700] [framesync @ 00000000005b04c8]
 Selected 1/25 time base
 [Parsed_mergeplanes_2 @ 00000000005a5700] [framesync @ 00000000005b04c8]
 Sync level 1
 [swscaler @ 0000000003a01d80] Forcing full internal H chroma due to input
 having non subsampled chroma
 [auto-inserted scaler 1 @ 00000000005a5be0] w:320 h:240 fmt:yuv444p16le
 sar:1/1 -> w:320 h:240 fmt:rgb48be sar
 :1/1 flags:0x2
 Output #0, image2, to 'yuv444p16le.png':
   Metadata:
     encoder         : Lavf57.57.100
     Stream #0:0, 0, 1/25: Video: png, 1 reference frame, rgb48be, 320x240
 [SAR 1:1 DAR 4:3], 0/1, q=2-31, 200
 kb/s, 25 fps, 25 tbn, 25 tbc
     Metadata:
       encoder         : Lavc57.65.100 png
 Stream mapping:
   Stream #0:0 (rawvideo) -> format
   mergeplanes -> Stream #0:0 (png)
 Press [q] to stop, [?] for help
 cur_dts is invalid (this is harmless if it occurs once at the start per
 stream)
 [rawvideo @ 000000000032f4a0] PACKET SIZE: 230400, STRIDE: 960
 [swscaler @ 0000000003bdf0c0] Forcing full internal H chroma due to input
 having non subsampled chroma
 [auto-inserted scaler 1 @ 00000000005a5be0] w:320 h:240 fmt:yuv444p16le
 sar:0/1 -> w:320 h:240 fmt:rgb48be sar
 :0/1 flags:0x2
 Clipping frame in rate conversion by 0.000008
 No more output streams to write to, finishing.
 [file @ 0000000000599a60] Setting default whitelist 'file,crypto'
 [AVIOContext @ 00000000005a91a0] Statistics: 0 seeks, 1 writeouts
 frame=    1 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A
 speed=0.981x
 video:4kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB
 muxing overhead: unknown
 Input file #0 (yuvtestsrc):
   Input stream #0:0 (video): 1 packets read (230400 bytes); 1 frames
 decoded;
   Total: 1 packets (230400 bytes) demuxed
 Output file #0 (yuv444p16le.png):
   Output stream #0:0 (video): 1 frames encoded; 1 packets muxed (3901
 bytes);
   Total: 1 packets (3901 bytes) muxed
 1 frames successfully decoded, 0 decoding errors
 ffmpeg version N-82143-gbf14393
 built on ... Zeranoe
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/5916>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list