Opened 5 years ago

Closed 5 years ago

#12121 closed Bug Report - General (Fixed)

Wrongly assumes movie.title is unique - skips following recordings

Reported by: pmhahn@… Owned by: Karl Egly
Priority: minor Milestone: 0.27.1
Component: MythTV - Mythfilldatabase Version: 0.27-fixes
Severity: medium Keywords: xmltv
Cc: Ticket locked: no

Description

Today I noticed again that MythTV no longer lists a series for recording. I think this is related to <http://www.mythtv.org/wiki/Duplicate_matching>.

I'm using epgdata.com in Germany. The series in question is "Tatort", a German crime scene series produced by different broadcasting stations in German. Perhaps because of that it's listed as "movie" and not as series: 20140426_201404181655_de_qy.xml

<data>
    <d1>56902101</d1><!-- tvshow_id: unique for this episode -->
    <d10>100</d10><!-- category:movie -->
    <d19>Tatort</d19><!-- title: equal for all episodes -->
    <d20>Hochzeitsnacht</d20><!-- subtitle: different for all episodes -->
    <d26>843</d26><!-- sequence number -->

This is converted by tv_grab_eu_epgdata into

  <programme start="20140421023500 +0200" stop="20140421040500 +0200" channel="ard.de">
    <title>Tatort</title>
    <sub-title>Hochzeitsnacht</sub-title>
    <category>movie</category>
    <category>Krimi</category>
    <episode-num system="onscreen">843</episode-num>

When this is processed by mythfilldatabase/xmltvparser.cpp:

510     if (ProgramInfo::kCategoryMovie == pginfo->categoryType)
511         programid = "MV";
...
523         QString seriesid = QString::number(ELFHash(pginfo->title.toUtf8()));
524         pginfo->seriesId = seriesid;
525         programid.append(seriesid);
...
556             if (ProgramInfo::kCategoryMovie != pginfo->categoryType)
557                 programid.clear();

Here the code assumes that the title of a movie can be used as a unique identifier for detecting duplicates and does not clear the programid. As such it is always used, which prevent recording any subsequent episodes.

That code is there since 347ea031 Oscar Carlsson 2005-01-30 23:25:12.

I think the condition in line 556 should be removed: programid looks like an optimization too me to identify unique programs, It it isn't set, MythTV will fall back to what-ever the user has configured in the recording rule to use (title, title+subtitle, title+subtitle+description). But setting programid to a wrong (not-unique) value actually breaks things.

Sadly the XMLTV XML format has no way to pass the "tvshow_id" to MythTV as a programid.

Changing tv_grab_eu_epgdata to put all movies with a sequence_id>=1 into the "series" category instead of the "movie" category also doesn't work, as movies with sequels also use sequence_id>=1; e.g. "Terminator 2" has sequence_id=2.

Change History (3)

comment:1 Changed 5 years ago by Karl Egly

Milestone: unknown0.27.1
Owner: changed from stuartm to Karl Egly
Status: newaccepted

I think I fixed this in fixes/0.27 in early January, see [e2acf0d940009b2b240d52e9b53a123e1309a134]. Please update and retest.

comment:2 Changed 5 years ago by Karl Egly

Status: acceptedinfoneeded

comment:3 Changed 5 years ago by paulh

Resolution: Fixed
Status: infoneededclosed

No reply in 3 months. Likely fixed by [1023a65e883f]

Note: See TracTickets for help on using tickets.