<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    On 14/01/17 06:54, Bruce Wheaton wrote:<br>
    <blockquote
      cite="mid:%3CDF36E939-B738-43A1-81BB-0E5B3D51D6E5@synchromeshddr.com%3E"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <div>Thank you for a detailed response - very kind.</div>
      <div><br class="">
        <blockquote type="cite" class="">
          <div class="">
            <blockquote type="cite" style="font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              orphans: auto; text-align: start; text-indent: 0px;
              text-transform: none; white-space: normal; widows: auto;
              word-spacing: 0px; -webkit-text-size-adjust: auto;
              -webkit-text-stroke-width: 0px;" class="">Anyway - I can
              change the code to use float or half float (16-bit float
              GL format), but I’m not sure how best to fit it into the
              GStreamer system - still reading up on that. Also, can
              someone please point me to where/how to submit patches?
              Here on the list, or in source control?<br class="">
            </blockquote>
            <br style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px;" class="">
            <span style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px; float: none; display:
              inline !important;" class="">Bugs and patches are tracked
              in gnome bugzilla here:</span><br style="font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; orphans: auto; text-align: start;
              text-indent: 0px; text-transform: none; white-space:
              normal; widows: auto; word-spacing: 0px;
              -webkit-text-stroke-width: 0px;" class="">
            <a moz-do-not-send="true"
              href="https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer"
              style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-size-adjust: auto;
              -webkit-text-stroke-width: 0px;" class="">https://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer</a><span
              style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px; float: none; display:
              inline !important;" class="">.  You can</span><br
              style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px;" class="">
            <span style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px; float: none; display:
              inline !important;" class="">submit patches there.</span><br
              style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px;" class="">
            <br style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px;" class="">
            <blockquote type="cite" style="font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              orphans: auto; text-align: start; text-indent: 0px;
              text-transform: none; white-space: normal; widows: auto;
              word-spacing: 0px; -webkit-text-size-adjust: auto;
              -webkit-text-stroke-width: 0px;" class="">In my head, I
              expected that element to look at caps and create an
              appropriate format based on that?<br class="">
            </blockquote>
            <br style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px;" class="">
            <span style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px; float: none; display:
              inline !important;" class="">That's exactly how this would
              work :).</span><br style="font-family: Helvetica;
              font-size: 12px; font-style: normal; font-variant-caps:
              normal; font-weight: normal; letter-spacing: normal;
              orphans: auto; text-align: start; text-indent: 0px;
              text-transform: none; white-space: normal; widows: auto;
              word-spacing: 0px; -webkit-text-stroke-width: 0px;"
              class="">
          </div>
        </blockquote>
        <div><br class="">
        </div>
        Splendid! That’s what I hoped someone would say.<br class="">
        <blockquote type="cite" class="">
          <div class=""><br style="font-family: Helvetica; font-size:
              12px; font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px;" class="">
            <span style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px; float: none; display:
              inline !important;" class="">The first step is to add the
              necessary information to the libgstvideo</span><br
              style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px;" class="">
            <span style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px; float: none; display:
              inline !important;" class="">library for the
              float/half-float formats.</span><br style="font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; orphans: auto; text-align: start;
              text-indent: 0px; text-transform: none; white-space:
              normal; widows: auto; word-spacing: 0px;
              -webkit-text-stroke-width: 0px;" class="">
            <span style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px; float: none; display:
              inline !important;" class="">Second step is adding the
              float/half-float textures to gstglformat for</span><br
              style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px;" class="">
            <span style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px; float: none; display:
              inline !important;" class="">converting between
              GstVideoFormat and the necessary GL tokens.</span><br
              style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px;" class="">
            <span style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px; float: none; display:
              inline !important;" class="">Then you can use those
              formats from glcolorconvert.</span><br style="font-family:
              Helvetica; font-size: 12px; font-style: normal;
              font-variant-caps: normal; font-weight: normal;
              letter-spacing: normal; orphans: auto; text-align: start;
              text-indent: 0px; text-transform: none; white-space:
              normal; widows: auto; word-spacing: 0px;
              -webkit-text-stroke-width: 0px;" class="">
            <br style="font-family: Helvetica; font-size: 12px;
              font-style: normal; font-variant-caps: normal;
              font-weight: normal; letter-spacing: normal; orphans:
              auto; text-align: start; text-indent: 0px; text-transform:
              none; white-space: normal; widows: auto; word-spacing:
              0px; -webkit-text-stroke-width: 0px;" class="">
          </div>
        </blockquote>
        <div><br class="">
        </div>
      </div>
      Great - there’s a lot of deja-vu looking in there but at least I
      have some idea of what I’m looking for…
      <div class=""><br class="">
      </div>
      <div class="">So, in gst-plugins-base, video/video-format.h seems
        to be where the new format should go?</div>
      <div class=""><br class="">
      </div>
      <div class="">And it looks like it needs to go in a few places…</div>
      <div class=""><br class="">
      </div>
      <div class="">Then video-info.c as well? And video-converter.c….
        And video scale.c? :-(   Oh boy.</div>
    </blockquote>
    <br>
    Once you have video-converter, you can convert to something else to
    scale if necessary (potentially at a loss though).<br>
    <br>
    <blockquote
      cite="mid:%3CDF36E939-B738-43A1-81BB-0E5B3D51D6E5@synchromeshddr.com%3E"
      type="cite">
      <div class="">Is a format patch going to get in trouble because it
        isn’t supported well in software? Scaling and conversions, for
        instance? </div>
      <div class=""><br class="">
      </div>
      <div class="">gstglformat.h seems a little more straightforward…
        Can probably work that out.</div>
      <div class=""><br class="">
      </div>
      <div class="">I’ll start on changes and a patch. If I diff against
        a tagged release in GIT, that works, I presume?</div>
    </blockquote>
    <br>
    Sure, we use git format-patch for patches.<br>
    <br>
    <blockquote
      cite="mid:%3CDF36E939-B738-43A1-81BB-0E5B3D51D6E5@synchromeshddr.com%3E"
      type="cite">
      <div class="">So - more of a can of worms: has there been
        discussion of compressed image formats? A couple of codecs,
        notably and most usefully the HAP family are compressed GL
        formats. I guess I’d have to add support here, or maybe manually
        handle those frames as a raw format of some kind?</div>
      <div class=""><br class="">
      </div>
      <div class="">The more complicated is HapQ[A] which is: intraframe
        only, snappy compression (RLE) on each frame, planar (if alpha
        is included), GL compressed formats in a custom color space.
        RCoCg afair.</div>
      <div class=""><br class="">
      </div>
      <div class="">I’m sure it would have to be a separate patch, as
        I’m sure there would be a lot of wrinkles to that. Has anyone
        else been requesting these codecs or formats and handled it
        already? I suspect libav would handle it through software but
        that totally defeats the object.</div>
    </blockquote>
    <br>
    No GL compressed format has been implemented in GStreamer AFAIK. 
    The two options for implementing them involve adding formats
    (similar to the float/half-float RGBA formats) if they can be used
    transparently in GstGLMemory as non-compressed textures or creating
    encoding/decoding GStreamer elements to convert between the
    different formats.  I haven't looked too closely at the requirements
    for them either so don't know which would be the best option.<br>
    <br>
    Cheers<br>
    -Matt<br>
    <br>
    <blockquote
      cite="mid:%3CDF36E939-B738-43A1-81BB-0E5B3D51D6E5@synchromeshddr.com%3E"
      type="cite">
      <div class="">Bruce</div>
    </blockquote>
  </body>
</html>