<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
Peter,<br>
<br>
My harmonization of mpegts-mythtv.* is almost complete. (This is on
top of my rebase/4.4m3 branch, but should have no issues being
applied on top of mythtv/FFmpeg/master.)<br>
<br>
See <a class="moz-txt-link-freetext" href="https://github.com/ulmus-scott/FFmpeg/commits/harmonize">https://github.com/ulmus-scott/FFmpeg/commits/harmonize</a> for the
original commit order and
<a class="moz-txt-link-freetext" href="https://github.com/ulmus-scott/FFmpeg/commits/harmonize2">https://github.com/ulmus-scott/FFmpeg/commits/harmonize2</a> for
reordered with problematic commits moved to the end.<br>
<br>
I have been testing with some of my local stations and the samples
from <a class="moz-txt-link-freetext" href="https://code.mythtv.org/trac/ticket/13557">https://code.mythtv.org/trac/ticket/13557</a> /
<a class="moz-txt-link-freetext" href="https://github.com/MythTV/mythtv/issues/351">https://github.com/MythTV/mythtv/issues/351</a> and everything is fine
through <a moz-do-not-send="true"
href="https://github.com/ulmus-scott/FFmpeg/commit/c22901ac83f9955f3846d33f79f4ddb8a07aeb8d">mpegts-mythtv.c:
harmonize ff_parse_mpeg2_descriptor() part 1</a>.<br>
<br>
I have been banging my head against the brick wall that is pat_cb()
and pmt_cb(). (It started out fairly straightforward, but dealing
with those two functions and the 17 year old changes buried under
updates has been increasingly frustrating.)<br>
<br>
<a moz-do-not-send="true"
href="https://github.com/ulmus-scott/FFmpeg/commit/58cc290d552169f2388e83384e1a28a22a710ae7">mpegts-mythtv.c:
pmt_cb(): harmonize part 6</a> appears to actually work fine;
however, the logic for calling the <span class="pl-smi">streams_changed()
callback is wrong, so it isn't called when it was previously. <a
moz-do-not-send="true"
href="https://github.com/ulmus-scott/FFmpeg/commit/8a8dc3d5599bd61368c26ed410248cad20f7fa25">Correcting
it</a>, sort of (it updates on every different PMT, instead of
if the streams actually changed), causes a segmentation fault in
<a class="moz-txt-link-freetext" href="https://github.com/MythTV/mythtv/blob/709d05c0d6928e927ea1b0cc2b2c46bc80d40055/mythtv/libs/libmythtv/decoders/avformatdecoder.cpp#L2652">https://github.com/MythTV/mythtv/blob/709d05c0d6928e927ea1b0cc2b2c46bc80d40055/mythtv/libs/libmythtv/decoders/avformatdecoder.cpp#L2652</a>
.<br>
<br>
I suspect that is because the PSIPTable does not create a copy of
its input data, which is then freed while the PMT table is being
accessed.<br>
<br>
<a moz-do-not-send="true"
href="https://github.com/ulmus-scott/FFmpeg/commit/6887b3127bcc2b8211e0fd7ab9828965ffe847f0">mpegts-mythtv.c:
pat_cb() harmonization part 3</a> causes a different
segmentation fault in FFmpeg (dump.c trying to read the
st->metadata AVDictionary for the "language"). I wouldn't
worry about this one right now since I feel pmt_cb() has a higher
priority, so ff_parse_mpeg2_descriptor() can be minimally
modified.<br>
<br>
<br>
Let me know if you want me to open another set of pull requests
with the "good" commits for easier testing.<br>
<br>
Any thoughts on how to complete the harmonization would also be
appreciated.<br>
<br>
Regards,<br>
<br>
Scott</span><span class="pl-smi"></span><br>
<span class="pl-smi">
<style type="text/css">p { line-height: 115%; margin-bottom: 0.1in; background: transparent }a:visited { color: #800000; so-language: zxx; text-decoration: underline }a:link { color: #000080; so-language: zxx; text-decoration: underline }</style></span>
</body>
</html>