Diff for /margi2/decoder.c between versions 1.10 and 1.11

version 1.10, 2001/03/29 23:12:01 version 1.11, 2001/04/06 09:03:54
Line 955  void L64021Intr(struct cvdv_cards *card) Line 955  void L64021Intr(struct cvdv_cards *card)
         int i, a, v, as, vs, ap, vp;          int i, a, v, as, vs, ap, vp;
         u8 intr[5];          u8 intr[5];
         u8 layer;          u8 layer;
         u8 reg;  
         long ISRTime, DeltaSyncTime, Offset;          long ISRTime, DeltaSyncTime, Offset;
                   
         int used = 0;          int used = 0;
Line 975  void L64021Intr(struct cvdv_cards *card) Line 974  void L64021Intr(struct cvdv_cards *card)
                         card->fields++;                          card->fields++;
                                                   
                         if (card->videoffwd){                          if (card->videoffwd){
                                 AudioStopDecode(card);                                  if (!card->videoffwd_last){
                                 card->videosync = 0;                                          AudioStopDecode(card);
                                 card->videodelay = 0;                                          card->videosync = 0;
                                 card->videoskip = 0;                                          card->videoskip = card->videoffwd;
                                 reg = DecoderReadByte(card, 0x0EC);                                          card->videoskip = 0;
                                 if ((reg & 0x07) == 0x00) {                                          card->videoffwd_last = 1;
                                         DecoderWriteByte(card, 0x0EC,                                           card->videoskip_last = 0;
                                                          (card->videoffwd&                                  } else {
                                                           0x03) |0x04);                                          if (card->videoskip_last == -1){
                                 }                                                  card->videoskip = 
                         } else if ((DecoderReadByte(card, 0x0EC) & 0x07)                                                          card->videoffwd;
                                    && !card->videoskip){                                          }
                                           
                                           if (!card->videoskip)
                                                   card->videoskip_last = -1;
                                           else
                                                   card->videoffwd_last =
                                                           card->videoffwd;
                                   } 
                           } else if( card->videoffwd_last ){
                                   card->videoffwd_last = 0;
 #ifdef DVB  #ifdef DVB
                                 if (card->audiostate.AVSyncState)                                  if (card->audiostate.AVSyncState)
 #endif  #endif
                                         card->videosync = 1;                                          card->videosync = 1;
                                 DecoderWriteByte(card, 0x0EC, 0x00);  
                                 AudioStartDecode(card);                                  AudioStartDecode(card);
                         }                          }                               
                           
           
                         if (card->videoslow){                          if (card->videoslow){
                                 if (!card->videoslow_last){                                  if (!card->videoslow_last){
                                         AudioStopDecode(card);                                          AudioStopDecode(card);
Line 1046  void L64021Intr(struct cvdv_cards *card) Line 1054  void L64021Intr(struct cvdv_cards *card)
                         } else if (card->videoskip > 0) {                          } else if (card->videoskip > 0) {
                                 if ((DecoderReadByte(card, 0x0EC) & 0x03)                                   if ((DecoderReadByte(card, 0x0EC) & 0x03) 
                                     == 0x00) {                                      == 0x00) {
                                         if (DecoderReadWord(card, 0x096) > 5) {                                          if (DecoderReadWord(card, 0x096) > 5){
   // pictures in video ES channel    // pictures in video ES channel
                                                 card->videoskip--;                                                  card->videoskip--;
                                                 if(card->videoskip) {                                                  if(card->videoskip) {
Line 1074  void L64021Intr(struct cvdv_cards *card) Line 1082  void L64021Intr(struct cvdv_cards *card)
                                 vs = card->VideoESSize;                                  vs = card->VideoESSize;
                                 if (vs > 0) vp = (100 * v) / vs;                                  if (vs > 0) vp = (100 * v) / vs;
                                 else vp = 0;                                  else vp = 0;
                                 if (vp > 80) {                                  if (vp > 40) {
                                         printk(KERN_ERR LOGNAME                                           printk(KERN_ERR LOGNAME 
                                                ": Delayed Video Decoder start\n");                                                 ": Delayed Video Decoder start\n");
                                         card->startingV = 0;                                          card->startingV = 0;
Line 1089  void L64021Intr(struct cvdv_cards *card) Line 1097  void L64021Intr(struct cvdv_cards *card)
                                 as = card->AudioESSize;                                  as = card->AudioESSize;
                                 if (as > 0) ap = (100 * a) / as;                                  if (as > 0) ap = (100 * a) / as;
                                 else ap = 0;                                  else ap = 0;
                                 if (ap > 80) {                                  if (ap > 40) {
                                         printk(KERN_ERR LOGNAME                                           printk(KERN_ERR LOGNAME 
                                                ": Delayed Audio Decoder start\n");                                                 ": Delayed Audio Decoder start\n");
                                         AudioSetPlayMode(card, MAUDIO_PLAY);                                          AudioSetPlayMode(card, MAUDIO_PLAY);
Line 1212  void L64021Intr(struct cvdv_cards *card) Line 1220  void L64021Intr(struct cvdv_cards *card)
   
                 if (intr[3] & 0x30) {                   if (intr[3] & 0x30) { 
                         // Audio/Video ES channel buffer underflow                          // Audio/Video ES channel buffer underflow
                         printk(KERN_ERR LOGNAME                           //printk(KERN_ERR LOGNAME 
                                ": Int - ES channel buffer underflow\n");                          //       ": Int - ES channel buffer underflow\n");
                         if (card->closing) {                          if (card->closing) {
                                 card->closing = 0;                                  card->closing = 0;
                                 CloseCard(card);                                  CloseCard(card);

Removed from v.1.10  
changed lines
  Added in v.1.11


LinuxTV legacy CVS <linuxtv.org/cvs>