Porting dshowvideosrc to 1.0

Fabricio Costa fabricio.costa at moldeointeractive.com.ar
Tue Sep 2 07:31:31 PDT 2014


Hi Jerome, i'm Fabrice, congratulations for this work! What you have done
is important for crossplatform applications that depends on GStreamer to
run. I hope i can test it somehow.

I'm still using the old 10.6-10.7 OSS Builds (
https://code.google.com/p/ossbuild/) and i have made some fixes myself long
time ago on dshowvideosrc so it can work properly with any camera. (
http://comments.gmane.org/gmane.comp.video.gstreamer.bugs/85395). I'm not
sure if they were included.

Let's stay in touch and again, nice work!



2014-09-02 10:57 GMT-03:00 Jérôme Laheurte <
jerome-bugzilla at jeromelaheurte.net>:

> Hello. Full disclosure: I’m a gstreamer beginner. As the title states, I’m
> currently porting dshowvideosrc (and dshowaudiosrc) to 1.0 (actually
> 1.4.1); the sad current state is that it works (at least the video part for
> now), but I’m not sure why. So here are a bunch of questions:
>
> 1. (audio) I’m guessing the ‘timestamp’ parameter to the read() method is
> an OUT parameter that must be filled. I tried the following:
>
> GstClock *clock = gst_element_get_clock(GST_ELEMENT(src));
> *timestamp = gst_clock_get_time(clock);
> gst_object_unref(clock);
>
> but I still get discontinuity errors. Am I wrong ? The code is actually
> the same that produces the timestamp in the video part…
>
> 2. (video) I thought that set_caps() was discontinued in favor of a
> GST_EVENT_CAPS event on the source pad. But in practice the event is never
> fired, though set_caps is still invoked (if I override it of course). Quid
> ? The event function is set in the instance’s init(), using
> gst_pad_set_event_function(GST_BASE_SRC_PAD(src), xxx).
>
> 3. (video) I removed get_caps() and implemented a query function.
> GST_QUERY_CAPS is fired, I list the supported caps using the old get_caps
> method and intersects them with the filter returned by
> gst_query_parse_caps. gst_base_src_default_negotiate logs a « fixated » set
> of caps which actually include pretty much every supported cap and the
> negotiation fails. If I explicitly set the caps (using « gst-launch-1.0
> dshowvideosrc ! « video/x-raw, format=I420, width=640, height=480,
> framerate=30/1! videoconvert ! autovideosink » instead of « gst-launch-1.0
> dshowvideosrc !  videoconvert ! autovideosink ») it works. Am I supposed to
> return only one cap from this query or what ?
>
> I can put the actual code somewhere if needed, though the setup to build
> it is kind of a pain in the ass. Which reminds me of another question:
>
> 4. (build) Building this plugin cannot be supported through autoconf. It
> must be built with Visual since it’s C++ that links with the SDK base
> classes; G++ and Visual don’t agree on name mangling so… I see that there
> are a bunch of .sln files that have been discontinued for some time in
> win32/. I’d rather use CMake since it allows the user to generate a project
> file for whatever flavor of Visual he likes. That doesn’t go against any
> philosophical choice in GStreamer does it ?
>
> I apologize in advance if there’s something really dumb up there :)
>
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>



-- 
*Fabricio Costa*
Moldeo Interactive Coop. Trab. Ltda.
www.moldeointeractive.com.ar
Bonpland 2363 3ro 303 - C.A.B.A. - Argentina
(+54911) 6124-4201
fabricio.costa at moldeointeractive.com.ar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20140902/be25f690/attachment.html>


More information about the gstreamer-devel mailing list