Opened 10 years ago

Closed 10 years ago

#3880 closed enhancement (fixed)

implement full chroma interpolation for yuva444p10 to rgb48

Reported by: cbsrobot Owned by:
Priority: wish Component: swscale
Version: git-master Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Please implement full chroma support for yuva444p10 to rgb48 conversion.

ffmpeg -i fate-suite/prores/prores4444_with_transparency.mov -pix_fmt rgb48le output-%04d.tif
ffmpeg version N-65628-g6c36b3a Copyright (c) 2000-2014 the FFmpeg developers
  built on Aug 14 2014 16:45:57 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
  configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libaacplus --enable-libass --enable-libcelt --enable-libfaac --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-openssl --enable-libopus --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvo-aacenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-iconv --prefix=/usr/local
  libavutil      54.  3.100 / 54.  3.100
  libavcodec     56.  0.100 / 56.  0.100
  libavformat    56.  1.100 / 56.  1.100
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  0.100 /  5.  0.100
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  0.100 /  1.  0.100
  libpostproc    53.  0.100 / 53.  0.100
Guessed Channel Layout for  Input Stream #0.1 : stereo
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/fate-suite/prores/prores4444_with_transparency.mov':
  Metadata:
    major_brand     : qt
    minor_version   : 537199360
    compatible_brands: qt
    creation_time   : 2012-09-12 08:48:56
  Duration: 00:00:00.04, start: 0.000000, bitrate: 43461 kb/s
    Stream #0:0(eng): Video: prores (ap4h / 0x68347061), yuva444p10le, 1920x1080, 40697 kb/s, SAR 1:1 DAR 16:9, 25 fps, 25 tbr, 25 tbn, 25 tbc (default)
    Metadata:
      creation_time   : 2012-09-12 08:48:56
      handler_name    : Apple Alias Data Handler
      encoder         : Apple ProRes 4444
      timecode        : 01:00:00:00
    Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, 2 channels, s16, 1536 kb/s (default)
    Metadata:
      creation_time   : 2012-09-12 08:48:56
      handler_name    : Apple Alias Data Handler
    Stream #0:2(eng): Data: none (tmcd / 0x64636D74), 0 kb/s (default)
    Metadata:
      creation_time   : 2012-09-12 08:48:57
      handler_name    : Apple Alias Data Handler
      timecode        : 01:00:00:00
[swscaler @ 0x7f97fa000600] full chroma interpolation for destination format 'rgb48le' not yet implemented
Output #0, image2, to 'output-%04d.tif':
  Metadata:
    major_brand     : qt
    minor_version   : 537199360
    compatible_brands: qt
    encoder         : Lavf56.1.100
    Stream #0:0(eng): Video: tiff, rgb48le, 1920x1080 [SAR 1:1 DAR 16:9], q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc (default)
    Metadata:
      creation_time   : 2012-09-12 08:48:56
      handler_name    : Apple Alias Data Handler
      timecode        : 01:00:00:00
      encoder         : Lavc56.0.100 tiff
Stream mapping:
  Stream #0:0 -> #0:0 (prores (native) -> tiff (native))
Press [q] to stop, [?] for help
frame=    1 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.04 bitrate=N/A
video:599kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

Change History (3)

comment:1 by Carl Eugen Hoyos, 10 years ago

Does it work for yuv444p10 -> rgb48?
Or for yuva444p -> rgb64?

Version 0, edited 10 years ago by Carl Eugen Hoyos (next)

comment:2 by cbsrobot, 10 years ago

same for yuv444p10 -> rgb48:

ffmpeg -i h264-444/444_10bit_cabac.h264 -pix_fmt rgb48 test-%04d.tif
ffmpeg version N-65847-g554d819 Copyright (c) 2000-2014 the FFmpeg developers
  built on Aug 23 2014 22:30:48 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
  configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libass --enable-libcelt --enable-libfaac --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-openssl --enable-libopus --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvo-aacenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-iconv --enable-libquvi --prefix=/usr/local
  libavutil      54.  7.100 / 54.  7.100
  libavcodec     56.  0.101 / 56.  0.101
  libavformat    56.  2.100 / 56.  2.100
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  0.103 /  5.  0.103
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  0.100 / 53.  0.100
Input #0, h264, from 'h264-444/444_10bit_cabac.h264':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv444p10le, 960x540, 25 fps, 25 tbr, 1200k tbn, 50 tbc
[swscaler @ 0x7fbd39800600] full chroma interpolation for destination format 'rgb48le' not yet implemented
Output #0, image2, to 'test-%04d.tif':
  Metadata:
    encoder         : Lavf56.2.100
    Stream #0:0: Video: tiff, rgb48le, 960x540, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc56.0.101 tiff
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> tiff (native))
Press [q] to stop, [?] for help
frame=   10 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.40 bitrate=N/A
video:30660kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

and yuva444p10 -> rgba64:

ffmpeg -i h264-444/444_10bit_cabac.h264 -pix_fmt rgba64 test-%04d.tif
ffmpeg version N-65847-g554d819 Copyright (c) 2000-2014 the FFmpeg developers
  built on Aug 23 2014 22:30:48 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
  configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-postproc --enable-libass --enable-libcelt --enable-libfaac --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-openssl --enable-libopus --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvo-aacenc --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libxvid --enable-iconv --enable-libquvi --prefix=/usr/local
  libavutil      54.  7.100 / 54.  7.100
  libavcodec     56.  0.101 / 56.  0.101
  libavformat    56.  2.100 / 56.  2.100
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  0.103 /  5.  0.103
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  0.100 / 53.  0.100
Input #0, h264, from 'h264-444/444_10bit_cabac.h264':
  Duration: N/A, bitrate: N/A
    Stream #0:0: Video: h264 (High 4:4:4 Predictive), yuv444p10le, 960x540, 25 fps, 25 tbr, 1200k tbn, 50 tbc
[swscaler @ 0x7fe4b9000600] full chroma interpolation for destination format 'rgba64le' not yet implemented
Output #0, image2, to 'test-%04d.tif':
  Metadata:
    encoder         : Lavf56.2.100
    Stream #0:0: Video: tiff, rgba64le, 960x540, q=2-31, 200 kb/s, 25 fps, 25 tbn, 25 tbc
    Metadata:
      encoder         : Lavc56.0.101 tiff
Stream mapping:
  Stream #0:0 -> #0:0 (h264 (native) -> tiff (native))
Press [q] to stop, [?] for help
frame=   10 fps=0.0 q=0.0 Lsize=N/A time=00:00:00.40 bitrate=N/A
video:40854kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown

comment:3 by Carl Eugen Hoyos, 10 years ago

Resolution: fixed
Status: newclosed

Implemented by Michael in e29d996149692f2ec80c6f20f6a427c7287ab9a4

Note: See TracTickets for help on using tickets.