Hi, As discussed a bit on IRC a few days ago, this is an attempt to remove the multiplication by FF_QP2LAMBDA (118) on AVCodecContext.global_quality and related quality numbers. It has to happen on a major version bump, because backward compatibility is not possible for lavc users. avconv should work the same after the change, because it already adds/removes the multiplier where necessary to hide it from the user.
The first patch is the substance of the change, modifying both lavc and avconv to use the new scale and also updating documentation. Codecs which lose the multiplier on quality input parameters: * a64 * aac * asv * dnxhd * libfaac * libmp3lame * libshroedinger * libspeex * libtheora * libtwolame * libvorbis * libwebp * libxvid * prores * qsv * vorbis Codecs which lose the multiplier on quality metadata: * libx264 * libxavs * libxvid * mpegvideo (uses lambda units internally, so introduces a division) Codecs which didn't use the old scale, and are therefore unmodified. * nvenc * vaapi mjpeg The following two patches then modify libx264 and vaapi h26[45] to use global_quality to enable CQP mode (but continue to respect their own private qp options for backward compatibility). The FF_QUALITY_SCALE constant is removed, since it is no longer used anywhere (FF prefix is an internal constant so it need not be deprecated, right?). FF_QP2LAMBDA and FF_LAMBDA_SHIFT stay - they are still used in mpegvideo. FF_QP2LAMBDA also exists as a constant in expression evaluation (for lambda-unit options used by mpegvideo). Thoughts? Thanks, - Mark _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
