2011-01-25, 05:12
I have a few patches I need to do for VDR-VNSI to work with a Hauppauge HDPVR and pvrinput. Also ATSC/QAM256 needs a little tweaking as Comcast (the largest cable company in the US) uses some interesting (read non standard) settings.
The problem with the HDPVR is that the audio is passed through from the cable box, therefore is signaled as AC-3 from ATSC, (ie, type 0x80), but this is excluded by the plugin.
I also needed to increase the timeout from 2s to 10seconds in PVRChannel.cpp as the HDPVR takes too long to start displaying a picture.
The problem with the HDPVR is that the audio is passed through from the cable box, therefore is signaled as AC-3 from ATSC, (ie, type 0x80), but this is excluded by the plugin.
Code:
diff -ur vdr-plugin-vnsiserver.patched-newgit/demuxer.h vdr-plugin-vnsiserver/demuxer.h
--- vdr-plugin-vnsiserver.patched-newgit/demuxer.h 2011-01-24 19:49:31.000000000 -0600
+++ vdr-plugin-vnsiserver/demuxer.h 2011-01-24 18:28:30.000000000 -0600
@@ -31,7 +31,6 @@
#define PRIVATE_STREAM1 0xBD
#define PADDING_STREAM 0xBE
#define PRIVATE_STREAM2 0xBF
-#define PRIVATE_STREAM3 0xFD
#define AUDIO_STREAM_S 0xC0 /* 1100 0000 */
#define AUDIO_STREAM_E 0xDF /* 1101 1111 */
#define VIDEO_STREAM_S 0xE0 /* 1110 0000 */
@@ -70,7 +69,7 @@
inline bool PesIsPS1Packet(const uchar *p)
{
- return ((p)[3] == PRIVATE_STREAM1 || (p)[3] == PRIVATE_STREAM3 );
+ return ((p)[3] == PRIVATE_STREAM1);
}
inline bool PesIsPaddingPacket(const uchar *p)
diff -ur vdr-plugin-vnsiserver.patched-newgit/receiver.c vdr-plugin-vnsiserver/receiver.c
--- vdr-plugin-vnsiserver.patched-newgit/receiver.c 2011-01-24 20:15:24.000000000 -0600
+++ vdr-plugin-vnsiserver/receiver.c 2011-01-24 18:28:30.000000000 -0600
@@ -171,7 +171,6 @@
{
case 0x01: // ISO/IEC 11172 Video
case 0x02: // ISO/IEC 13818-2 Video
- case 0x80: // ATSC Video MPEG2 (DigiCypher?)
LOGCONSOLE("cStreamdevPatFilter PMT scanner adding PID %d (%s)\n", stream.getPid(), psStreamTypes[stream.getStreamType()]);
*type = stMPEG2VIDEO;
return stream.getPid();
@@ -277,7 +276,7 @@
* we check the registration format identifier to see if it
* holds "AC-3"
*/
- if (stream.getStreamType() >= 0x81)
+ if (stream.getStreamType() >= 0x80)
{
bool found = false;
for (SI::Loop::Iterator it; (d = stream.streamDescriptors.getNext(it)); )
I also needed to increase the timeout from 2s to 10seconds in PVRChannel.cpp as the HDPVR takes too long to start displaying a picture.