From 90b2484648e3370edce45d53b29a3a9af6d4cd90 Mon Sep 17 00:00:00 2001 From: Vincent Penquerc'h Date: Wed, 14 Sep 2011 17:07:50 +0100 Subject: [PATCH] celtenc: allow actually overriding frame size https://bugzilla.gnome.org/show_bug.cgi?id=659087 --- ext/celt/gstceltenc.c | 7 ++++++- ext/celt/gstceltenc.h | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/ext/celt/gstceltenc.c b/ext/celt/gstceltenc.c index 7481579..5579bef 100644 --- a/ext/celt/gstceltenc.c +++ b/ext/celt/gstceltenc.c @@ -253,6 +253,9 @@ gst_celt_enc_sink_setcaps (GstPad * pad, GstCaps * caps) gst_caps_unref (otherpadcaps); } + if (enc->requested_frame_size > 0) + enc->frame_size = enc->requested_frame_size; + GST_DEBUG_OBJECT (pad, "channels=%d rate=%d frame-size=%d", enc->channels, enc->rate, enc->frame_size); @@ -573,6 +576,7 @@ gst_celt_enc_init (GstCeltEnc * enc, GstCeltEncClass * klass) enc->bitrate = DEFAULT_BITRATE; enc->frame_size = DEFAULT_FRAMESIZE; + enc->requested_frame_size = -1; enc->cbr = DEFAULT_CBR; enc->complexity = DEFAULT_COMPLEXITY; enc->max_bitrate = DEFAULT_MAX_BITRATE; @@ -1090,7 +1094,8 @@ gst_celt_enc_set_property (GObject * object, guint prop_id, enc->bitrate = g_value_get_int (value); break; case PROP_FRAMESIZE: - enc->frame_size = g_value_get_int (value); + enc->requested_frame_size = g_value_get_int (value); + enc->frame_size = enc->requested_frame_size; break; case PROP_CBR: enc->cbr = g_value_get_boolean (value); diff --git a/ext/celt/gstceltenc.h b/ext/celt/gstceltenc.h index ec8a283..86fbc36 100644 --- a/ext/celt/gstceltenc.h +++ b/ext/celt/gstceltenc.h @@ -62,6 +62,7 @@ struct _GstCeltEnc { gint bitrate; gint frame_size; + gint requested_frame_size; gboolean cbr; gint complexity; gint max_bitrate; -- 2.7.4