=================================================================== --- src/input/dvb/scandialog.cpp (revision 665095) +++ src/input/dvb/scandialog.cpp (working copy) @@ -652,15 +652,28 @@ bool ScanDialog::checkChannUpdate( ChannelDesc *chan ) { - int i; + int i,j; + AudioPid a; + for ( i=0; i<(int)chandesc->count(); i++ ) { if ( chan->tp.source == chandesc->at(i)->tp.source && chan->tp.tsid == chandesc->at(i)->tp.tsid && chan->sid == chandesc->at(i)->sid ) { - chan->category=chandesc->at(i)->category; - chan->num=chandesc->at(i)->num; - chan->name=chandesc->at(i)->name; - chan->fta=chandesc->at(i)->fta; - chandesc->replace(i,new ChannelDesc(*chan)); - return false; + chan->category=chandesc->at(i)->category; + chan->num=chandesc->at(i)->num; + chan->name=chandesc->at(i)->name; + chan->fta=chandesc->at(i)->fta; + + for(j=0;j< chan->napid;j++) { + if(chandesc->at(i)->apid[0].pid==chan->apid[j].pid) { + if(j>0) { + a = chan->apid[0]; + chan->apid[0]=chan->apid[j]; + chan->apid[j]=a; + } + break; + } + } + chandesc->replace(i,new ChannelDesc(*chan)); + return false; } } return true;