diff mbox

[RFC,2/2] app: kaffeine: Fix missing PCR on stream recordings.

Message ID 20170709094351.14642-2-tvboxspy@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Malcolm Priestley July 9, 2017, 9:43 a.m. UTC
The ISO/IEC standard 13818-1 or ITU-T Rec. H.222.0 standard allow transport
vendors to place PCR (Program Clock Reference) on a different PID.

This patch adds it recording to file.

Signed-off-by: Malcolm Priestley <tvboxspy@gmail.com>
---
 src/dvb/dvbrecording.cpp | 8 ++++++++
 1 file changed, 8 insertions(+)
diff mbox

Patch

diff --git a/src/dvb/dvbrecording.cpp b/src/dvb/dvbrecording.cpp
index ecb4777..12a57dc 100644
--- a/src/dvb/dvbrecording.cpp
+++ b/src/dvb/dvbrecording.cpp
@@ -961,6 +961,7 @@  void DvbRecordingFile::pmtSectionChanged(const QByteArray &pmtSectionData_)
 	pmtSectionData = pmtSectionData_;
 	DvbPmtSection pmtSection(pmtSectionData);
 	DvbPmtParser pmtParser(pmtSection);
+	int pcr_pid = pmtSection.pcr_pid();
 	QSet<int> newPids;
 
 	if (pmtParser.videoPid != -1) {
@@ -979,6 +980,13 @@  void DvbRecordingFile::pmtSectionChanged(const QByteArray &pmtSectionData_)
 		newPids.insert(pmtParser.teletextPid);
 	}
 
+	/* check PCR PID is set */
+	if (pcr_pid != 0x1fff) {
+		/* Check not already in list */
+		if (!newPids.contains(pcr_pid))
+			newPids.insert(pcr_pid);
+	}
+
 	for (int i = 0; i < pids.size(); ++i) {
 		int pid = pids.at(i);