GNOME Bugzilla – Bug 584980
directsoundsink rewrite
Last modified: 2015-08-16 09:26:49 UTC
The directsoundsink element has been rewritten here: http://timeline.songbirdnest.com/vendor/browser/trunk/gst-plugins-good/sys/directsound/ Ghislain 'Aus' Lacroix is the author of the new code, I am not. I have discussed with him about merging his work upstream, so that further development can be done by others. The sink works well enough, but I want to add src and property probe support. In fact, I was already in the process of adding these features to the old code when I learned about his rewrite. So, I think an important first step is to get this new code into the Git, so we're all on the same page.
Created attachment 136046 [details] [review] new plugin code Here is a patch that takes the original code, splits out the ring buffer into its own file (for later reuse by a src), splits out some common code into its own file (for now only the volume function, but probably more will go here in the future), fixes all warnings, and cleans up the code to match GStreamer syntax conventions.
Hi, Is the patch stil ok for you ? any changes since June 6 ? Do you plan to look at the directsoundsrc plugin in gst-plugins-bad ? Later we could move it in good, and put them together in a one directsound plugin ?
Yes, I've completely finished the directsound plugin two months ago. The code is here if you're interested: https://delta.affinix.com/svn/trunk/psimedia/gstprovider/gstelements/directsound/ I'll submit the rest of this code to the GStreamer task tracker at a later time. The big first step is to get the Songbird sink approved. I regularly check the Songbird SVN, and they haven't made any changes since I created these patches. I've been bugging both Ghislain and Michael Smith to approve this task entry.
I was pointed here from https://bugzilla.gnome.org/show_bug.cgi?id=605834 We (Opera Software) have had several issues with the current directsoundsink and I will try using one of the rewrites instead. http://timeline.songbirdnest.com/vendor/browser/trunk/gst-plugins-good/sys/directsound/ seems to have been updated 2009-11-02, while Justin's above comment is from 2009-08-10. I can't see off-hand which of these is more up-to-date. I'd very much like to see this make it into gst-plugins-good so that everyone can benefit, is there anything I can do to facilitate that?
I believe the Songbird repo merged in a newer gst-plugins-good late last year, causing the files to be touched in some small ways, but the code is the same as it was back in June. So the patch in this bug entry is still the most up-to-date version available. In IRC, Michael Smith said the patch could be accepted upstream as long as it is proven to work with both MinGW and Visual Studio. I haven't had time to set up a working VS environment to confirm and move this forward.
Could someone create a patchset (i.e., a sequence of patches, rather than one big one) that applies the relevant songbird changes, and then any additional changes on top of that? It would make it easier to review, and also easier to check any regressions. It's dumb that this hasn't been merged earlier.
If you just want the original songbird patches, it should be easy enough to diff between gst-plugins-good and the songbird repo (url included above). Sorry I don't have a bare songbird -> gst-plugins-good patch made. It was actually my intent to push everything through as a sequence of patches, but I guess I didn't consider that first patch in the chain to be very interesting.
Could someone with Windows knowledge attach these patches and do an initial review?
Setting to NEW as per last comment
Hi folks, I'm available to work on this again but I notice that commits have been made to the plugin over the past couple of years without ever applying these patches first. I think I'll start by creating a patch that performs the Songbird refactor without potentially undoing any of the divergent fixes/improvements that have occurred since 2009. We'll apply this against 0.10 and 0.11. Then I can rework the remaining patches against that base.
It would be great if someone could push these into mainline. I've been using a custom-built version with these patches for months now, and they work great.
It would be great if someone could push these into mainline. I've been using a custom-built version with these patches for months now, and they work great. Note that I compiled the patches using Visual Studio 2008, using the OSSBuild gstreamer compilation environment.
Created attachment 223989 [details] [review] Extracted the property probe interface into a small patch There are a lot of good things about the patch that Justin submitted, but perhaps it will be easier to review a smaller patch? Or should I open up a separate bug for this? The one thing that I care about at the moment is being able to select an output audio device. To that end, I've extracted the code that does that into its own patch, and fixed various warnings that popped up when compiling. This patch is made against the git repo in gstreamer-sdk/gst-plugins/good . I've done some limited testing of this smaller patch and it works great, but as I said I was using the other patch for months without any problems.
This has to be updated to 1.0, is anybody going to work on that?
I've posted even more simplified version of this patch for 1.x at https://bugzilla.gnome.org/show_bug.cgi?id=753670
Let's close this then