[mythtv-users] Mytharchive and DVB subtitles not working?

Thomas Pontoppidan Spam1 at pontoppidan.name
Mon May 17 13:58:49 UTC 2010

2010/5/17 Mike Perkins <mikep at randomtraveller.org.uk>

> Thomas Pontoppidan wrote:
>> Any hints on where to look for a solution to this problem?
>> I have trawled through the mytharchive script searching for code regarding
>> identification of subtitles, but I only found code related to the handling
>> of DVB subtitles *after* they were selected for processing:( Where is the
>> code that selects the relevant subtitle streams?
>> I can't understand why teletext is treated as a subtitle stream in the
>> first
>> place? - I know it can contain subtitles, but there is no way Mytharchive
>> can tell which page holds the subtitles anyway, so in my opinion it never
>> makes sense to include it in a DVD project?
>> By convention, teletext subtitles are always on page 888.
Problem is solved! To skip my ramling see bottom of message:-)

Hmm, conventions are fine, but in this case neither Danish nor Swedish
national television broadcasters seem to adhere to conventions - DR teletext
subtitles are on page 399, and SVT are on page 199 (SVT1) and 299 (SVT2).
But I can see now that the correct page is actually specified in the
ProjectX log (PID: 0x853(dan_i100 dan_s.hip399) so that shouldn't be a
problem:) However, afaik, in Denmark teletext subtitles are only used for
hearing impaired (i.e. shows with danish audio) so when a show is already
subtitled either with "burned" subtitles or DVB, there are no teletext

I found the part of the script where the subtitles are selected in
mythburn.py. But when I read the code it already seems to prefer dvbsub in
this piece of code:

04504     # first try to find a stream with preferred language 1
04505     for node in nodes:
04506         index = int(node.attributes["ffmpegindex"].value)
04507         lang = node.attributes["language"].value
04508         format = string.upper(node.attributes["codec"].value)
04509         pid = int(node.attributes["id"].value)
==>04510         if not found and lang == preferredlang1 and format ==
04511             subtitle = (index, format, pid, lang)
04512             found = True

Only if that (and the second preferred language) fails will it select the
first stream:

04525     # finally use the first subtitle stream
04526     if not found:
04527         for node in nodes:
04528             index = int(node.attributes["ffmpegindex"].value)
04529             format = string.upper(node.attributes["codec"].value)
04530             pid = int(node.attributes["id"].value)
04531             if not found:
04532                 subtitle = (index, format, pid, lang)
04533                 found = True

I found it strange that "format" is defined in upper-case (04508) and then
compared to the lower case string in 04510 so I changed "dvbsub" => "DVBSUB"
and now it chooses the right stream! I guess this should be reported as a
bug, but I don't know how...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mythtv.org/pipermail/mythtv-users/attachments/20100517/e24d745a/attachment.htm>

More information about the mythtv-users mailing list