<div dir="ltr">Amazing ... I had no idea that Gstreamer could interpolate parameters like that.<div><br></div><div>I don't want to burden you with a code review ... it wouldn't be practical anyway.  Your python example is very clear ... I can just extrapolate from that.</div><div><br></div><div>Thank you!</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Feb 21, 2019 at 11:12 AM Thibault Saunier <<a href="mailto:tsaunier@gnome.org">tsaunier@gnome.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I knew it :-)<br>
<br>
Just pushed a simple example in python:<br>
<a href="https://gitlab.freedesktop.org/gstreamer/gst-editing-services/blob/master/examples/python/keyframes.py" rel="noreferrer" target="_blank">https://gitlab.freedesktop.org/gstreamer/gst-editing-services/blob/master/examples/python/keyframes.py</a><br>
<br>
You should be able to extrapolate for any language you use (also I<br>
would be happy to review the port of that example to that language ;))<br>
<br>
<br>
<br>
Thibault.<br>
<br>
On Thu, Feb 21, 2019 at 1:56 PM David Ing <<a href="mailto:ding@panopto.com" target="_blank">ding@panopto.com</a>> wrote:<br>
><br>
> I don't know how to do that.<br>
><br>
> On Wed, Feb 20, 2019 at 3:59 PM Thibault Saunier <<a href="mailto:saunierthibault@gmail.com" target="_blank">saunierthibault@gmail.com</a>> wrote:<br>
>><br>
>> Then you should keyframe the alpha child property of the source :)<br>
>><br>
>> On Wed, Feb 20, 2019, 20:26 David Ing <<a href="mailto:ding@panopto.com" target="_blank">ding@panopto.com</a>> wrote:<br>
>>><br>
>>> What if I did not want a transition between two clips "a" and "b", but instead I want clip "a" to transition into whatever the lower-priority layers had drawn?<br>
>>><br>
>>> On Wed, Feb 20, 2019 at 2:12 PM David Ing <<a href="mailto:ding@panopto.com" target="_blank">ding@panopto.com</a>> wrote:<br>
>>>><br>
>>>> Thank you!<br>
>>>><br>
>>>> On Wed, Feb 20, 2019 at 2:00 PM Thibault Saunier <<a href="mailto:saunierthibault@gmail.com" target="_blank">saunierthibault@gmail.com</a>> wrote:<br>
>>>>><br>
>>>>><br>
>>>>><br>
>>>>> On Wed, Feb 20, 2019, 18:44 David Ing <<a href="mailto:ding@panopto.com" target="_blank">ding@panopto.com</a>> wrote:<br>
>>>>>><br>
>>>>>> Thibault, you said "Transitions happen between 2 overlapping clips".  Do you mean two clips within the same layer?<br>
>>>>>><br>
>>>>>><br>
>>>>>> Are you saying that this will achieve a 2-second crossfade from a --> b?<br>
>>>>>><br>
>>>>>> Layer 1:<br>
>>>>>><br>
>>>>>> GESSourceClip a<br>
>>>>>><br>
>>>>>> starts at 0 seconds<br>
>>>>>> ends at 11 seconds<br>
>>>>>><br>
>>>>>> GESTransitionClip c<br>
>>>>>><br>
>>>>>> starts at 9 seconds<br>
>>>>>><br>
>>>>>> ends at 11 seconds<br>
>>>>>><br>
>>>>>> GESSourceClip b<br>
>>>>>><br>
>>>>>> starts at 9 seconds<br>
>>>>>> ends at 20 seconds<br>
>>>>><br>
>>>>><br>
>>>>> That is correct yes :)<br>
>>>>>><br>
>>>>>><br>
>>>>>> On Wed, Feb 20, 2019 at 1:37 PM Thibault Saunier <<a href="mailto:saunierthibault@gmail.com" target="_blank">saunierthibault@gmail.com</a>> wrote:<br>
>>>>>>><br>
>>>>>>> Hello David,<br>
>>>>>>><br>
>>>>>>> Transitions happen between 2 overlapping clips so you need to make sure clips overlap at the point where you add them.<br>
>>>>>>><br>
>>>>>>> Alternatively, you can use the GESTimeline::auto-transition property to automatically create transitions when 2 clips overlap.<br>
>>>>>>><br>
>>>>>>> Regards,<br>
>>>>>>><br>
>>>>>>> Thibault<br>
>>>>>>><br>
>>>>>>> On Wed, Feb 20, 2019, 17:47 David Ing <<a href="mailto:ding@panopto.com" target="_blank">ding@panopto.com</a>> wrote:<br>
>>>>>>>><br>
>>>>>>>> I am struggling to find a clean example for how to achieve a crossfade.<br>
>>>>>>>><br>
>>>>>>>> I have a layer which contains two clips of type GESSourceClip:<br>
>>>>>>>><br>
>>>>>>>> GESSourceClip a<br>
>>>>>>>><br>
>>>>>>>> starts at 0 seconds<br>
>>>>>>>> ends at 9.999999999 seconds<br>
>>>>>>>><br>
>>>>>>>> GESSourceClip b<br>
>>>>>>>><br>
>>>>>>>> starts at 10 seconds<br>
>>>>>>>> ends at 20 seconds<br>
>>>>>>>><br>
>>>>>>>><br>
>>>>>>>> Now I want a 2 second crossfade from "a" to "b" ... but how?<br>
>>>>>>>><br>
>>>>>>>> Do I create a GESTransitionClip and insert it into the layer between "a" and "b"?<br>
>>>>>>>><br>
>>>>>>>> What about the timings.  Do I keep the timings for "a" and "b" unchanged, but set the transition clip as follows?<br>
>>>>>>>><br>
>>>>>>>> starts at 9 seconds<br>
>>>>>>>> ends at 11 seconds<br>
>>>>>>>><br>
>>>>>>>> Is it okay for the GESTransitionClip to overlap with GESSourceClip with respect to time?<br>
>>>>>>>> _______________________________________________<br>
>>>>>>>> gstreamer-devel mailing list<br>
>>>>>>>> <a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
>>>>>>>> <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
>>>>>>><br>
>>>>>>> _______________________________________________<br>
>>>>>>> gstreamer-devel mailing list<br>
>>>>>>> <a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
>>>>>>> <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
>>>>>><br>
>>>>>> _______________________________________________<br>
>>>>>> gstreamer-devel mailing list<br>
>>>>>> <a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
>>>>>> <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
>>>>><br>
>>>>> _______________________________________________<br>
>>>>> gstreamer-devel mailing list<br>
>>>>> <a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
>>>>> <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
>>><br>
>>> _______________________________________________<br>
>>> gstreamer-devel mailing list<br>
>>> <a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
>>> <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
>><br>
>> _______________________________________________<br>
>> gstreamer-devel mailing list<br>
>> <a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
>> <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
><br>
> _______________________________________________<br>
> gstreamer-devel mailing list<br>
> <a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
> <a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a></blockquote></div>