Ticket #2006: 2006-dbg-v2.patch
File 2006-dbg-v2.patch, 3.0 KB (added by , 18 years ago) |
---|
-
libs/libmythtv/dvbrecorder.cpp
427 427 QMutexLocker change_lock(&_pid_lock); 428 428 429 429 if (!_input_pat || !_input_pmt) 430 { 431 VERBOSE(VB_RECORD, LOC + "AdjustFilters() " + 432 QString("pat(%1) pmt(%2)") 433 .arg((bool)_input_pat).arg((bool)_input_pmt)); 434 430 435 return false; 436 } 431 437 438 VERBOSE(VB_RECORD, LOC + "AdjustFilters() 1"); 439 432 440 uint_vec_t add_pid, add_stream_type; 433 441 434 442 add_pid.push_back(MPEG_PAT_PID); 435 443 add_stream_type.push_back(StreamID::PrivSec); 436 444 _stream_data->AddListeningPID(MPEG_PAT_PID); 437 445 446 VERBOSE(VB_RECORD, LOC + "AdjustFilters() 2"); 447 438 448 for (uint i = 0; i < _input_pat->ProgramCount(); i++) 439 449 { 440 450 add_pid.push_back(_input_pat->ProgramPID(i)); … … 442 452 _stream_data->AddListeningPID(_input_pat->ProgramPID(i)); 443 453 } 444 454 455 VERBOSE(VB_RECORD, LOC + "AdjustFilters() 3"); 456 445 457 // Record the streams in the PMT... 446 458 bool need_pcr_pid = true; 447 459 for (uint i = 0; i < _input_pmt->StreamCount(); i++) … … 452 464 _stream_data->AddWritingPID(_input_pmt->StreamPID(i)); 453 465 } 454 466 467 VERBOSE(VB_RECORD, LOC + "AdjustFilters() 4"); 468 455 469 if (need_pcr_pid && (_input_pmt->PCRPID())) 456 470 { 457 471 add_pid.push_back(_input_pmt->PCRPID()); … … 459 473 _stream_data->AddWritingPID(_input_pmt->PCRPID()); 460 474 } 461 475 476 VERBOSE(VB_RECORD, LOC + "AdjustFilters() 5"); 477 462 478 // Adjust for EIT 463 479 AdjustEITPIDs(); 464 480 for (uint i = 0; i < _eit_pids.size(); i++) … … 468 484 _stream_data->AddListeningPID(_eit_pids[i]); 469 485 } 470 486 487 VERBOSE(VB_RECORD, LOC + "AdjustFilters() 6"); 488 471 489 // Delete filters for pids we no longer wish to monitor 472 490 PIDInfoMap::iterator it = _pid_infos.begin(); 473 491 PIDInfoMap::iterator next = it; … … 477 495 478 496 if (find(add_pid.begin(), add_pid.end(), it.key()) == add_pid.end()) 479 497 { 498 VERBOSE(VB_RECORD, LOC + "Removing pid " + 499 QString("0x%1").arg(it.key(),0,16)); 500 480 501 _stream_data->RemoveListeningPID(it.key()); 481 502 _stream_data->RemoveWritingPID(it.key()); 482 503 (*it)->Close(); … … 485 506 } 486 507 } 487 508 509 VERBOSE(VB_RECORD, LOC + "AdjustFilters() 7"); 510 488 511 // Add or adjust filters for pids we wish to monitor 489 512 for (uint i = 0; i < add_pid.size(); i++) 490 513 OpenFilter(add_pid[i], DMX_PES_OTHER, add_stream_type[i]); 491 514 492 515 516 VERBOSE(VB_RECORD, LOC + "AdjustFilters() 8"); 517 493 518 // [Re]start dummy video 494 519 StopDummyVideo(); 520 521 VERBOSE(VB_RECORD, LOC + "AdjustFilters() 9"); 522 495 523 StartDummyVideo(); 496 524 525 VERBOSE(VB_RECORD, LOC + "AdjustFilters() A"); 526 497 527 // Report if there are no PIDs.. 498 528 if (_pid_infos.empty()) 499 529 { … … 502 532 return false; 503 533 } 504 534 535 VERBOSE(VB_RECORD, LOC + "AdjustFilters() B"); 536 505 537 return true; 506 538 } 507 539