+ {
+ if ( !program.audioStreams.empty() &&
+ ( audio.pid == cached_apid_ac3 || audio.pid == cached_apid_mpeg) )
+ {
+ program.audioStreams.push_back(program.audioStreams[0]);
+ program.audioStreams[0] = audio;
+ }
+ else
+ program.audioStreams.push_back(audio);
+ }
+ else if (isvideo)
+ {
+ if ( !program.videoStreams.empty() && video.pid == cached_vpid )
+ {
+ program.videoStreams.push_back(program.videoStreams[0]);
+ program.videoStreams[0] = video;
+ }
+ else
+ program.videoStreams.push_back(video);
+ }
+ else
+ continue;
+ if ( cadescriptors > 0 )
+ program.isCrypted=true;
+ }
+ if ( !program.isCrypted )
+ {
+ for (DescriptorConstIterator desc = pmt.getDescriptors()->begin();
+ desc != pmt.getDescriptors()->end(); ++desc)
+ {
+ switch ((*desc)->getTag())
+ {
+ case CA_DESCRIPTOR:
+ program.isCrypted=true;
+ break;
+ }
+ }
+ break;