[Bug 732283] dshowvideosrc: Port to 1.0

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Sep 16 04:41:21 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=732283
  GStreamer | gst-plugins-bad | git

--- Comment #10 from Sebastian Dröge (slomo) <slomo at coaxion.net> 2014-09-16 11:41:19 UTC ---
(In reply to comment #9)
> (In reply to comment #8)
> > Review of attachment 285731 [details] [details]:
> > 
> > Thanks, looks generally good :) Just some comments below
> > 
> > ::: sys/dshowsrcwrapper/BUILD.txt
> > @@ +18,3 @@
> > +installed in <SDK>/Samples/multimedia/directshow/baseclasses. Just
> > +open the SLN and build both Debug and Release (NOT the MBCS versions
> > +though).
> > 
> > Why can't we build them together with the plugin directly?
> 
> Well, it's a third party static library. I can build it as part of the plugin
> but
> it kind of defeats the purpose of a library.

Sure, but it requires to build stuff manually via msbuild.exe or visual studio
:)

> > Also previously we
> > had a visual studio project to build this plugin :)
> 
> I noticed that. Actually, I noticed three different Visual solutions with some
> missing project
> files, none of them being intended for the version of Visual I use. The big
> advantage of CMake
> IMO is that you can generate a solution for whatever version of Visual you
> intend to use, and
> only have to maintain a text file. That, and avoid messing with the IDE, which
> is a PITA.

Agreed

> > ::: sys/dshowsrcwrapper/gstdshowaudiosrc.cpp
> > @@ +40,3 @@
> > +        " }, "
> > +        "rate = " GST_AUDIO_RATE_RANGE ", "
> > +        "channels = " GST_AUDIO_CHANNELS_RANGE)
> > 
> > Previously this only had channels=[1,2], not the full range
> 
> Right. But I just noticed DirectShow knows about audio with more than 2
> channels, so I'll implement that instead.

For more than 2 channels you'll have to worry about setting the correct
channel-mask though. I would do the >2 channel support in a separate patch
later.

> > @@ +98,3 @@
> >        GST_DEBUG_FUNCPTR (gst_dshowaudiosrc_get_property);
> > 
> > +  gstbasesrc_class->query = GST_DEBUG_FUNCPTR (gst_dshowaudiosrc_query);
> > 
> > Why don't you use get_caps() here?
> 
> I was under the impression that caps negotiation used queries and events now,
> and that get/set caps methods were deprecated. If not so, I'm fixing this.

They're not deprecated :) The only difference here to 0.10 is that all these
are internally implemented as queries/events

> > @@ +177,3 @@
> >    CoInitializeEx (NULL, COINIT_MULTITHREADED);
> > 
> > +  gst_pad_set_event_function (GST_BASE_SRC_PAD (src), GST_DEBUG_FUNCPTR
> > (gst_dshowvideosrc_event));
> > 
> > And here you could use the event vfunc
> 
> If I use the set_caps vfunc there will be no need for an event method any more
> isn't it ?

Yes

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list