[Deinterlace-checkins] CVS: DScaler/DScaler BT848Source.cpp,1.116,1.117 CX2388xSource.cpp,1.45,1.46
Brought to you by:
adcockj,
dschmelzer
From: Laurent G. <lau...@us...> - 2003-02-26 20:53:39
|
Update of /cvsroot/deinterlace/DScaler/DScaler In directory sc8-pr-cvs1:/tmp/cvs-serv17567 Modified Files: BT848Source.cpp CX2388xSource.cpp FieldTiming.cpp FieldTiming.h SAA7134Source.cpp Log Message: New timing setting MaxFieldShift Index: BT848Source.cpp =================================================================== RCS file: /cvsroot/deinterlace/DScaler/DScaler/BT848Source.cpp,v retrieving revision 1.116 retrieving revision 1.117 diff -C2 -r1.116 -r1.117 *** BT848Source.cpp 22 Feb 2003 13:42:42 -0000 1.116 --- BT848Source.cpp 26 Feb 2003 20:53:25 -0000 1.117 *************** *** 19,22 **** --- 19,25 ---- // // $Log$ + // Revision 1.117 2003/02/26 20:53:25 laurentg + // New timing setting MaxFieldShift + // // Revision 1.116 2003/02/22 13:42:42 laurentg // New counter to count fields runnign late *************** *** 1301,1313 **** FieldDistance = (10 + NewPos - OldPos) % 10; ! if(FieldDistance > 1) ! { ! // delete all history ! ClearPictureHistory(pInfo); ! pInfo->bMissedFrame = TRUE; ! Timing_AddDroppedFields(FieldDistance - 1); ! LOG(2, " Dropped %d Field(s)", FieldDistance - 1); ! } ! else { pInfo->bMissedFrame = FALSE; --- 1304,1308 ---- FieldDistance = (10 + NewPos - OldPos) % 10; ! if(FieldDistance == 1) { pInfo->bMissedFrame = FALSE; *************** *** 1325,1328 **** --- 1320,1338 ---- } } + else if (FieldDistance <= (MaxFieldShift+1)) + { + NewPos = (OldPos + 1) % 10; + pInfo->bMissedFrame = FALSE; + Timing_AddLateFields(FieldDistance); + LOG(2, " Running late by %d fields", FieldDistance - 1); + } + else + { + // delete all history + ClearPictureHistory(pInfo); + pInfo->bMissedFrame = TRUE; + Timing_AddDroppedFields(FieldDistance - 1); + LOG(2, " Dropped %d Field(s)", FieldDistance - 1); + } switch(NewPos) *************** *** 1366,1375 **** } } ! else if((FieldDistance == 2) || (FieldDistance == 3)) { NewPos = (OldPos + 1) % 10; Timing_SetFlipAdjustFlag(TRUE); - LOG(2, " Running late by %d fields", FieldDistance - 1); Timing_AddLateFields(FieldDistance); } else --- 1376,1385 ---- } } ! else if (FieldDistance <= (MaxFieldShift+1)) { NewPos = (OldPos + 1) % 10; Timing_SetFlipAdjustFlag(TRUE); Timing_AddLateFields(FieldDistance); + LOG(2, " Running late by %d fields", FieldDistance - 1); } else Index: CX2388xSource.cpp =================================================================== RCS file: /cvsroot/deinterlace/DScaler/DScaler/CX2388xSource.cpp,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -r1.45 -r1.46 *** CX2388xSource.cpp 22 Feb 2003 13:42:42 -0000 1.45 --- CX2388xSource.cpp 26 Feb 2003 20:53:30 -0000 1.46 *************** *** 24,27 **** --- 24,30 ---- // // $Log$ + // Revision 1.46 2003/02/26 20:53:30 laurentg + // New timing setting MaxFieldShift + // // Revision 1.45 2003/02/22 13:42:42 laurentg // New counter to count fields runnign late *************** *** 1118,1135 **** FieldDistance = (10 + NewPos - OldPos) % 10; ! if(FieldDistance > 1) ! { ! // delete all history ! ClearPictureHistory(pInfo); ! pInfo->bMissedFrame = TRUE; ! Timing_AddDroppedFields(FieldDistance - 1); ! LOG(2, " Dropped %d Field(s)", FieldDistance - 1); ! } ! else { pInfo->bMissedFrame = FALSE; if (bLate) { - LOG(2, " Running late but right field"); if (pInfo->bRunningLate) { --- 1121,1129 ---- FieldDistance = (10 + NewPos - OldPos) % 10; ! if(FieldDistance == 1) { pInfo->bMissedFrame = FALSE; if (bLate) { if (pInfo->bRunningLate) { *************** *** 1140,1145 **** --- 1134,1155 ---- Timing_AddLateFields(1); } + LOG(2, " Running late but right field"); } } + else if (FieldDistance <= (MaxFieldShift+1)) + { + NewPos = (OldPos + 1) % 10; + pInfo->bMissedFrame = FALSE; + Timing_AddLateFields(FieldDistance); + LOG(2, " Running late by %d fields", FieldDistance - 1); + } + else + { + // delete all history + ClearPictureHistory(pInfo); + pInfo->bMissedFrame = TRUE; + Timing_AddDroppedFields(FieldDistance - 1); + LOG(2, " Dropped %d Field(s)", FieldDistance - 1); + } switch(NewPos) *************** *** 1200,1217 **** FieldDistance = (m_NumFields + NewPos - OldPos) % m_NumFields; ! if(FieldDistance > 1) ! { ! // delete all history ! ClearPictureHistory(pInfo); ! pInfo->bMissedFrame = TRUE; ! Timing_AddDroppedFields(FieldDistance - 1); ! LOG(2, " Dropped %d Field(s)", FieldDistance - 1); ! } ! else { pInfo->bMissedFrame = FALSE; if (bLate) { - LOG(2, " Running late but right field"); if (pInfo->bRunningLate) { --- 1210,1218 ---- FieldDistance = (m_NumFields + NewPos - OldPos) % m_NumFields; ! if(FieldDistance == 1) { pInfo->bMissedFrame = FALSE; if (bLate) { if (pInfo->bRunningLate) { *************** *** 1222,1227 **** --- 1223,1244 ---- Timing_AddLateFields(1); } + LOG(2, " Running late but right field"); } } + else if (FieldDistance <= (MaxFieldShift+1)) + { + NewPos = (OldPos + 1) % 10; + pInfo->bMissedFrame = FALSE; + Timing_AddLateFields(FieldDistance); + LOG(2, " Running late by %d fields", FieldDistance - 1); + } + else + { + // delete all history + ClearPictureHistory(pInfo); + pInfo->bMissedFrame = TRUE; + Timing_AddDroppedFields(FieldDistance - 1); + LOG(2, " Dropped %d Field(s)", FieldDistance - 1); + } pInfo->CurrentFrame = (NewPos + m_NumFields - 1) % m_NumFields; *************** *** 1253,1262 **** } } ! else if((FieldDistance == 2) || (FieldDistance == 3)) { NewPos = (OldPos + 1) % 10; Timing_SetFlipAdjustFlag(TRUE); - LOG(2, " Running late by %d fields", FieldDistance - 1); Timing_AddLateFields(FieldDistance); } else --- 1270,1279 ---- } } ! else if (FieldDistance <= (MaxFieldShift+1)) { NewPos = (OldPos + 1) % 10; Timing_SetFlipAdjustFlag(TRUE); Timing_AddLateFields(FieldDistance); + LOG(2, " Running late by %d fields", FieldDistance - 1); } else *************** *** 1322,1331 **** } } ! else if((FieldDistance == 2) || (FieldDistance == 3)) { NewPos = (OldPos + 1) % m_NumFields; Timing_SetFlipAdjustFlag(TRUE); - LOG(2, " Running late by %d fields", FieldDistance - 1); Timing_AddLateFields(FieldDistance); } else --- 1339,1348 ---- } } ! else if (FieldDistance <= (MaxFieldShift+1)) { NewPos = (OldPos + 1) % m_NumFields; Timing_SetFlipAdjustFlag(TRUE); Timing_AddLateFields(FieldDistance); + LOG(2, " Running late by %d fields", FieldDistance - 1); } else Index: FieldTiming.cpp =================================================================== RCS file: /cvsroot/deinterlace/DScaler/DScaler/FieldTiming.cpp,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -r1.32 -r1.33 *** FieldTiming.cpp 22 Feb 2003 13:36:36 -0000 1.32 --- FieldTiming.cpp 26 Feb 2003 20:53:31 -0000 1.33 *************** *** 30,33 **** --- 30,36 ---- // // $Log$ + // Revision 1.33 2003/02/26 20:53:31 laurentg + // New timing setting MaxFieldShift + // // Revision 1.32 2003/02/22 13:36:36 laurentg // New statistics to check fields runnign late and no flip at time *************** *** 127,130 **** --- 130,134 ---- long SleepSkipFields = 0; // Number of fields to skip before doing sleep interval long SleepSkipFieldsLate = 0; // Number of fields to skip before doing sleep interval, when we're running late + long MaxFieldShift = 1; // Maximum shift beween the last received field and the field to process void Timing_Setup() *************** *** 451,454 **** --- 455,464 ---- NULL, "Threads", "SleepSkipFieldsLate", NULL, + }, + { + "Maximum shift between received and processed fields", SLIDER, 0, (long*)&MaxFieldShift, + 1, 0, 2, 1, 1, + NULL, + "Threads", "MaxFieldShift", NULL, }, }; Index: FieldTiming.h =================================================================== RCS file: /cvsroot/deinterlace/DScaler/DScaler/FieldTiming.h,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -r1.13 -r1.14 *** FieldTiming.h 22 Feb 2003 13:36:37 -0000 1.13 --- FieldTiming.h 26 Feb 2003 20:53:32 -0000 1.14 *************** *** 35,38 **** --- 35,40 ---- #include "DS_Deinterlace.h" + extern long MaxFieldShift; + // Get Hold of the FieldTiming.c file settings SETTING* Timing_GetSetting(TIMING_SETTING Setting); Index: SAA7134Source.cpp =================================================================== RCS file: /cvsroot/deinterlace/DScaler/DScaler/SAA7134Source.cpp,v retrieving revision 1.72 retrieving revision 1.73 diff -C2 -r1.72 -r1.73 *** SAA7134Source.cpp 25 Feb 2003 21:47:05 -0000 1.72 --- SAA7134Source.cpp 26 Feb 2003 20:53:33 -0000 1.73 *************** *** 31,34 **** --- 31,37 ---- // // $Log$ + // Revision 1.73 2003/02/26 20:53:33 laurentg + // New timing setting MaxFieldShift + // // Revision 1.72 2003/02/25 21:47:05 laurentg // Slightly update relative to preceeding updates *************** *** 908,917 **** } } ! else if (bTryToCatchUp && FieldDistance <= 2) { // Try to catch up ! // pInfo->bRunningLate = TRUE; ! // Not sure why we need to do this ! // Timing_AddDroppedFields(1); LOG(2, " Running late by %d fields", FieldDistance - 1); Timing_AddLateFields(FieldDistance); --- 911,918 ---- } } ! else if (bTryToCatchUp && FieldDistance <= (MaxFieldShift+1)) { // Try to catch up ! pInfo->bMissedFrame = FALSE; LOG(2, " Running late by %d fields", FieldDistance - 1); Timing_AddLateFields(FieldDistance); *************** *** 960,964 **** } } ! else if (FieldDistance == 2) { // Slightly late but try to recover --- 961,965 ---- } } ! else if (FieldDistance <= (MaxFieldShift+1)) { // Slightly late but try to recover |