[mythtv-commits] Ticket #9410: Positioning problems with BBC HD and BBC ONE HD recordings
MythTV
noreply at mythtv.org
Tue Jan 11 19:33:47 UTC 2011
#9410: Positioning problems with BBC HD and BBC ONE HD recordings
-------------------------------------+-----------------------------
Reporter: mythtv@… | Owner: janne
Type: Bug Report | Status: assigned
Priority: critical | Milestone: 0.24.1
Component: MythTV - Video Playback | Version: Unspecified
Severity: medium | Resolution:
Keywords: | Ticket locked: 0
-------------------------------------+-----------------------------
Comment (by mythtv@…):
I now have at least a partial fix for this, in that I've found
two aspects of the spec not implemented, and added code to handle
them. Results, after making these changes (plus one of John Poet's),
and then running "mythcommflag --rebuild", look promising. Most of the
recordings I've tested now search perfectly. I did have some strange
behaviour during Live playback of the news this evening, so there
may be further problems to address.
There are three changes:
1) Prior to parsing the bodies of the various NALs, remove
any emulation-prevention bytes. This should improve results
for all H264, not just BBC HD. To keep the initial implementation
simple, I've had to allocate a buffer to copy into, while performing
the removal. It might be better, at some stage, to make a version
of the getbits library that can jump over these bytes as it goes,
but that would be quite difficult. I also removed all increments
to byteP: provided it is incremented past the start code, there
is no need to move it any further, and to do so carries the risk
of miscalculating and moving it too far.
2) I've updated the code for reading profile>=100 versions of the
SPS. The scaling-list-present flag was being read, but not the lists
themselves, and since the log2_max_frame_num_minus4 field occurs
after, frame numbers were not being read correctly from slices.
That was probably the biggest contributor to BBC HD problems.
3) I've added John Poet's change that looks for nal_ref_idc changes
only in slices.
The three change are in my fork at: https://github.com/Glidos/mythtv
They are the last three commits on branch fix9410-bbc-hd. I'm also
attaching a patch.
--
Ticket URL: <http://code.mythtv.org/trac/ticket/9410#comment:5>
MythTV <http://code.mythtv.org/trac>
MythTV Media Center
More information about the mythtv-commits
mailing list