#3242: libswscale incorrectly presents warning about "Deprecated pixel format" ---------------------------------+--------------------------------------- Reporter: jnvsor | Type: defect Status: new | Priority: minor Component: swscale | Version: unspecified Keywords: | Blocked By: Blocking: | Reproduced by developer: 0 Analyzed by developer: 0 | ---------------------------------+--------------------------------------- libswscale incorrectly presents warning about "Deprecated pixel format" on padded rgb pixel formats
`#ffmpeg-devel` leads me to believe BGR0 isn't deprecated so this is a bug `sws_init_context` gives a warning if `c->srcFormat` changes from the start of the function, before that if statement however it calls: `sws_setColorspaceDetails` which calls `handle_formats` which calls `handle_0alpha` which changes the pixel formats and triggers the warning {{{ av_cold int sws_init_context(SwsContext *c, SwsFilter *srcFilter, SwsFilter *dstFilter) { ... if (!c->contrast && !c->saturation && !c->dstFormatBpp) sws_setColorspaceDetails(c, ff_yuv2rgb_coeffs[SWS_CS_DEFAULT], c->srcRange, ff_yuv2rgb_coeffs[SWS_CS_DEFAULT], c->dstRange, 0, 1 << 16, 1 << 16); if(srcFormat!=c->srcFormat || dstFormat!=c->dstFormat) av_log(c, AV_LOG_WARNING, "deprecated pixel format used, make sure you did set range correctly\n"); ... } int sws_setColorspaceDetails(struct SwsContext *c, const int inv_table[4], int srcRange, const int table[4], int dstRange, int brightness, int contrast, int saturation) { const AVPixFmtDescriptor *desc_dst; const AVPixFmtDescriptor *desc_src; memmove(c->srcColorspaceTable, inv_table, sizeof(int) * 4); memmove(c->dstColorspaceTable, table, sizeof(int) * 4); handle_formats(c); ... } static void handle_formats(SwsContext *c) { c->src0Alpha |= handle_0alpha(&c->srcFormat); c->dst0Alpha |= handle_0alpha(&c->dstFormat); c->srcXYZ |= handle_xyz(&c->srcFormat); c->dstXYZ |= handle_xyz(&c->dstFormat); if (c->srcXYZ || c->dstXYZ) fill_xyztables(c); } static int handle_0alpha(enum AVPixelFormat *format) { switch (*format) { case AV_PIX_FMT_0BGR : *format = AV_PIX_FMT_ABGR ; return 1; case AV_PIX_FMT_BGR0 : *format = AV_PIX_FMT_BGRA ; return 4; case AV_PIX_FMT_0RGB : *format = AV_PIX_FMT_ARGB ; return 1; case AV_PIX_FMT_RGB0 : *format = AV_PIX_FMT_RGBA ; return 4; default: return 0; } } }}} Reproduce: {{{ # the only bgr0 pixel format I know of is x11grab but any rgb padded input should do it ffmpeg -f x11grab -i :0.0 -filter:v "scale=w=0:h=0" -c:v libx264 -pix_fmt yuv444p out.avi ... [x11grab @ 0xd0cd80] device: :0.0 -> display: :0.0 x: 0 y: 0 width: 640 height: 480 [x11grab @ 0xd0cd80] shared memory extension found Input #0, x11grab, from ':0.0': Duration: N/A, start: 1387920952.573846, bitrate: 294617 kb/s Stream #0:0: Video: rawvideo (BGR[0] / 0x524742), bgr0, 640x480, 294617 kb/s, 29.97 tbr, 1000k tbn, 29.97 tbc File 'out.avi' already exists. Overwrite ? [y/N] y [swscaler @ 0xcfd020] deprecated pixel format used, make sure you did set range correctly }}} -- Ticket URL: <https://trac.ffmpeg.org/ticket/3242> FFmpeg <http://ffmpeg.org> FFmpeg issue tracker _______________________________________________ FFmpeg-trac mailing list FFmpeg-trac@avcodec.org http://avcodec.org/mailman/listinfo/ffmpeg-trac