<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
    <title></title>
  </head>
  <body bgcolor="#ffffff" text="#000000">
    A little more information: src2 likes to have a higher priority that
    src1. If I remove the gnloperation completely and run only with
    gnlfilesources for src1 and src2, if src2 has a higher priority than
    src1, the pipeline hangs when src2 turns on.<br>
    <br>
    So if I then add the gnloperation with priority 0 and set src2
    priority=1 and src1 priority=2, the pipeline hangs when the
    gnloperation turns on. I verify this by having src1 turn at time 0
    second. Then src2 turns on at time 2 second, and it takes over as
    seen previously. Then I have gnloperation turn on at 3 seconds, and
    that is when the pipeline hangs.<br>
    <br>
    See the answers to questions below:<br>
    <br>
    On 01/04/2011 11:08 AM, Timothy Braun wrote:
    <blockquote
      cite="mid:AANLkTin4ZnYDbEW8ZFW9tWu5Q=Qp+h40avR+DXzGL+vg@mail.gmail.com"
      type="cite">What do you get when you set GST_DEBUG=2?&nbsp; The
      pipeline is most likely freezing because of a caps filter or a pad
      issue.&nbsp; </blockquote>
    Here is the output I get when I run wiht GST_DEBUG=2. This is the
    same output I get if I remove the gnloperation all together, so I am
    not sure it is related to the issue I am having.<br>
    <br>
    <tt>0:00:00.038328446&nbsp; 1353&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1ed8af0 WARN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      gnlsource
      gnlsource.c:545:gnl_source_change_state:&lt;gnlfilesource0&gt;
      Couldn't find a valid source pad<br>
      0:00:00.054148884&nbsp; 1353&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x22ccd20 WARN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      qtdemux qtdemux_types.c:170:qtdemux_type_get: unknown QuickTime
      node type avc1<br>
      0:00:00.054183522&nbsp; 1353&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x22ccd20 WARN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      qtdemux qtdemux_types.c:170:qtdemux_type_get: unknown QuickTime
      node type avcC<br>
      0:00:01.354701757&nbsp; 1353&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x1ed8af0 WARN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      gnlsource
      gnlsource.c:545:gnl_source_change_state:&lt;gnlfilesource1&gt;
      Couldn't find a valid source pad<br>
      0:00:01.369736423&nbsp; 1353&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x20aad30 WARN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      qtdemux qtdemux_types.c:170:qtdemux_type_get: unknown QuickTime
      node type avc1<br>
      0:00:01.369785865&nbsp; 1353&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x20aad30 WARN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      qtdemux qtdemux_types.c:170:qtdemux_type_get: unknown QuickTime
      node type avcC</tt><br>
    <br>
    <blockquote
      cite="mid:AANLkTin4ZnYDbEW8ZFW9tWu5Q=Qp+h40avR+DXzGL+vg@mail.gmail.com"
      type="cite">What is the pipeline connected to for output?<br>
    </blockquote>
    <br>
    The output is connected to a "queue" and an "autovideosink". The
    pipeline runs fine when no gnloperation is in place, and the second
    video takes priority. When I add the gnloperation but do not set any
    priorities, the pipeline runs as if the gnloperation is not there.
    When I set the priority on src2 to anything other than 1, then the
    pipeline hangs. By changing around the "start" time property on the
    gnloperation, the hanging seems to correspond to whenever the
    gnloperation starts up. <br>
    <br>
    Lane<br>
    <br>
    <blockquote
      cite="mid:AANLkTin4ZnYDbEW8ZFW9tWu5Q=Qp+h40avR+DXzGL+vg@mail.gmail.com"
      type="cite"><br>
      <div class="gmail_quote">On Tue, Jan 4, 2011 at 12:56 PM, Lane
        Brooks <span dir="ltr">&lt;<a moz-do-not-send="true"
            href="mailto:lane@brooks.nu">lane@brooks.nu</a>&gt;</span>
        wrote:<br>
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
          0.8ex; border-left: 1px solid rgb(204, 204, 204);
          padding-left: 1ex;">
          <div class="im">On 01/04/2011 10:33 AM, Timothy Braun wrote:<br>
            <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
              0.8ex; border-left: 1px solid rgb(204, 204, 204);
              padding-left: 1ex;">
              Make sure the gnl input sources have different priorities
              and set the gnloperations priority to 0.<br>
            </blockquote>
            <br>
          </div>
          Thanks for the idea. I tried setting the priority of the op to
          0, src1 to 1, and src2 to 2. Now when I run it the stream
          hangs after 2 seconds, which is when the gnloperation and src2
          are starting up. I did some testing and the hanging only
          occurs if I set the priority on src2 to anything other than 0.
          I can set the priorities on the op and src1 without hanging
          (it still doesn't work, however). Here is my code again with
          the updates:
          <div class="im">
            <br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp;comp = gst.element_factory_make("gnlcomposition")<br>
            &nbsp; &nbsp; &nbsp; &nbsp;src1 = gst.element_factory_make("gnlfilesource")<br>
            &nbsp; &nbsp; &nbsp; &nbsp;src2 = gst.element_factory_make("gnlfilesource")<br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp;comp.add(src1)<br>
            &nbsp; &nbsp; &nbsp; &nbsp;src1.set_property("location", "/test1.mp4")<br>
            &nbsp; &nbsp; &nbsp; &nbsp;src1.set_property("start", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0 * gst.SECOND)<br>
            &nbsp; &nbsp; &nbsp; &nbsp;src1.set_property("duration", &nbsp; &nbsp; &nbsp; 5 * gst.SECOND)<br>
            &nbsp; &nbsp; &nbsp; &nbsp;src1.set_property("media-start", &nbsp; &nbsp;0 * gst.SECOND)<br>
            &nbsp; &nbsp; &nbsp; &nbsp;src1.set_property("media-duration", 5 * gst.SECOND)<br>
          </div>
          &nbsp; &nbsp; &nbsp; &nbsp;src1.set_property("priority", &nbsp; &nbsp; &nbsp; 1)
          <div class="im"><br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp;comp.add(src2)<br>
            &nbsp; &nbsp; &nbsp; &nbsp;src2.set_property("location", "/test2.mp4")<br>
            &nbsp; &nbsp; &nbsp; &nbsp;src2.set_property("start", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 * gst.SECOND)<br>
            &nbsp; &nbsp; &nbsp; &nbsp;src2.set_property("duration", &nbsp; &nbsp; &nbsp; 5 * gst.SECOND)<br>
            &nbsp; &nbsp; &nbsp; &nbsp;src2.set_property("media-start", &nbsp; &nbsp;0 * gst.SECOND)<br>
            &nbsp; &nbsp; &nbsp; &nbsp;src2.set_property("media-duration", 5 * gst.SECOND)<br>
          </div>
          &nbsp; &nbsp; &nbsp; &nbsp;src2.set_property("priority", &nbsp; &nbsp; &nbsp; 2)
          <div class="im"><br>
            <br>
            &nbsp; &nbsp; &nbsp; &nbsp;op = gst.element_factory_make("gnloperation")<br>
            &nbsp; &nbsp; &nbsp; &nbsp;tran = gst.element_factory_make("smpte")<br>
            &nbsp; &nbsp; &nbsp; &nbsp;tran.set_property("type", 234)<br>
            &nbsp; &nbsp; &nbsp; &nbsp;tran.set_property("duration", 3 * gst.SECOND)<br>
            &nbsp; &nbsp; &nbsp; &nbsp;op.add(tran)<br>
          </div>
          <div class="im"> &nbsp; &nbsp; &nbsp; &nbsp;op.set_property("start", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 *
            gst.SECOND)<br>
            &nbsp; &nbsp; &nbsp; &nbsp;op.set_property("duration", &nbsp; &nbsp; &nbsp; 3 * gst.SECOND)<br>
            &nbsp; &nbsp; &nbsp; &nbsp;op.set_property("media-start", &nbsp; &nbsp;0 * gst.SECOND)<br>
            &nbsp; &nbsp; &nbsp; &nbsp;op.set_property("media-duration", 3 * gst.SECOND)<br>
          </div>
          &nbsp; &nbsp; &nbsp; &nbsp;op.set_property("priority", &nbsp; &nbsp; &nbsp; 0)<br>
          &nbsp; &nbsp; &nbsp; &nbsp;comp.add(op)<br>
          <br>
          I can get the smpte transition to work correctly on these two
          streams when not using the gnonlin elements, but that is not
          very interesting as I have to run the two streams in parallel.<br>
          <br>
          Any other ideas?<br>
          <font color="#888888">
            <br>
            Lane</font>
          <div>
            <div class="h5"><br>
              <br>
              <br>
              <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
                0.8ex; border-left: 1px solid rgb(204, 204, 204);
                padding-left: 1ex;">
                On Jan 4, 2011, at 12:01 PM, Lane Brooks&lt;<a
                  moz-do-not-send="true" href="mailto:lane@brooks.nu"
                  target="_blank">lane@brooks.nu</a>&gt; &nbsp;wrote:<br>
                <br>
                <blockquote class="gmail_quote" style="margin: 0pt 0pt
                  0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204);
                  padding-left: 1ex;">
                  On 01/04/2011 05:39 AM, Edward Hervey wrote:<br>
                  <blockquote class="gmail_quote" style="margin: 0pt 0pt
                    0pt 0.8ex; border-left: 1px solid rgb(204, 204,
                    204); padding-left: 1ex;">
                    On Mon, 2011-01-03 at 23:23 -0700, Lane Brooks
                    wrote:<br>
                    <blockquote class="gmail_quote" style="margin: 0pt
                      0pt 0pt 0.8ex; border-left: 1px solid rgb(204,
                      204, 204); padding-left: 1ex;">
                      I have a gnlcomposition containing two video
                      sources. I would like to<br>
                      apply a smpte transition from one source to the
                      next.<br>
                      <br>
                      I have tried overlapping the two gnlsources by 3
                      seconds. I then put a<br>
                      'smpte' element in a 'gnloperation' and add the
                      'gnloperation' to the<br>
                      'gnlcompostion'. The addition of the gnloperation
                      doesn't seem to do<br>
                      anything. The resulting video is the same
                      regardless of whether I add<br>
                      the gnloperation or not. The result is always that
                      the second video<br>
                      takes over during the period of overlap. Here is
                      code I have (in python):<br>
                      <br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;comp =
                      gst.element_factory_make("gnlcomposition")<br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;src1 =
                      gst.element_factory_make("gnlfilesource")<br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;src2 =
                      gst.element_factory_make("gnlfilesource")<br>
                      <br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;comp.add(src1)<br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;src1.set_property("location",
                      "/test1.mp4")<br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;src1.set_property("start", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0 *
                      gst.SECOND)<br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;src1.set_property("duration", &nbsp; &nbsp; &nbsp; 5 *
                      gst.SECOND)<br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;src1.set_property("media-start", &nbsp; &nbsp;0 *
                      gst.SECOND)<br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;src1.set_property("media-duration", 5 *
                      gst.SECOND)<br>
                      <br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;comp.add(src2)<br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;src2.set_property("location",
                      "/test2.mp4")<br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;src2.set_property("start", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 *
                      gst.SECOND)<br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;src2.set_property("duration", &nbsp; &nbsp; &nbsp; 5 *
                      gst.SECOND)<br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;src2.set_property("media-start", &nbsp; &nbsp;0 *
                      gst.SECOND)<br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;src2.set_property("media-duration", 5 *
                      gst.SECOND)<br>
                      <br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;op =
                      gst.element_factory_make("gnloperation")<br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tran = gst.element_factory_make("smpte")<br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tran.set_property("type", 234)<br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;tran.set_property("duration", 3 *
                      gst.SECOND)<br>
                      &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;op.add(tran)<br>
                    </blockquote>
                    <br>
                    &nbsp; Set the [media-]{start|duration} propertie son op
                    also<br>
                  </blockquote>
                  <br>
                  I had already tried this as well.<br>
                  <br>
                  &nbsp; &nbsp; &nbsp; &nbsp; op.set_property("start", &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 *
                  gst.SECOND)<br>
                  &nbsp; &nbsp; &nbsp; &nbsp; op.set_property("duration", &nbsp; &nbsp; &nbsp; 3 *
                  gst.SECOND)<br>
                  &nbsp; &nbsp; &nbsp; &nbsp; op.set_property("media-start", &nbsp; &nbsp;0 *
                  gst.SECOND)<br>
                  &nbsp; &nbsp; &nbsp; &nbsp; op.set_property("media-duration", 3 *
                  gst.SECOND)<br>
                  <br>
                  I am not sure what I should put the media-start at,
                  but I have tried<br>
                  both 0 and 2 and neither works. Any other ideas?<br>
                  <br>
                  <br>
                  <blockquote class="gmail_quote" style="margin: 0pt 0pt
                    0pt 0.8ex; border-left: 1px solid rgb(204, 204,
                    204); padding-left: 1ex;">
                    <br>
                    <blockquote class="gmail_quote" style="margin: 0pt
                      0pt 0pt 0.8ex; border-left: 1px solid rgb(204,
                      204, 204); padding-left: 1ex;"> &nbsp; &nbsp; &nbsp; &nbsp;
                      &nbsp;comp.add(op)<br>
                      <br>
                      Anyone know if using an smpte transition is
                      possible, and if so, what I<br>
                      am doing wrong?<br>
                      <br>
                      Thanks,<br>
                      Lane<br>
                    </blockquote>
                  </blockquote>
                </blockquote>
              </blockquote>
              <br>
            </div>
          </div>
        </blockquote>
      </div>
      <br>
    </blockquote>
    <br>
  </body>
</html>