<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
Sorry, replied to the earlier mail, didn't notice you had found a
link. As far as I know,<br>
the problem relates to the specification of how H264 is to be
contained in MP4, I think<br>
you'll need to look at ISO/IEC 14496-15 for more information :)<br>
<br>
<div class="moz-cite-prefix">On 12/4/19 7:26 PM, David Ing wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAKF2gC8hfHtd_POeH27QOap_jkEdn6dTKPeCMQjyoDLEsEZWqQ@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">Here is the AVC1 standard:
<a
href="https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=7825"
moz-do-not-send="true">https://www.itu.int/ITU-T/recommendations/rec.aspx?rec=7825</a>
(the link was right there as a reference in the wikipedia
article,
<a
href="https://en.wikipedia.org/wiki/Advanced_Video_Coding#Versions"
target="_blank" moz-do-not-send="true">https://en.wikipedia.org/wiki/Advanced_Video_Coding#Versions</a>).
<div><br>
</div>
<div>Page 31 / section 7.3.2.1 defines the Sequence parameter
set RBSP syntax, which includes:</div>
<div>
<ul>
<li>pic_width_in_mbs_minus1</li>
<li>pic_height_in_map_units_minus_1</li>
</ul>
<div>Therefore (unless I am mistaken), it looks like sequence
parameter sets (which contain width / height settings) are
allowed in avc1.</div>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Dec 4, 2019 at 10:11
AM David Ing <<a href="mailto:ding@panopto.com"
moz-do-not-send="true">ding@panopto.com</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">
<div dir="ltr">Okay ... I think this is where the versions are
defined:
<a
href="https://en.wikipedia.org/wiki/Advanced_Video_Coding#Versions"
target="_blank" moz-do-not-send="true">https://en.wikipedia.org/wiki/Advanced_Video_Coding#Versions</a>
<div><br>
</div>
<div>(Still trying to figure out how to view the standards
for free.)</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Dec 4, 2019 at
10:03 AM David Ing <<a href="mailto:ding@panopto.com"
target="_blank" moz-do-not-send="true">ding@panopto.com</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">
<div dir="ltr">Mathieu --
<div><br>
</div>
<div>Please excuse the inadequacy of my google-fu. I am
having trouble finding any kind of authoritative
reference document which describes avc1, 2, 3, 4, ...
(and the subtle differences between them)</div>
<div>
<ul>
<li>My best guess is that avc1 refers to the first
amendment: <a
href="https://www.iso.org/standard/67318.html"
target="_blank" moz-do-not-send="true">https://www.iso.org/standard/67318.html</a></li>
<li>My best guess is that avc3 refers to the third
amendment: <a
href="https://www.iso.org/standard/69728.html"
target="_blank" moz-do-not-send="true">https://www.iso.org/standard/69728.html</a></li>
</ul>
</div>
<div>Also -- I am a bit surprised that we need to pay in
order to view documents like this. Does anyone know
if there is a way to view this stuff for free?<br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Wed, Dec 4, 2019 at
9:14 AM Mathieu Duponchelle <<a
href="mailto:mathieu@centricular.com"
target="_blank" moz-do-not-send="true">mathieu@centricular.com</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">
<div> 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>-- <br>
Mathieu Duponchelle · <a
href="https://www.centricular.com"
target="_blank" moz-do-not-send="true">https://www.centricular.com</a></div>
<br>
<br>
<div>On 12/3/19 10:50 PM, David Ing wrote:<br>
</div>
<blockquote type="cite">
<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:0px 0px 0px
40px;border:none;padding:0px">
<div>
<div><a
href="https://drive.google.com/drive/folders/1f4pGNDhzCvsg1xXWj4y9DS3vXkaglOvZ?usp=sharing"
target="_blank" 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:0px 0px 0px
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
moz-do-not-send="true">file:///home/ding/mess/repro/screencap.m4v</a></font></div>
<div><font face="monospace">Done discovering
<a moz-do-not-send="true">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></fieldset>
<pre>_______________________________________________
gstreamer-devel mailing list
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank" moz-do-not-send="true">gstreamer-devel@lists.freedesktop.org</a>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank" moz-do-not-send="true">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a></pre>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
</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>