[mythtv-commits] Ticket #10833: DVB-T radio programs time display and cutlist problems

MythTV noreply at mythtv.org
Wed Jan 9 21:38:10 UTC 2013


#10833: DVB-T radio programs time display and cutlist problems
------------------------------------------------+--------------------------
 Reporter:  John Veness <John.Veness.mythtv@…>  |          Owner:
     Type:  Bug Report - General                |         Status:  new
 Priority:  minor                               |      Milestone:  unknown
Component:  MythTV - General                    |        Version:
 Severity:  medium                              |  0.25-fixes
 Keywords:                                      |     Resolution:
                                                |  Ticket locked:  0
------------------------------------------------+--------------------------

Comment (by Roger Siddons <dizygotheca@…>):

 Joe's issue (to which John also alludes) is a separate problem; that
 skipping/jumping in radio is very unresponsive. Single skip/jumps can take
 1/3 - 1 sec, but a series of consecutive jumps can take up to 7 secs.
 Frequently the OSD is not displayed (because the display request times
 out). This is markedly slower than skipping in a TV programme.

 The problem is a consequence of
 http://code.mythtv.org/trac/changeset/d207a0bddddac4cb015746e2a4b4e5f841897c8c/mythtv,
 which limits the ringbuffer block size for low bitrates.

 UK DVB-T Radio is often 192 Kbs (ie. BBC 3/4) with significant DSMCC_B
 data (reporting a bitrate of 0). The above change limits the ringbuffer to
 4 Kb reads, so the decoder thread takes a long time to read a frame
 (!GetFrame) and will not respond to the seek request until it has
 finished.

 I have attached a debug log of 26/fixes (with extra debug code) which
 demonstrates the issue. The test case is a series of single skips and
 jumps followed by rapid ones (2 Hz) on a 192 Kbs radio programme (BBC
 Radio 4). Seek requests are marked by '''!DoPlayer''' and they are
 completed by '''!ClearAfterSeek'''. This is a good proxy for the UI
 responsiveness.

 Sample timings (secs between request/response) for this scenario: each
 column is a skip/jump attempt; rapid jumps are shown in a single cell.

 ||= 192 Kbs Radio (4K block) =||0.33||0.3||0.43, 3.1||0.82, 0.13,
 6.16||0.12, 5.67, 7.57||2.6, 7.5, 7.5||
 ||= 192 Kbs Radio (32K block) =||0.3||0.34||0.3, 1.1||0.33, 0.4, 0.44,
 0.14, 1.2, 1.6||0.5, 0.46, 0.44||0.3, 0.37, 0.5, 1||0.3, 0.35, 0.34, 1,
 0.8||
 ||= TV (384K block) =||0.03||0.26||0.02, 0.09||0.09, 0.17, 0.11,
 0.11||0.02, 0.06, 0.09||0.34, 0.68, 1.91||

 The Radio (32K block) timings were obtained by hacking the optimisation
 code to use a minimum 32K block.

 Apart from the poor 4K figures, note the variability of all the times and
 the progressive deterioration with multiple skips in all cases.
 Interestingly, a 64 Kbs radio stream (!TalkSport) with a 2K block size
 performs much better, possibly because it doesn't contain so many data
 packets.

 The issue is not apparent in master because of
 http://code.mythtv.org/trac/changeset/98b1a775cd53aaa9dca1939d4ffa24de7f1add64/mythtv,
 which overrides the reported bitrate (192 Kbs) with one derived from the
 filesize (1413 Kbs), resulting in a 32K read block now being used.

 The attached patch monitors seek requests whilst reading a frame. It
 aborts the long read as soon as a seek is detected (the frame will be
 discarded anyway). All skips/jumps now complete in less than 0.1 secs.

 Presumably the latter change will not be back-ported: this patch therefore
 solves the slow skip issue for 25/fixes & 26/fixes. For master this patch
 just makes skip/jumps snappier, more uniform and guards against slow reads
 locking the UI out.

-- 
Ticket URL: <http://code.mythtv.org/trac/ticket/10833#comment:5>
MythTV <http://code.mythtv.org/trac>
MythTV Media Center


More information about the mythtv-commits mailing list