|
@@ -293,31 +293,5 @@ int parse_pmt(uint8_t *ts_packet, uint16_t pmt_pid, uint16_t *pcr_pid, uint16_t
|
293
|
293
|
*/
|
294
|
294
|
|
295
|
295
|
int ts_pmt_is_same(struct ts_pmt *pmt1, struct ts_pmt *pmt2) {
|
296
|
|
- int i;
|
297
|
|
-
|
298
|
|
- if (pmt1->section_header->CRC == pmt2->section_header->CRC) // Same
|
299
|
|
- return 1;
|
300
|
|
-
|
301
|
|
- // If some version is not current, just claim the structures are the same
|
302
|
|
- if (!pmt1->section_header->current_next_indicator || pmt2->section_header->version_number)
|
303
|
|
- return 1;
|
304
|
|
-
|
305
|
|
- if (pmt1->section_header->version_number != pmt2->section_header->version_number) // Different
|
306
|
|
- return 0;
|
307
|
|
-
|
308
|
|
- if (pmt1->PCR_pid != pmt2->PCR_pid) // Different
|
309
|
|
- return 0;
|
310
|
|
-
|
311
|
|
- if (pmt1->streams_num != pmt2->streams_num) // Different
|
312
|
|
- return 0;
|
313
|
|
-
|
314
|
|
- // Check each program and PIDs
|
315
|
|
- for (i=0;i<pmt1->streams_num;i++) {
|
316
|
|
- struct ts_pmt_stream *stream1 = pmt1->streams[i];
|
317
|
|
- struct ts_pmt_stream *stream2 = pmt2->streams[i];
|
318
|
|
- if (stream1->pid != stream2->pid) // Different
|
319
|
|
- return 0;
|
320
|
|
- }
|
321
|
|
-
|
322
|
|
- return 1; // Same
|
|
296
|
+ return ts_section_is_same(pmt1->section_header, pmt2->section_header);
|
323
|
297
|
}
|