<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    That's an interesting file, but I'm not sure it is a a compliant
    one:  the resolution change is<br>
    advertised through SPS in the bitstream, but the MP4 header says
    "avc1", which as far as I remembe<br>
    means the H264 bitstream should not contain any SPS (please double
    check this, haven't looked at the spec).<br>
    <br>
    Ideally, the tool you produced this file with would use an "avc3"
    stream format, and not hold<br>
    any parameter sets in its MP4 header. That way, you could detect
    resolution changes by simply<br>
    plugging a demuxer and a parser together and looking for new caps.
    Currently you can only do that<br>
    either by also plugging a decoder afterwards and looking for caps
    changes, or analysing the SPS<br>
    manually :)<br>
    <br>
    Best,<br>
    <br>
    <div class="moz-signature">-- <br>
      Mathieu Duponchelle · <a href="https://www.centricular.com">https://www.centricular.com</a></div>
    <br>
    <br>
    <div class="moz-cite-prefix">On 12/3/19 10:50 PM, David Ing wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAKF2gC8+z3WyfnX9qX=b-WjGyAG=cQ9w83axLQS3f9YJBnf71g@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">I have an mp4 file which changes size during
        playback.  But I noticed that gst-discoverer-1.0 does not report
        the fact that the size changes.
        <div><br>
        </div>
        <div><span style="background-color:rgb(255,255,0)">I have two
            questions</span>.</div>
        <div>
          <ol>
            <li>In theory, what is the fastest way to scan the file to
              determine where the size changes?</li>
            <li>In practice, what is the easiest way (given the current
              state of gstreamer) to scan the file and determine where
              the size changes?</li>
          </ol>
          <div>
            <div>Here is the file which changes size during playback:<br>
            </div>
          </div>
          <div><br>
          </div>
          <blockquote style="margin:0 0 0 40px;border:none;padding:0px">
            <div>
              <div><a
href="https://drive.google.com/drive/folders/1f4pGNDhzCvsg1xXWj4y9DS3vXkaglOvZ?usp=sharing"
                  moz-do-not-send="true">https://drive.google.com/drive/folders/1f4pGNDhzCvsg1xXWj4y9DS3vXkaglOvZ?usp=sharing</a></div>
            </div>
            <div><br>
            </div>
          </blockquote>
          Here is the gst-discoverer-1.0 output:
          <div><br>
          </div>
          <blockquote style="margin:0 0 0 40px;border:none;padding:0px">
            <div><font face="monospace">$ <b>gst-discoverer-1.0 -v
                  screencap.m4v </b></font></div>
            <div><font face="monospace">Analyzing
                <a class="moz-txt-link-freetext" href="file:///home/ding/mess/repro/screencap.m4v">file:///home/ding/mess/repro/screencap.m4v</a></font></div>
            <div><font face="monospace">Done discovering
                <a class="moz-txt-link-freetext" href="file:///home/ding/mess/repro/screencap.m4v">file:///home/ding/mess/repro/screencap.m4v</a></font></div>
            <div><font face="monospace"><br>
              </font></div>
            <div><font face="monospace">Topology:</font></div>
            <div><font face="monospace">  container: video/quicktime,
                variant=(string)iso</font></div>
            <div><font face="monospace">    video: video/x-h264,
                stream-format=(string)avc, alignment=(string)au,
                level=(string)4.2, profile=(string)main,
codec_data=(buffer)014d402affe1002b674d402a965402a835f35602d40404050000030001000003003ce060007d0000030177009a9503b4244d4001000468ce3520,
                width=(int)996, height=(int)632,
                pixel-aspect-ratio=(fraction)1/1,
                framerate=(fraction)30/1,
                interlace-mode=(string)progressive,
                chroma-format=(string)4:2:0, bit-depth-luma=(uint)8,
                bit-depth-chroma=(uint)8, parsed=(boolean)true</font></div>
            <div><font face="monospace">      Tags:</font></div>
            <div><font face="monospace">        video codec: H.264 / AVC</font></div>
            <div><font face="monospace">        bitrate: 309812</font></div>
            <div><font face="monospace">        datetime:
                2019-11-01T17:40:33Z</font></div>
            <div><font face="monospace">        title: n/a</font></div>
            <div><font face="monospace">        container format: ISO
                MP4/M4A</font></div>
            <div><font face="monospace">      </font></div>
            <div><font face="monospace">      Codec:</font></div>
            <div><font face="monospace">        video/x-h264,
                stream-format=(string)avc, alignment=(string)au,
                level=(string)4.2, profile=(string)main,
codec_data=(buffer)014d402affe1002b674d402a965402a835f35602d40404050000030001000003003ce060007d0000030177009a9503b4244d4001000468ce3520,
                width=(int)996, height=(int)632,
                pixel-aspect-ratio=(fraction)1/1,
                framerate=(fraction)30/1,
                interlace-mode=(string)progressive,
                chroma-format=(string)4:2:0, bit-depth-luma=(uint)8,
                bit-depth-chroma=(uint)8, parsed=(boolean)true</font></div>
            <div><font face="monospace">      Additional info:</font></div>
            <div><font face="monospace">        None</font></div>
            <div><font face="monospace">      Stream ID:
                14c5bd3783191c8af25f30b00a879f8f7bdaa4367c8ecbd954b38e5367507175/001</font></div>
            <div><font face="monospace">      Width: 1350</font></div>
            <div><font face="monospace">      Height: 846</font></div>
            <div><font face="monospace">      Depth: 24</font></div>
            <div><font face="monospace">      Frame rate: 30/1</font></div>
            <div><font face="monospace">      Pixel aspect ratio: 1/1</font></div>
            <div><font face="monospace">      Interlaced: false</font></div>
            <div><font face="monospace">      Bitrate: 309812</font></div>
            <div><font face="monospace">      Max bitrate: 0</font></div>
            <div><font face="monospace"><br>
              </font></div>
            <div><font face="monospace">Properties:</font></div>
            <div><font face="monospace">  Duration: 0:00:34.861322222</font></div>
            <div><font face="monospace">  Seekable: yes</font></div>
            <div><font face="monospace">  Live: no</font></div>
            <div><font face="monospace">  Tags: </font></div>
            <div><font face="monospace">      video codec: H.264 / AVC</font></div>
            <div><font face="monospace">      bitrate: 309812</font></div>
            <div><font face="monospace">      datetime:
                2019-11-01T17:40:33Z</font></div>
            <div><font face="monospace">      title: n/a</font></div>
            <div><font face="monospace">      container format: ISO
                MP4/M4A</font></div>
          </blockquote>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
gstreamer-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:gstreamer-devel@lists.freedesktop.org">gstreamer-devel@lists.freedesktop.org</a>
<a class="moz-txt-link-freetext" href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a></pre>
    </blockquote>
  </body>
</html>