public void StartPage(TeletextPageHeader header, UInt64 presentTime) { this.presentTime = presentTime; int mag = header.Magazine(); if (mag != magID) { Log.Debug("Magazine magid mag: {0}, {1}", magID, mag); } assert(mag == magID, "Inconsistent magazine id"); assert(pageNumInProgress == -1 || (pageNumInProgress >= 100 && pageNumInProgress <= 966), "PageNumInProgress out of range"); if (header.isTimeFiller() || !header.isSubtitle()) { // time filling header to indicate end of page if (pageNumInProgress != -1) { // if we were working on a previous page its finished now EndPage(); } //LogDebug("Mag %i FILLER ends page %i", magID, pageNumInProgress); Clear(); pageNumInProgress = -1; return; } if (header.isSerial() && !this.isSerial) { Log.Debug("MagID {0} is in serial mode", magID); this.isSerial = true; } int new_page_num = header.PageNumber(); if (pageNumInProgress != new_page_num) { //LogDebug("Mag %i, Page %i finished by new page %i", magID, pageNumInProgress, new_page_num); if (pageNumInProgress != -1) { // if we were working on a previous page its finished now EndPage(); } language = header.Language(); Clear(); pageNumInProgress = new_page_num; } if (header.eraseBit()) { Clear(); } assert(pageNumInProgress >= 100 && pageNumInProgress <= 966, "StartPage: pageNumInProgress out of range"); }