Ticket #743: mpegstreamdata-cleanup-v2.diff
File mpegstreamdata-cleanup-v2.diff, 3.2 KB (added by , 18 years ago) |
---|
-
libs/libmythtv/mpeg/mpegstreamdata.cpp
old new 375 375 ProgramAssociationTable *pat = 376 376 new ProgramAssociationTable(psip); 377 377 CachePAT(pat); 378 emit UpdatePAT(pat); 379 if ((_desired_program >= 0) && CreatePATSingleProgram(*pat)) 380 emit UpdatePATSingleProgram(PATSingleProgram()); 378 ProcessPAT(pat); 381 379 } 382 380 else 383 381 { 384 382 ProgramAssociationTable pat(psip); 385 emit UpdatePAT(&pat); 386 if ((_desired_program >= 0) && CreatePATSingleProgram(pat)) 387 emit UpdatePATSingleProgram(PATSingleProgram()); 383 ProcessPAT(&pat); 388 384 } 389 385 return true; 390 386 } … … 395 391 { 396 392 ProgramMapTable *pmt = new ProgramMapTable(psip); 397 393 CachePMT(pmt->ProgramNumber(), pmt); 398 emit UpdatePMT(pmt->ProgramNumber(), pmt); 399 if (pid == _pid_pmt_single_program) 400 { 401 if (CreatePMTSingleProgram(*pmt)) 402 emit UpdatePMTSingleProgram(PMTSingleProgram()); 403 } 394 ProcessPMT(pid, pmt); 404 395 } 405 396 else 406 397 { 407 398 ProgramMapTable pmt(psip); 408 emit UpdatePMT(pmt.ProgramNumber(), &pmt); 409 if (pid == _pid_pmt_single_program) 410 { 411 if (CreatePMTSingleProgram(pmt)) 412 emit UpdatePMTSingleProgram(PMTSingleProgram()); 413 } 399 ProcessPMT(pid, &pmt); 414 400 } 415 401 return true; 416 402 } … … 418 404 return false; 419 405 } 420 406 407 void MPEGStreamData::ProcessPAT(const ProgramAssociationTable *pat) 408 { 409 emit UpdatePAT(pat); 410 if ((_desired_program >= 0) && CreatePATSingleProgram(*pat)) 411 emit UpdatePATSingleProgram(PATSingleProgram()); 412 } 413 414 void MPEGStreamData::ProcessPMT(const uint pid, const ProgramMapTable *pmt) 415 { 416 emit UpdatePMT(pmt->ProgramNumber(), pmt); 417 if (pid == _pid_pmt_single_program) 418 { 419 if (CreatePMTSingleProgram(*pmt)) 420 emit UpdatePMTSingleProgram(PMTSingleProgram()); 421 } 422 } 421 423 422 424 #define DONE_WITH_PES_PACKET() { if (psip) delete psip; \ 423 425 if (morePSIPPackets) goto HAS_ANOTHER_PES; else return; } -
libs/libmythtv/mpeg/mpegstreamdata.h
old new 136 136 void ClearPartialPES(uint pid) 137 137 { _partial_pes_packet_cache.remove(pid); } 138 138 void DeletePartialPES(uint pid); 139 void ProcessPAT(const ProgramAssociationTable *pat); 140 void ProcessPMT(const uint pid, const ProgramMapTable *pmt); 139 141 140 142 static int ResyncStream(unsigned char *buffer, int curr_pos, int len); 141 143