Set the theoraenc speed-level property from libtheora's defaults.
authorRalph Giles <giles@thaumus.net>
Thu, 13 Jan 2011 23:12:53 +0000 (15:12 -0800)
committerDavid Schleef <ds@schleef.org>
Fri, 18 Feb 2011 02:29:56 +0000 (18:29 -0800)
commitd467eb708af0d4b36f8b8d64dc20959a5033e79a
tree55be9b785efedbf3378a1b50e65242e453dc4f5c
parent7e06d3525072d5eab79053bb032dd5b810a2ab3f
Set the theoraenc speed-level property from libtheora's defaults.

The speed-level property, which allows callers to trade of encoding
quality for speed in the libtheora api, has a version-dependent
maximum and default values. Instead of hardcoding the acceptable
range for the theoraenc element's presentation of this setting,
we query the library directly at class initialization time and
set the maximum and default values from that. If the query fails,
we fall back to the previous default setting.

To keep the values reported by gst-inspect (which I'm told use
the spec values from the class) with those available on an\
instantiated element, we remove to setting of enc->speed_level
from the initializer and instead pass G_PARAM_CONSTRUCT to
the property spec flags, asking g_object to set this property
when theoraenc objects are constructed.

NB in theory the maximum speed-level could depend on the actual
video caps. If later versions of libtheoraenc do this, a second
call will need to be made from theora_enc_reset to update the
property, since this function is mostly useful for realtime
adjustment of performance while the pipeline is running.
ext/theora/gsttheoraenc.c