0
@@ -25,6 +25,116 @@ encoder_allocate(VALUE klass) {
0
+ * encoder.vbr_hard_min=
0
+ * Strictly enforce the vbr min bitrate. Normally it will be violated for
0
+static VALUE MpegEncoder_set_vbr_hard_min(VALUE self, VALUE boolean) {
0
+ lame_global_flags * gfp;
0
+ Data_Get_Struct(self, lame_global_flags, gfp);
0
+ lame_set_VBR_hard_min(gfp, boolean == Qtrue ? 1 : 0);
0
+ * encoder.vbr_hard_min?
0
+ * Get the hard minimum flag.
0
+static VALUE MpegEncoder_get_vbr_hard_min(VALUE self) {
0
+ lame_global_flags * gfp;
0
+ Data_Get_Struct(self, lame_global_flags, gfp);
0
+ return lame_get_VBR_hard_min(gfp) == 0 ? Qfalse : Qtrue;
0
+ * encoder.vbr_max_bitrate=
0
+ * Set the maximum vbr bitrate.
0
+static VALUE MpegEncoder_set_vbr_max_bitrate(VALUE self, VALUE brate) {
0
+ lame_global_flags * gfp;
0
+ Data_Get_Struct(self, lame_global_flags, gfp);
0
+ lame_set_VBR_max_bitrate_kbps(gfp, NUM2INT(brate));
0
+ * encoder.vbr_max_bitrate
0
+ * Get the maximum vbr bitrate.
0
+static VALUE MpegEncoder_get_vbr_max_bitrate(VALUE self) {
0
+ lame_global_flags * gfp;
0
+ Data_Get_Struct(self, lame_global_flags, gfp);
0
+ return INT2NUM(lame_get_VBR_max_bitrate_kbps(gfp));
0
+ * encoder.vbr_min_bitrate=
0
+ * Set the minimum vbr bitrate.
0
+static VALUE MpegEncoder_set_vbr_min_bitrate(VALUE self, VALUE brate) {
0
+ lame_global_flags * gfp;
0
+ Data_Get_Struct(self, lame_global_flags, gfp);
0
+ lame_set_VBR_min_bitrate_kbps(gfp, NUM2INT(brate));
0
+ * encoder.vbr_min_bitrate
0
+ * Get the minimum vbr bitrate.
0
+static VALUE MpegEncoder_get_vbr_min_bitrate(VALUE self) {
0
+ lame_global_flags * gfp;
0
+ Data_Get_Struct(self, lame_global_flags, gfp);
0
+ return INT2NUM(lame_get_VBR_min_bitrate_kbps(gfp));
0
+static VALUE MpegEncoder_set_bitrate(VALUE self, VALUE brate) {
0
+ lame_global_flags * gfp;
0
+ Data_Get_Struct(self, lame_global_flags, gfp);
0
+ lame_set_brate(gfp, NUM2INT(brate));
0
+ lame_set_VBR_min_bitrate_kbps(gfp, lame_get_brate(gfp));
0
+static VALUE MpegEncoder_get_bitrate(VALUE self) {
0
+ lame_global_flags * gfp;
0
+ Data_Get_Struct(self, lame_global_flags, gfp);
0
+ return INT2NUM(lame_get_brate(gfp));
0
* Set the VBR quality. 0 = highest, 9 = lowest
0
@@ -368,10 +478,14 @@ void init_MpegEncoder(VALUE rb_mMpeg) {
0
rb_mAudio = rb_define_module("Audio");
0
rb_mMpeg = rb_define_module_under(rb_mAudio, "MPEG");
0
cMpegEncoder = rb_define_class_under(rb_mMpeg, "Encoder", rb_cObject);
0
rb_define_alloc_func(cMpegEncoder, encoder_allocate);
0
rb_define_method(cMpegEncoder, "vbr_quality=",MpegEncoder_set_vbr_quality, 1);
0
rb_define_method(cMpegEncoder, "vbr_quality", MpegEncoder_get_vbr_quality, 0);
0
rb_define_method(cMpegEncoder, "vbr_type=", MpegEncoder_set_vbr_type, 1);
0
@@ -383,6 +497,15 @@ void init_MpegEncoder(VALUE rb_mMpeg) {
0
rb_define_method(cMpegEncoder, "year=", MpegEncoder_set_year, 1);
0
rb_define_method(cMpegEncoder, "track=", MpegEncoder_set_track, 1);
0
rb_define_method(cMpegEncoder, "genre=", MpegEncoder_set_genre, 1);
0
+ rb_define_method(cMpegEncoder, "bitrate=", MpegEncoder_set_bitrate, 1);
0
+ rb_define_method(cMpegEncoder, "bitrate", MpegEncoder_get_bitrate, 0);
0
+ rb_define_method(cMpegEncoder, "vbr_min_bitrate=", MpegEncoder_set_vbr_min_bitrate, 1);
0
+ rb_define_method(cMpegEncoder, "vbr_min_bitrate", MpegEncoder_get_vbr_min_bitrate, 0);
0
+ rb_define_method(cMpegEncoder, "vbr_max_bitrate=", MpegEncoder_set_vbr_max_bitrate, 1);
0
+ rb_define_method(cMpegEncoder, "vbr_max_bitrate", MpegEncoder_get_vbr_max_bitrate, 0);
0
+ rb_define_method(cMpegEncoder, "vbr_hard_min=", MpegEncoder_set_vbr_hard_min, 1);
0
+ rb_define_method(cMpegEncoder, "vbr_hard_min?", MpegEncoder_get_vbr_hard_min, 0);
0
rb_define_private_method(cMpegEncoder, "init_params", MpegEncoder_init_params, 0);
0
rb_define_private_method(cMpegEncoder, "num_channels=", MpegEncoder_set_num_channels, 1);
Comments
No one has commented yet.