<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta content="text/html;charset=UTF-8" http-equiv="Content-Type"></head><body ><div style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10pt;"><div>Hey Sebastian,<br></div><div><br></div><div>Thanks for your reply, indeed that change made my code to compile without any issues. <br></div><div><br></div><div>However, when I try to use my custom implementation it is not working as I'd expect. Here's my current code: <a href="https://pastebin.com/TnxvZUPT" target="_blank">CustomClock</a>. I'm using it as such:   <br></div><div><br></div><div>let pipeline = Pipeline::new(Some("pipeline"));<br></div><div>pipeline.set_clock(Some(&clock)).expect("could not set pipeline clock");<br></div><div><br></div><div>You can assume clock is indeed an instance of my CustomClock. Because of the following lines<br></div><div><br></div><div>impl ClockImpl for CustomClock { <br></div><div>    fn internal_time(&self) -> gst::ClockTime {<br></div><div>        println!("internal_time");<br></div><div>        self.parent_internal_time()<br></div><div>    }<br></div><div>}<br></div><div><br></div><div>I'd expect to see on the console the string "internal_time" but that doesn't happen (I also set a breakpoint on that function and it's never hit).<br></div><div><br></div><div>Any ideas what I'm missing to get my custom "internal_time" function to be called?<br></div><div><br></div><div><br></div><div id="Zm-_Id_-Sgn" data-zbluepencil-ignore="true" data-sigid="8819909000000014001"><div>Rodrigo Santos<br></div></div><div><br></div><div class="zmail_extra_hr" style="border-top: 1px solid rgb(204, 204, 204); height: 0px; margin-top: 10px; margin-bottom: 10px; line-height: 0px;"><br></div><div class="zmail_extra" data-zbluepencil-ignore="true"><div><br></div><div id="Zm-_Id_-Sgn1">---- On Fri, 21 Oct 2022 15:47:49 -0300 <b>Sebastian Dröge via gstreamer-devel <gstreamer-devel@lists.freedesktop.org></b> wrote ---<br></div><div><br></div><blockquote id="blockquote_zmail" style="margin: 0px;"><div><div>On Fri, 2022-10-21 at 12:30 -0300, Rodrigo Santos via gstreamer-devel wrote:<br></div><blockquote style="margin: 0 0 0 0.8ex;border-left: 2.0px rgb(114,159,207) solid;padding-left: 1.0ex;"><div style="font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 10.0pt;"><div>Hey folks, I'm trying to create a CustomClock implementation in Rust that is a subclass of GstSystemClock. I found some examples of how one can create GstElements in Rust but none explaining how to subclass a GstSystemClock. <br></div><div><br></div><div>Is it possible to create a custom clock implementation purely in Rust? <br></div><div><br></div><div>The code below is the boilerplate I implemented so far. This code doesn't compiler, one of the error messages says: <br></div><div><br></div><div>type ParentType = gst_sys::GstSystemClock; <br></div><div>    |                       ^^^^^^^^^^^^^^^^^^^^^^^ the trait `FromGlibPtrNone<*mut _>` is not implemented for `GstSystemClock`<br></div><div><br></div><div>I'm fairly new to create new GLib types and Gstreamer plugins in Rust, what am I missing? <br></div></div></blockquote><div><br></div><div>You would use `type ParentType = gst::SystemClock`. The one you selected there is the plain C type.<br></div><div>In addition to that you'll also have to implement the SystemClockImpl trait.<br></div><div><br></div><div>Once that is done, I think your code should compile like this unless I missed something.<br></div><div><br></div><div><span><pre>-- <br></pre><div>Sebastian Dröge, Centricular Ltd · <a href="https://www.centricular.com" target="_blank">https://www.centricular.com</a><br></div></span></div></div></blockquote></div><div><br></div></div><br></body></html>