# Gstpbutilsinstallplugins

**URL:** <https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282>\
**Category:** Ruby-Gnome 2\
**Created:** [October 10, 2010, 7:06pm UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282 "2010-10-10T19:06:49Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [October 10, 2010, 7:06pm UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/1 "2010-10-10T19:06:49Z")

</div>

Hi.

I will try to port gstpbutilsinstallplugins [1] to Ruby/Gst  
(Gst::InstallPlugins module)

I see that enum constants are (usually?) defined twice by G\_DEF\_CLASS  
and G\_DEF\_CONSTANTS.  
i.e. : GST\_TYPE\_MESSAGE\_TYPE in rgst-message.c (constantants are  
defined under Gst::Message::Type and under Gst::Message)  
Should I do the same ?

The gst\_install\_plugins\_async function take a gchar\*\* as the first  
argument (NULL-terminated array of strings).  
I was thinking of define Gst::InstallPlugins.async(details,  
context=nil){block} with details a ruby array.  
Is there a common way (macro) to convert a ruby array to  
If not should I define a macro ? In rbgst-install-plugins.c ? In  
rbgst-install-plugins.h ? In a glib file ?

[1][API reference](http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html)

–  
Vincent C.

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [October 11, 2010, 1:24am UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/2 "2010-10-11T01:24:23Z")

</div>

I cannot found

2010/10/10 Vincent C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Hi.

> The gst\_install\_plugins\_async function take a gchar\*\* as the first  
> argument (NULL-terminated array of strings).  
> I was thinking of define Gst::InstallPlugins.async(details,  
> context=nil){block} with details a ruby array.  
> Is there a common way (macro) to convert a ruby array to  
> If not should I define a macro ? In rbgst-install-plugins.c ? In  
> rbgst-install-plugins.h ? In a glib file ?

For now I have implemented the conversion directly in the c function.

–  
Vincent C.

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [October 11, 2010, 1:35am UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/3 "2010-10-11T01:35:30Z")

</div>

Sorry about the previous mail. I hit the wrong key!

I cannot found a example of G\_DEF\_CLASS2.  
Are they no implementations of it ?  
I want to wrap GstInstallPluginsContext.

gst\_install\_plugins\_context\_free [1] must be called when GC must be  
collect the object.  
[1][API reference](http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstpbutilsinstallplugins.html)

I do not think that  
rb\_cGstInstallPluginsContext=G\_DEF\_CLASS2(GST\_TYPE\_INSTALL\_PLUGINS\_CONTEXT,  
“Context”,  
mGstInstallPlugins, 0,  
gst\_install\_plugins\_context\_free);

is the correct way. It should also free the DATA.

I do not know how to initalize Gst::InstallPlugins::Context new  
objects using gobjet.  
How work G\_INITIALIZE ?

I think I miss a lot of background on gobject.

2010/10/11 Vincent C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> > If not should I define a macro ? In rbgst-install-plugins.c ? In  
> > rbgst-install-plugins.h ? In a glib file ?
> 
> For now I have implemented the conversion directly in the c function.
> 
> –  
> Vincent C.

–  
Vincent C.

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [October 12, 2010, 3:21am UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/4 "2010-10-12T03:21:37Z")

</div>

Hi,

In [AANLkTinBowP+asNsbxqLr5GT=removed\_email\_address@domain.invalid](mailto:AANLkTinBowP+asNsbxqLr5GT=removed_email_address@domain.invalid)  
“Re: [ruby-gnome2-devel-en] gstpbutilsinstallplugins” on Mon, 11 Oct  
2010 01:34:55 +0200,  
Vincent C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I cannot found a example of G\_DEF\_CLASS2.  
> Are they no implementations of it ?  
> I want to wrap GstInstallPluginsContext.

Please use G\_DEF\_CLASS\_WITH\_GC\_FUNC instead of  
G\_DEF\_CLASS2. G\_DEF\_CLASS2 is deprecated. You can find some  
examples by grepping G\_DEF\_CLASS\_WITH\_GC\_FUNC at glib2/ or  
gtk2/.

## Thanks,

kou

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [October 12, 2010, 5:04pm UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/5 "2010-10-12T17:04:08Z")

</div>

2010/10/12 Kouhei S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

Thanks for your replies.

> Please use G\_DEF\_CLASS\_WITH\_GC\_FUNC instead of  
> G\_DEF\_CLASS2. G\_DEF\_CLASS2 is deprecated. You can find some  
> examples by grepping G\_DEF\_CLASS\_WITH\_GC\_FUNC at glib2/ or  
> gtk2/.

It explains why a grep on G\_DEF\_CLASS2 failled.

–  
Vincent C.

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [October 12, 2010, 3:18am UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/6 "2010-10-12T03:18:30Z")

</div>

Hi,

In [AANLkTin7Ueh8E-wRjpRcDyp=removed\_email\_address@domain.invalid](mailto:AANLkTin7Ueh8E-wRjpRcDyp=removed_email_address@domain.invalid)  
“[ruby-gnome2-devel-en] gstpbutilsinstallplugins” on Sun, 10 Oct 2010  
19:06:12 +0200,  
Vincent C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I see that enum constants are (usually?) defined twice by G\_DEF\_CLASS  
> and G\_DEF\_CONSTANTS.  
> i.e. : GST\_TYPE\_MESSAGE\_TYPE in rgst-message.c (constantants are  
> defined under Gst::Message::Type and under Gst::Message)  
> Should I do the same ?

G\_DEF\_CONSTANTS is for convenience. If enum constants are  
used many times, we will provide shortcuts by  
G\_DEF\_CONSTANTS. Otherwise we don’t provide shotcuts.

> The gst\_install\_plugins\_async function take a gchar\*\* as the first  
> argument (NULL-terminated array of strings).  
> I was thinking of define Gst::InstallPlugins.async(details,  
> context=nil){block} with details a ruby array.  
> Is there a common way (macro) to convert a ruby array to  
> If not should I define a macro ? In rbgst-install-plugins.c ? In  
> rbgst-install-plugins.h ? In a glib file ?

Thera is no macro for it. We should define it rbgutil.c and  
export it by rbgtuil.h.

## Thanks,

kou

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [October 15, 2010, 10:39pm UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/7 "2010-10-15T22:39:47Z")

</div>

Hi.

Here is a patch for a review. I hope my code is not to ugly.

It implementes all gstpbutilsinstallplugins functions.  
As indicated in comments, the Gst::InstallPlugins::Context#set\_id  
triggers a segfault. It may have something to do with boxed objects. I  
need some help with this point.  
To reproduce the segfault :

require ‘gst’  
c=Gst::InstallPlugins::Context.new  
c.set\_xid(42)

Segfault happens while exicting ruby.

I have also implemented some functions of gstpbutilsmissingplugins  
needed to use Gst::InstallPlugins module.  
In future should I provide 2 patches instead of one?

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [October 17, 2010, 5:44pm UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/8 "2010-10-17T17:44:58Z")

</div>

2010/10/17 Kouhei S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> - Don’t declare variables at the middle of block.  
> e.g.:
> 
> - length=RARRAY(details)-\>len;
> - str=RARRAY(details)-\>ptr;
> - gchar \*carray[length+1]; ← HERE

I declare this variable here because length is not set before.

I will take account of your other comments and send new patches to this  
list.

–  
Vincent C.

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [October 21, 2010, 2:10pm UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/9 "2010-10-21T14:10:19Z")

</div>

Hi,

In [AANLkTi=removed\_email\_address@domain.invalid](mailto:AANLkTi=removed_email_address@domain.invalid)  
“Re: [ruby-gnome2-devel-en] gstpbutilsinstallplugins” on Sun, 17 Oct  
2010 17:44:32 +0200,  
Vincent C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> 2010/10/17 Kouhei S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):
> 
> > - Don’t declare variables at the middle of block.  
> > e.g.:
> > 
> > - length=RARRAY(details)-\>len;
> > - str=RARRAY(details)-\>ptr;
> > - gchar \*carray[length+1]; ← HERE
> 
> I declare this variable here because length is not set before.

