diff -Nru burn-0.2.0/scanner.c burn-0.2.0-subtitle/scanner.c --- burn-0.2.0/scanner.c 2011-09-07 19:37:44.000000000 +0000 +++ burn-0.2.0-subtitle/scanner.c 2012-04-07 17:47:50.000000000 +0000 @@ -474,6 +474,17 @@ track.used = UseSubtitleTracks; track.subtitle.type = track_info::subtitletype_teletext; track.subtitle.teletextpage = 100*ttxtSubtitlePage[i].ttxtMagazine + 10*(ttxtSubtitlePage[i].ttxtPage >> 4) + (ttxtSubtitlePage[i].ttxtPage & 0x0F); + if ( track.subtitle.teletextpage < 100 ) + track.subtitle.teletextpage += 800; + + // Some French channels still send wrong subtitle page number! + // This is a hard fix to change the page numbers 85x to 88x + // According to ETSI tables pages 850-859 are not used for + // teletext subtitles in any country, so we assume, that these can + // safely be mapped to 880-889 + if ( track.subtitle.teletextpage >= 850 && track.subtitle.teletextpage <= 859 ) + track.subtitle.teletextpage += 30; + logger::debug(format( "Tpid 0x{0} adding page {1}") % format::base( PatPmtParser.Tpid(), 16 ) % track.subtitle.teletextpage); m_tracks.push_back( track ); streams++;