summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Hanisch <dvb@flensrocker.de>2010-08-19 18:48:51 +0200
committerLars Hanisch <dvb@flensrocker.de>2010-08-19 18:48:51 +0200
commit1a40d152e2f2e336e0636c40649f6f67f29a2153 (patch)
tree5094cd89c89cf16a0652b0ce7c5be617beb8d8b2
parentba88ccde1903099f9e13641294807320b8ccd85c (diff)
downloadvdr-plugin-pvrinput-1a40d152e2f2e336e0636c40649f6f67f29a2153.tar.gz
vdr-plugin-pvrinput-1a40d152e2f2e336e0636c40649f6f67f29a2153.tar.bz2
bugfix in teletext handling
- set vbi mode before encoder start - put teletext packets into ring buffer
-rwxr-xr-xdevice.c6
-rwxr-xr-xpvrinput.c2
-rwxr-xr-xreader.c2
3 files changed, 7 insertions, 3 deletions
diff --git a/device.c b/device.c
index 1554daa..f187a49 100755
--- a/device.c
+++ b/device.c
@@ -864,8 +864,8 @@ bool cPvrDevice::OpenDvr(void)
return false;
if (!SetVideoNorm(newNorm))
return false;
- if (!SetVBImode(newLinesPerFrame, PvrSetup.SliceVBI))
- return false;
+ //if (!SetVBImode(newLinesPerFrame, PvrSetup.SliceVBI))
+ // return false;
if (!Tune(newFrequency))
return false;
}
@@ -874,6 +874,8 @@ bool cPvrDevice::OpenDvr(void)
ChannelSettingsDone = true;
FirstChannelSwitch = false;
} //end: if ((!ChannelSettingsDone)
+ if (CurrentInputType == eTelevision)
+ SetVBImode(newLinesPerFrame, PvrSetup.SliceVBI);
SetEncoderState(eStart);
if (!readThreadRunning) {
log(pvrDEBUG2, "cPvrDevice::OpenDvr: create new readThread on /dev/video%d (%s)", number, CARDNAME[cardname]);
diff --git a/pvrinput.c b/pvrinput.c
index fe652d1..5466c1c 100755
--- a/pvrinput.c
+++ b/pvrinput.c
@@ -6,7 +6,7 @@
#endif
#endif
-static const char *VERSION = "2010-08-18-ttx";
+static const char *VERSION = "2010-08-19-ttx";
static const char *DESCRIPTION = tr("use Hauppauge PVR as input device");
static const char *MAINMENUENTRY = tr("PVR picture settings");
diff --git a/reader.c b/reader.c
index 6391f9d..3b6c118 100755
--- a/reader.c
+++ b/reader.c
@@ -433,6 +433,7 @@ void cPvrReadThread::PesToTs(uint8_t *Data, uint32_t Length)
if (vbi_line != 0) {
if (ts_line_nr == 0) { // send current packet and prepare next one
+ PutData(ts_buffer, TS_SIZE);
first = false;
packet_counter--;
text_counter = (text_counter + 1) & 15;
@@ -460,6 +461,7 @@ void cPvrReadThread::PesToTs(uint8_t *Data, uint32_t Length)
ts_buffer[4 + ts_line_nr * 46 + 1] = 0x2C;
ts_line_nr++;
}
+ PutData(ts_buffer, TS_SIZE);
break; // end: case 0xBD:
}
} // end: switch (stream_id)