You can use ALLOCA\_N() for dynamic memory allocation.

## Thanks,

kou

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [October 21, 2010, 5:19pm UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/10 "2010-10-21T17:19:40Z")

</div>

2010/10/21 Kouhei S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> > > - str=RARRAY(details)-\>ptr;

Ok. I will take a look at this macro. Thanks for the info.

–  
Vincent C.

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [October 17, 2010, 3:14pm UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/11 "2010-10-17T15:14:35Z")

</div>

Hi,

nIn [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
“Re: [ruby-gnome2-devel-en] gstpbutilsinstallplugins” on Fri, 15 Oct  
2010 20:25:29 +0200,  
Vincent C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> c.set\_xid(42)
> 
> Segfault happens while exicting ruby.
> 
> I have also implemented some functions of gstpbutilsmissingplugins  
> needed to use Gst::InstallPlugins module.  
> In future should I provide 2 patches instead of one?

Thanks for your patch.

I have some comments to your patch but I’ll show just a few  
comments:

- Please use PKGConfig for detecting gstpbutils.

- Don’t declare variables at the middle of block.  
e.g.:

- Don’t use C++ style comment “//”. Use “/\* \*/” instead.

- Please add a space around “=”:  
context=NULL;  
 →   
context = NULL;

- Use RARRAY\_LEN() and RARRAY\_PTR() instead of  
RARRAY()-\>len and RARRAY()-\>ptr.

- Don’t define XXX2() function XXX2() name is too bad name.

- Use G\_DEF\_SETTERS(); for define XXX= method for set\_XXX.

- …

We prefer to small patches with test cases instead of a  
large patch. Could you split your patch with small path and  
add tests for it? test/test\_\*.rb will help you.

## Thanks,

kou

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [November 12, 2010, 6:10pm UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/12 "2010-11-12T18:10:09Z")

</div>

2010/10/23 Vincent C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> > - Don’t define XXX2() function XXX2() name is too bad name.  
> > add tests for it? test/test\_\*.rb will help you.
> 
> –  
> Vincent C.

Hi team.

I write this mail just to remind you this thread.  
If you do not have time to help me implement gst-missing-plugins I will  
wait.

–  
Vincent C.

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [October 23, 2010, 8:38pm UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/13 "2010-10-23T20:38:58Z")

</div>

Hi.

I joined 2 pathes this time.  
gst-missing-plugins is to be applyed before gst-install-plugins.  
gst-missing-plugins handles missing plugin Gst::MessageElement .  
gst-install-plugins implements gstpbutilsinstallplugins.

Thanks for your past and future reviews.

2010/10/17 Kouhei S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> - Don’t define XXX2() function XXX2() name is too bad name.
> - Use G\_DEF\_SETTERS(); for define XXX= method for set\_XXX.
> - …

G\_DEF\_SETTERS needs a class as a argument. I do not see how it can  
define set\_xid and xid= for Gst::InstallPlugins::Context class!  
I define context\_set\_xid and context\_set\_xid2 functions for these  
setters. How should I rename it if we keep these functions?

> We prefer to small patches with test cases instead of a  
> large patch. Could you split your patch with small path and  
> add tests for it? test/test\_\*.rb will help you.

How can I run tests ? make test does not work.  
I had a test for Gst::InstallPlugins::Context#new method and  
Gst::MessageElement#missing\_plugin?  
There is currently no ruby ways to create a missing plugin  
Gst::MessageElement so I cannot test other methods.  
I do not think I should test Gst::InstallPlugins functions (). Am I  
wrong ?

Should I try to define RARRAY2CSTRARRAY(VALUE, ??) macro or is it a  
too specific to be reused ? (cf : comment in the patch)

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [November 13, 2010, 5:53am UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/14 "2010-11-13T05:53:12Z")

</div>

Hi,

Sorry for my late response…

# We need more reviewers…

In [AANLkTi=removed\_email\_address@domain.invalid](mailto:AANLkTi=removed_email_address@domain.invalid)  
“Re: [ruby-gnome2-devel-en] gstpbutilsinstallplugins” on Sat, 23 Oct  
2010 20:38:36 +0200,  
Vincent C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I joined 2 pathes this time.  
> gst-missing-plugins is to be applyed before gst-install-plugins.  
> gst-missing-plugins handles missing plugin Gst::MessageElement .  
> gst-install-plugins implements gstpbutilsinstallplugins.

OK. Can we process gst-missing-plugins before  
gst-install-plugins? I want to process gst-install-plugins  
after gst-missing-plugins is done.

> 2010/10/17 Kouhei S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):
> 
> > - Don’t define XXX2() function XXX2() name is too bad name.
> > - Use G\_DEF\_SETTERS(); for define XXX= method for set\_XXX.
> > - …
> 
> G\_DEF\_SETTERS needs a class as a argument. I do not see how it can  
> define set\_xid and xid= for Gst::InstallPlugins::Context class!  
> I define context\_set\_xid and context\_set\_xid2 functions for these  
> setters. How should I rename it if we keep these functions?

