[FFmpeg-devel] [PATCH] libtheoraenc: Set encoding speed level from compression_level

Michael Niedermayer michael at niedermayer.cc
Sat Jul 19 00:45:15 EEST 2025


Hi Bernat

On Tue, Jul 15, 2025 at 07:42:16PM +0200, bernat.arlandis at gmail.com wrote:
> From: Bernat Arlandis <berarma at hotmail.com>
> 
> ---
>  libavcodec/libtheoraenc.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/libavcodec/libtheoraenc.c b/libavcodec/libtheoraenc.c
> index eb94458639..ac6653fac8 100644
> --- a/libavcodec/libtheoraenc.c
> +++ b/libavcodec/libtheoraenc.c
> @@ -244,6 +244,17 @@ static av_cold int encode_init(AVCodecContext* avc_context)
>          return AVERROR_EXTERNAL;
>      }
>  
> +    // Set encoding speed
> +    if (avc_context->compression_level != FF_COMPRESSION_DEFAULT) {
> +        int max_speed_level;
> +        int speed_level = avc_context->compression_level;
> +        th_encode_ctl(h->t_state, TH_ENCCTL_GET_SPLEVEL_MAX, &max_speed_level, sizeof(max_speed_level));
> +        if (speed_level > max_speed_level) {
> +            speed_level = max_speed_level;
> +        }
> +        th_encode_ctl(h->t_state, TH_ENCCTL_SET_SPLEVEL, &speed_level, sizeof(speed_level));
> +    }

If you want to, you can add a AVOption table with options matching the names
of libtheoraenc

See any other encoder that uses AVOptions

If the intend is to use compression_level instead, thats ok too and
ill apply the patch as is then

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The real ebay dictionary, page 2
"100% positive feedback" - "All either got their money back or didnt complain"
"Best seller ever, very honest" - "Seller refunded buyer after failed scam"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20250718/d72b4449/attachment.sig>


More information about the ffmpeg-devel mailing list