I did some more coding last night, and was able to get a projectM generator
integrated in LiVES ! The results are pretty encouraging.

The external window is displayed briefly (less than 1 second) and then
hidden. Frames are pulled into LiVES which is nice.

Feeding audio to the plugin still needs implementing.

The main problem I found is with fullscreen playback - because of the use
of SDL in the plugin, there was some interferance with SDL fullscreen
playback plugin, causing crashes and hangs in that mode. It seems like SDL
is not thread safe. It works without a playback plugin, but in that case
performance is pretty bad due to scaling issues. The other option that
worked was the openGL playback plugins, however these plugins are somewhat
broken as they seem unable to scale up images to the screen size.

If any of you knows an openGL programmer who could look into the scaling
issue, that would be great.

Regards,
Gabriel.




http://lives.sourceforge.net
https://www.openhub.net/accounts/salsaman

On Wed, Sep 17, 2014 at 4:25 PM, salsaman <[email protected]> wrote:

> Great, I got some test code running now showing the window and hiding it
> straight away. I think this will be a good approach.
>
> Gabriel.
>
>
>
> http://lives.sourceforge.net
> https://www.openhub.net/accounts/salsaman
>
> On Wed, Sep 17, 2014 at 10:11 AM, salsaman <[email protected]> wrote:
>
>> Ahem...
>> http://sourceforge.net/p/lives/code/HEAD/tree/trunk/tools/lives-glc-play
>> as you can see I have experimented with glc before. Unfortunately it
>> still shows the program on the screen. But yes it can be used to
>> capture/display any openGL program in LiVES. I have used it before to
>> capture clips from Second Life for example. So that is one possibility that
>> can be done already but it is not ideal.
>>
>> Yesterday I tested running projectM in a framebuffer X (Xvfb), but it did
>> not work - the first thing that projectM does is to check the openGL
>> extensions, which makes it crash since the framebuffer doesn't have any...
>>
>> I think that best solution is to create the window and hide it. This can
>> even be done at startup time if the projectM wrapper is loaded. SDL 2.0 has
>> a function for this, but SDL 1.2 which projectM uses does not. So basically
>> I tried messing with X directly (XUnmapWindow) but for some reason my first
>> test crashed in that function. Anyway I will keep on trying via this route.
>>
>>
>> Regards,
>> Gabriel.
>>
>>
>>
>>
>>
>> http://lives.sourceforge.net
>> https://www.openhub.net/accounts/salsaman
>>
>> On Wed, Sep 17, 2014 at 5:58 AM, Harrie Hoogeveen <
>> [email protected]> wrote:
>>
>>> hmm, I was looking around and found someone who has managed to capture
>>> projectm to video with GLC: https://wiki.archlinux.org/index.php/GLC
>>> Its a OpenGl / Alsa capture tool and its open source. But I am not sure
>>> if it will record without running the program on screen.
>>> Source: http://ubuntuforums.org/showthread.php?t=1497453
>>>
>>> On Tue, Sep 16, 2014 at 7:05 PM, salsaman <[email protected]> wrote:
>>>
>>>> OK, so it seems it is not as simple as I had hoped. ProjectM uses
>>>> openGL, which means that it requires a physical window on the screen to do
>>>> its drawing stuff. Some time ago I did a hack with xscreensaver which
>>>> involved starting up an entire second Xwindows server (!) which was not
>>>> attached to any screen, and it did all its drawing there. Actually it is
>>>> not as bad as it sounds ! In that case it was possible to grab the contents
>>>> of the window without displaying it and then pull it straight into LiVES. I
>>>> check if a similar hack can be done here.
>>>>
>>>> Otherwise, it may be possible by creating the window and then quickly
>>>> hiding it, but that is not a great solution either.
>>>>
>>>>
>>>> Regards,
>>>> Gabriel.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> http://lives.sourceforge.net
>>>> https://www.openhub.net/accounts/salsaman
>>>>
>>>> On Tue, Sep 16, 2014 at 10:09 AM, Harrie Hoogeveen <
>>>> [email protected]> wrote:
>>>>
>>>>> My thought: There is also a menu that can be in or external of the
>>>>> projectm window:
>>>>> http://i1.wp.com/imagecdn5.maketecheasier.com/2013/02/projectm-add-to-playlist.png
>>>>> There you can  manage playlists, plugins and even create new visuals.
>>>>> If you manage to make this external control panel available in a separate
>>>>> window I think projectM will react to the keyboard short cuts as long as
>>>>> the projectM control panel is focused. Also it will give the option to 
>>>>> edit
>>>>> your visualisers and play lists live. So then you won't have to add the
>>>>> extra controls your self.
>>>>>
>>>>> Regards,
>>>>> Harriebo
>>>>>
>>>>>
>>>>> On Tue, Sep 16, 2014 at 2:45 PM, salsaman <[email protected]> wrote:
>>>>>
>>>>>> Cool, OK. After a quick review, I think the main change will be to
>>>>>> buffer one video frame's worth of audio, which would then be transformed
>>>>>> and sent to the video generator whenever a new frame is requested. This
>>>>>> should improve the libvisual plugins as well as it could be backported to
>>>>>> there. LiVES already has the ability to select between internal and
>>>>>> external audio too, so this could be a lot of fun.
>>>>>>
>>>>>>
>>>>>> I noted that the projectM plugins can be controlled by keyboard. It
>>>>>> will be interesting to see if this keyboard control can be converted to
>>>>>> parameterised control. Otherwise it would mean developing some way to
>>>>>> forward key presses to the plugin. Perhaps extending the Tab key control
>>>>>> which is currently used for text entry in plugins...
>>>>>>
>>>>>> Regards,
>>>>>> Gabriel.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> http://lives.sourceforge.net
>>>>>> https://www.openhub.net/accounts/salsaman
>>>>>>
>>>>>> On Tue, Sep 16, 2014 at 9:24 AM, Harrie Hoogeveen <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Yes to this! With the projectM panel in a separate window for
>>>>>>> control of the plugins.
>>>>>>> Have been looking to use better live visualizers for quite a while.
>>>>>>>
>>>>>>> Harriebo
>>>>>>>
>>>>>>> On Tue, Sep 16, 2014 at 12:20 AM, salsaman <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> That is a good suggestion. I will see if I can implement a native
>>>>>>>> wrapper for LiVES for the next release.
>>>>>>>>
>>>>>>>> Gabriel.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> http://lives.sourceforge.net
>>>>>>>> https://www.openhub.net/accounts/salsaman
>>>>>>>>
>>>>>>>> On Mon, Sep 15, 2014 at 3:15 PM, tj domingue <[email protected]>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> I was wondering if there is a way to use the projectM visualizers
>>>>>>>>> in Lives
>>>>>>>>> since there is a libvisual version of projectM? I'm have been
>>>>>>>>> trying to just
>>>>>>>>> redirect the output of the standalone projectM-jack to a
>>>>>>>>> v4l2loopback device
>>>>>>>>> with no success.
>>>>>>>>>
>>>>>>>>> tj
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> ------------------------------------------------------------------------------
>>>>>>>>> Want excitement?
>>>>>>>>> Manually upgrade your production database.
>>>>>>>>> When you want reliability, choose Perforce
>>>>>>>>> Perforce version control. Predictably reliable.
>>>>>>>>>
>>>>>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
>>>>>>>>> _______________________________________________
>>>>>>>>> Lives-users mailing list
>>>>>>>>> [email protected]
>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/lives-users
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> ------------------------------------------------------------------------------
>>>>>>>> Want excitement?
>>>>>>>> Manually upgrade your production database.
>>>>>>>> When you want reliability, choose Perforce
>>>>>>>> Perforce version control. Predictably reliable.
>>>>>>>>
>>>>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
>>>>>>>> _______________________________________________
>>>>>>>> Lives-users mailing list
>>>>>>>> [email protected]
>>>>>>>> https://lists.sourceforge.net/lists/listinfo/lives-users
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ------------------------------------------------------------------------------
>>>>>>> Want excitement?
>>>>>>> Manually upgrade your production database.
>>>>>>> When you want reliability, choose Perforce.
>>>>>>> Perforce version control. Predictably reliable.
>>>>>>>
>>>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
>>>>>>> _______________________________________________
>>>>>>> Lives-users mailing list
>>>>>>> [email protected]
>>>>>>> https://lists.sourceforge.net/lists/listinfo/lives-users
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>> Want excitement?
>>>>>> Manually upgrade your production database.
>>>>>> When you want reliability, choose Perforce.
>>>>>> Perforce version control. Predictably reliable.
>>>>>>
>>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
>>>>>> _______________________________________________
>>>>>> Lives-users mailing list
>>>>>> [email protected]
>>>>>> https://lists.sourceforge.net/lists/listinfo/lives-users
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> Want excitement?
>>>>> Manually upgrade your production database.
>>>>> When you want reliability, choose Perforce.
>>>>> Perforce version control. Predictably reliable.
>>>>>
>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
>>>>> _______________________________________________
>>>>> Lives-users mailing list
>>>>> [email protected]
>>>>> https://lists.sourceforge.net/lists/listinfo/lives-users
>>>>>
>>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Want excitement?
>>>> Manually upgrade your production database.
>>>> When you want reliability, choose Perforce.
>>>> Perforce version control. Predictably reliable.
>>>>
>>>> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
>>>> _______________________________________________
>>>> Lives-users mailing list
>>>> [email protected]
>>>> https://lists.sourceforge.net/lists/listinfo/lives-users
>>>>
>>>>
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Want excitement?
>>> Manually upgrade your production database.
>>> When you want reliability, choose Perforce
>>> Perforce version control. Predictably reliable.
>>>
>>> http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
>>> _______________________________________________
>>> Lives-users mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/lives-users
>>>
>>>
>>
>
------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
Lives-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lives-users

Reply via email to