diff options
author | Nicola Murino <nicola.murino@gmail.com> | 2017-07-17 10:04:02 +0200 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2017-07-24 10:03:42 +0100 |
commit | ab3b289bf2575de9f87146c7aa6effe3ff9d272b (patch) | |
tree | 2715ee6dc7b03a18cb5e636af1f54155df793f63 /ext | |
parent | 4bcec1b190d0919b512065b53a74ccc95015b015 (diff) |
jpegenc: declare quality property changeable in PLAYING state
https://bugzilla.gnome.org/show_bug.cgi?id=785012
Diffstat (limited to 'ext')
-rw-r--r-- | ext/jpeg/gstjpegenc.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/ext/jpeg/gstjpegenc.c b/ext/jpeg/gstjpegenc.c index 67ae6dc76..9d8a59812 100644 --- a/ext/jpeg/gstjpegenc.c +++ b/ext/jpeg/gstjpegenc.c @@ -134,7 +134,8 @@ gst_jpegenc_class_init (GstJpegEncClass * klass) g_object_class_install_property (gobject_class, PROP_QUALITY, g_param_spec_int ("quality", "Quality", "Quality of encoding", 0, 100, JPEG_DEFAULT_QUALITY, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | + GST_PARAM_MUTABLE_PLAYING)); #ifdef ENABLE_SMOOTHING /* disabled, since it doesn't seem to work */ @@ -474,9 +475,13 @@ gst_jpegenc_handle_frame (GstVideoEncoder * encoder, GstVideoCodecFrame * frame) #if JPEG_LIB_VERSION >= 70 jpegenc->cinfo.do_fancy_downsampling = FALSE; #endif + + GST_OBJECT_LOCK (jpegenc); jpegenc->cinfo.smoothing_factor = jpegenc->smoothing; jpegenc->cinfo.dct_method = jpegenc->idct_method; jpeg_set_quality (&jpegenc->cinfo, jpegenc->quality, TRUE); + GST_OBJECT_UNLOCK (jpegenc); + jpeg_start_compress (&jpegenc->cinfo, TRUE); GST_LOG_OBJECT (jpegenc, "compressing"); |