gstreamer: reset pids at start

This commit is contained in:
TangoCash
2017-11-01 10:02:38 +01:00
parent ca49904d31
commit 88ce7b707d

View File

@@ -87,11 +87,16 @@ gint match_sinktype(const GValue *velement, const gchar *type)
return strcmp(g_type_name(G_OBJECT_TYPE(element)), type); return strcmp(g_type_name(G_OBJECT_TYPE(element)), type);
} }
void processMpegTsSection(GstMpegtsSection* section) void resetPids()
{ {
for (unsigned int i = 0; i < REC_MAX_APIDS; i++) { for (unsigned int i = 0; i < REC_MAX_APIDS; i++) {
real_apids[i] = 0; real_apids[i] = 0;
} }
}
void processMpegTsSection(GstMpegtsSection* section)
{
resetPids();
int cnt = 0; int cnt = 0;
if (section->section_type == GST_MPEGTS_SECTION_PMT) { if (section->section_type == GST_MPEGTS_SECTION_PMT) {
const GstMpegtsPMT* pmt = gst_mpegts_section_get_pmt(section); const GstMpegtsPMT* pmt = gst_mpegts_section_get_pmt(section);
@@ -513,6 +518,8 @@ bool cPlayback::Start(char *filename, int /*vpid*/, int /*vtype*/, int /*apid*/,
else else
extra_headers.clear(); extra_headers.clear();
resetPids();
mAudioStream = 0; mAudioStream = 0;
init_jump = -1; init_jump = -1;