What about this?

- static VALUE
- context\_set\_xid2(VALUE self, VALUE xid)
- {
- 

```
GstInstallPluginsContext *context;

```

- 
- 

```
context = (GstInstallPluginsContext *)RVAL2GOBJ(self);

```

- 

```
gst_install_plugins_context_set_xid(context, NUM2INT(xid));/* 

```

segfault on ruby exit \*/

- 

```
return xid;

```

- }

- rb\_define\_method(rb\_cGstInstallPluginsContext, “xid=”,

- 

```
                context_set_xid2, 1);

```

- G\_DEF\_SETTERS(rb\_cGstInstallPluginsContext);

> > We prefer to small patches with test cases instead of a  
> > large patch. Could you split your patch with small path and  
> > add tests for it? test/test\_\*.rb will help you.
> 
> How can I run tests ? make test does not work.

Please try “ruby test/run-test.rb”.

> I had a test for Gst::InstallPlugins::Context#new method and  
> Gst::MessageElement#missing\_plugin?  
> There is currently no ruby ways to create a missing plugin  
> Gst::MessageElement so I cannot test other methods.  
> I do not think I should test Gst::InstallPlugins functions (). Am I wrong ?

Can we use existing Gst::MessageElement? But talking about  
Gst::MessageElement is the next step.

I think that we need more tests for added  
methods. e.g. Gst::InstallPlugins::return#get\_name. It will  
not work well.

> Should I try to define RARRAY2CSTRARRAY(VALUE, ??) macro or is it a  
> too specific to be reused ? (cf : comment in the patch)

Please define it in the same file for now.

Other comments:

1. use CSTR2RVAL() instead of rb\_str\_new2().

static VALUE  
return\_get\_name(VALUE self)  
{

- return rb\_str\_new2(gst\_install\_plugins\_return\_get\_name(

- return CSTR2RVAL(gst\_install\_plugins\_return\_get\_name(  
(GstInstallPluginsReturn)RVAL2GOBJ(self)));  
}

1. use RVAL2GENUM() instead of RVAL2GOBJ() for GEnum.

static VALUE  
return\_get\_name(VALUE self)  
{  
return rb\_str\_new2(gst\_install\_plugins\_return\_get\_name(

- 

```
       (GstInstallPluginsReturn)RVAL2GOBJ(self)));

```

- 

```
       RVAL2GENUM(self, GST_TYPE_INSTALL_PLUGINS_RETURN))));

```

}

1. don’t add “get\_” prefix for no argument getter.  
See:  
[http://ruby-gnome2.sourceforge.jp/hiki.cgi?Naming+and+Conversion+Rules](http://ruby-gnome2.sourceforge.jp/hiki.cgi?Naming+and+Conversion+Rules)

- rb\_define\_method(rb\_cGstInstallPluginsReturn, “get\_name”,  
return\_get\_name,

- rb\_define\_method(rb\_cGstInstallPluginsReturn, “name”,  
return\_get\_name,  
0);

1. don’t use deep class hierarchy. (nest level shuld be less  
than 3.)

2. please clean style. (please confirm again.)  
We need clean style for maintaining it.

- indent.

- 

```
           if (!RVAL2CBOOL(rb_obj_is_kind_of(rcontext, 

```

rb\_cGstInstallPluginsContext)))

- 

```
       if (!RVAL2CBOOL(rb_obj_is_kind_of(rcontext, 

```

rb\_cGstInstallPluginsContext)))  
…  
}

