porting vgmstream plugin for audacious 3.X by eppixx at 10:36 AM EDT on September 2, 2013
I there, I am porting the plugin from audacious 2 to version 3 and most of it is done. But there are some problems I ran into.
First. When I close the application it says String not freed:///path/to/file/here.* Now I don't know where this message comes from. I know that close_vfs is being called twice (even though I don't know why).
Second. Isn't there a better way seek than render everything from the position you are to the point you want to go?
Third. The return value from get_vgmstream_play_samples is always the same. Regadless how I change the looptimes. Why is that?
Other than that everything works quite good (for now).
The plugin is now ported to audacious3. The changes aren't merged with the main development of vgmstream yet. That means till that happens the changes are only in the repository at https://github.com/eppixx/audacious-vgmstream. The instructions are in the readme.txt.
I'd probably look inside the configure, figure out what it's complaining about and either symlink what it requires or modify it to point where I actually installed something.
The configure-script looks for the pkg-files of audacious. They should be added when you installed audacious. It should work on ubuntu-based systems (perhaps even debian-based ones). What happens if you type this in a terminal:
pkg-config --modversion audacious
That should return the installed version of audacious. In my linux it returns 3.2.1.
You are quite correct audacious-dev wasnt installed but now i get this whilst compiling
main.c: In function 'vgmstream_play_loop': main.c:166:30: error: 'const struct OutputAPI' has no member named 'buffer_playing' main.c:174:19: error: 'const struct OutputAPI' has no member named 'close_audio' main.c: In function 'vgmstream_init': main.c:234:3: warning: 'g_cond_new' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:276) [-Wdeprecated-declarations] main.c:235:3: warning: 'g_mutex_new' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:272) [-Wdeprecated-declarations] main.c: In function 'vgmstream_destroy': main.c:242:3: warning: 'g_cond_free' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:278) [-Wdeprecated-declarations] main.c:244:3: warning: 'g_mutex_free' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:274) [-Wdeprecated-declarations] main.c: In function 'vgmstream_stop': main.c:270:19: error: 'const struct OutputAPI' has no member named 'close_audio' make[2]: *** [main.lo] Error 1 make[2]: Leaving directory `/media/Downloads/audacious-vgmstream-master/unix' make[1]: *** [all] Error 2 make[1]: Leaving directory `/media/Downloads/audacious-vgmstream-master/unix' make: *** [all-recursive] Error 1
I changed some code and theoretically it should work now, if I made no mistake as I havent tested the new version of audacious. I also noticed the new audacious 3.5 will bring new changes that require some changes that I have to look into.
For getting the new version change to your directory and use "git pull" to update.
Hi Eppixx thanks for the update but i am getting this error now whilst compiling
main.c: In function 'vgmstream_play_loop': main.c:174:19: error: 'const struct OutputAPI' has no member named 'close_audio' main.c: In function 'vgmstream_init': main.c:234:3: warning: 'g_cond_new' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:276) [-Wdeprecated-declarations] main.c:235:3: warning: 'g_mutex_new' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:272) [-Wdeprecated-declarations] main.c: In function 'vgmstream_cleanup': main.c:242:3: warning: 'g_cond_free' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:278) [-Wdeprecated-declarations] main.c:244:3: warning: 'g_mutex_free' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:274) [-Wdeprecated-declarations] main.c: In function 'vgmstream_stop': main.c:270:19: error: 'const struct OutputAPI' has no member named 'close_audio' make[2]: *** [main.lo] Error 1 make[2]: Leaving directory `/media/Downloads/audacious-vgmstream/unix' make[1]: *** [all] Error 2 make[1]: Leaving directory `/media/Downloads/audacious-vgmstream/unix' make: *** [all-recursive] Error 1
I installed audacious4.3.1 just to see for myself why this haven't worked, just to notice that I didn't save before uploading the changes. Now I feel stupid :P
Works great now THANK YOU eppixx :)) If I were you I would report your plugin to OMGUbuntu or something similar it really is a fantastic plugin mate. Thanks again!
I haven't done that much. The most work is done by the developers of vgmstream itself. I just happen to be a guy who hacked about 1000 lines of code together to make vgmstream work with audacious.
I played with the idea of implementing the plugin for gstreamer (if that's in my reach). That would feel like a real accomplishment for me.
Fair enough but I still think the developers and yourself should highlight this plugin on OMGubuntu because it is something that would interest those guys :)
Thanks Knurek I understand this but now vgmstream is ported thanks to eppixx i was hoping it would be another windows program (xmplay) i could move away from :) I'll have to leave xmplay on and just hope in_vgm gets ported at some point.
Thing is hcs mentioned something about migrating to github, which would make submitting patches for extern developer such as myself much easier. I could merge their new code with mine, but normally it should be the other way around.