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

Reply via email to