Ticket #8216: eitfixup-movies-that-are-not.diff

File eitfixup-movies-that-are-not.diff, 2.2 KB (added by dekarl@…, 8 years ago)
  • eitfixup.cpp

     
    155155    if (kFixNL & event.fixup)
    156156        FixNL(event);
    157157
     158    if (kFixShortMovie & event.fixup)
     159        FixShortMovie(event);
     160
    158161    if (event.fixup)
    159162    {
    160163        if (!event.title.isEmpty())
     
    14831486    event.subtitle    = event.subtitle.trimmed();
    14841487
    14851488}
     1489
     1490/** \fn EITFixUp::FixShortMovie(DBEventEIT&) const
     1491 *  \brief Use this to drop category movie from short event.
     1492 */
     1493void EITFixUp::FixShortMovie(DBEventEIT &event) const
     1494    /* not a movie if the duration of the whole event,
     1495     * including ads etc, is less then 90 minutes
     1496     */
     1497    const int minimumMovieDuration = 90*60;
     1498    if (event.categoryType == kCategoryMovie) {
     1499                if (event.starttime.secsTo(event.endtime) < minimumMovieDuration) {
     1500                        /* default taken from ContentDescriptor::GetMythCategory */
     1501                        event.categoryType = kCategoryTVShow;
     1502                }
     1503        }
     1504}
  • eitfixup.h

     
    4545        kFixPremiere   = 0x0400,
    4646        kFixHDTV       = 0x0800,
    4747        kFixNL         = 0x1000,
     48        kFixShortMovie = 0x8000,
    4849
    4950        // Early fixups
    5051        kEFixForceISO8859_1  = 0x2000,
  • eithelper.cpp

     
    744744    // MultiChoice Africa
    745745    fix[ 6144U << 16] = EITFixUp::kFixMCA;
    746746
    747     // RTL Subtitle parsing
     747    // RTL Subtitle parsing and removing category movie from short events
    748748    fix[      1089LL << 32 |     1  << 16] = // DVB-S
    749749        fix[   773LL << 32 |  8468U << 16] = // DVB-T Berlin/Brandenburg
    750750        fix[  2819LL << 32 |  8468U << 16] = // DVB-T Niedersachsen + Bremen
    751751        fix[  8706LL << 32 |  8468U << 16] = // DVB-T NRW
    752752        fix[ 12801LL << 32 |  8468U << 16] = // DVB-T Bayern
    753         EITFixUp::kFixRTL;
     753        EITFixUp::kFixRTL | EITFixUp::kFixShortMovie;
    754754
    755755    // Premiere EIT processing
    756756    fix[   1LL << 32 |  133 << 16] = EITFixUp::kFixPremiere;