- space.

- 

```
   if (!NIL_P(rcontext)){

```

- 

```
   if (!NIL_P(rcontext)) {
          if (!RVAL2CBOOL(rb_obj_is_kind_of(rcontext, 

```

rb\_cGstInstallPluginsContext)))  
…  
}

```
static VALUE
context_initialize(VALUE self)
{

```

- 

```
  GstInstallPluginsContext * context;

```

- 

```
  GstInstallPluginsContext *context;
  ...

```

}

## Thanks,

kou

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [November 14, 2010, 5:02pm UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/15 "2010-11-14T17:02:57Z")

</div>

2010/11/13 Kouhei S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Hi,
> 
> Sorry for my late response…
> 
> # We need more reviewers…

I totally understand that you have a life beside ruby-gnome2.

> gst-install-plugins? I want to process gst-install-plugins  
> after gst-missing-plugins is done.

I agree that gst-missing-plugin should be processed before  
gst-install-plugins but all your remarks are based on  
gst-install-plugins.

> What about this?
> 
> - rb\_define\_method(rb\_cGstInstallPluginsContext, “xid=”,
> - 
> 
> ```
> context_set_xid2, 1);
> 
> ```
> 
> - G\_DEF\_SETTERS(rb\_cGstInstallPluginsContext);

My bad. I should have take a look at the code to see how G\_DEF\_SETTERS  
is used.

> > I had a test for Gst::InstallPlugins::Context#new method and  
> > Gst::MessageElement#missing\_plugin?  
> > There is currently no ruby ways to create a missing plugin  
> > Gst::MessageElement so I cannot test other methods.  
> > I do not think I should test Gst::InstallPlugins functions (). Am I wrong ?
> 
> Can we use existing Gst::MessageElement? But talking about  
> Gst::MessageElement is the next step.

I think we should talk about it first and then review gst-intall-plugin.  
Some Gst::MessageElement are missing\_plugins some are not.  
The existing Gst::MessageElement#new methods does not permit to create  
a missing\_plugins object.

> I think that we need more tests for added  
> methods. e.g. Gst::InstallPlugins::return#get\_name. It will  
> not work well.

I add a test for this method.

> > Should I try to define RARRAY2CSTRARRAY(VALUE, ??) macro or is it a  
> > too specific to be reused ? (cf : comment in the patch)
> 
> Please define it in the same file for now.

I am not sure how ALLOC\_N works and how it frees the memory. I do not  
see how to write this macro (RARRAY2CSTRARRAY).  
The comment in diff file show how I try to return a char\*\* (same as  
ALLOC\_N) but I failed to see how a local pointer (carray) can be  
returned.  
I try to pass a pointer as a second argument but an uninitialized  
pointer passed to a function does not seem a very good way.  
Using ALLOC\_N in the async function and then calling RARRAY2CSTRARRAY  
will take away the advantages of writting a macro.  
The way of wrtting this macro eludes me Sorry but my C knowledge is very  
thin.

> Other comments:

Other comments have been taken care of.  
Hope that I have eradicated all style errors.

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [November 17, 2010, 4:22pm UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/16 "2010-11-17T16:22:22Z")

</div>

2010/11/16 Kouhei S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Thanks!

You are welcome.

> > > gst-install-plugins? I want to process gst-install-plugins  
> > > after gst-missing-plugins is done.
> > 
> > I agree that gst-missing-plugin should be processed before  
> > gst-install-plugins but all your remarks are based on  
> > gst-install-plugins.
> 
> Ahh!!!  
> Sorry… It’s my mistake…  
> I’ll re-review your patch again later…

Thanks for your time.

> * * *
> 
> ruby-gnome2-devel-en mailing list  
> [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> [https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-en](https://lists.sourceforge.net/lists/listinfo/ruby-gnome2-devel-en)

–  
Vincent C.

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [November 19, 2010, 3:14pm UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/17 "2010-11-19T15:14:05Z")

</div>

Hi,

In [AANLkTinLeO=removed\_email\_address@domain.invalid](mailto:AANLkTinLeO=removed_email_address@domain.invalid)  
“Re: [ruby-gnome2-devel-en] gstpbutilsinstallplugins” on Sun, 14 Nov  
2010 17:02:08 +0100,  
Vincent C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> gst-install-plugins but all your remarks are based on  
> gst-install-plugins.

I reviewed gst-missing-plugin.  
I’ve changed your patch (many) and commit it.  
Today, I don’t have a power to comment your patch… Sorry…  
Could you check commited change in trunk?

gst-install-plugins review will be done later. (I can’t  
review it in this year at least… Sorry…)

I hope that someone helps us…

## Thanks,

kou

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [November 23, 2010, 4:41pm UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/18 "2010-11-23T16:41:46Z")

</div>

> I reviewed gst-missing-plugin.  
> I’ve changed your patch (many) and commit it.  
> Today, I don’t have a power to comment your patch… Sorry…  
> Could you check commited change in trunk?

I am updating my local repository. I will modify my test script, test  
the changes and write back a mail.

> gst-install-plugins review will be done later. (I can’t  
> review it in this year at least… Sorry…)

Sorry to hear this but I understand it.

> I hope that someone helps us…

Me too as I need gst-install-plugin for the(/a ?) next release of my  
audio player.

> Thanks,

You are welcome.

> –  
> kou

–  
Vincent C.

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [November 24, 2010, 4:37pm UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/19 "2010-11-24T16:37:49Z")

</div>

Since I update my repo I have a segfautl in the Gst.Init function.

#code  
require ‘gst.so’  
Gst.Init  
#output  
/usr/local/lib/site\_ruby/1.8/i686-linux/gst.so:  
/usr/local/lib/site\_ruby/1.8/i686-linux/gst.so: undefined symbol:  
rbgobj\_id\_children - /usr/local/lib/site\_ruby/1.8/i686-linux/gst.so  
(LoadError)

–  
Vincent C.

---

<div class="post-metadata">

**Author:** ![coubi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/c68b51/32.png) [@coubi](https://www.ruby-forum.com/u/coubi)\
**Post date:** [November 16, 2010, 11:27pm UTC](https://www.ruby-forum.com/t/gstpbutilsinstallplugins/196282/20 "2010-11-16T23:27:06Z")

</div>

Hi,

In [AANLkTinLeO=removed\_email\_address@domain.invalid](mailto:AANLkTinLeO=removed_email_address@domain.invalid)  
“Re: [ruby-gnome2-devel-en] gstpbutilsinstallplugins” on Sun, 14 Nov  
2010 17:02:08 +0100,  
Vincent C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > Sorry for my late response…
> > 
> > # We need more reviewers…
> 
> I totally understand that you have a life beside ruby-gnome2.

Thanks!

> > gst-install-plugins? I want to process gst-install-plugins  
> > after gst-missing-plugins is done.
> 
> I agree that gst-missing-plugin should be processed before  
> gst-install-plugins but all your remarks are based on  
> gst-install-plugins.

Ahh!!!  
Sorry… It’s my mistake…  
I’ll re-review your patch again later…

## Thanks,

kou
