First of all, the patch is attached and it allows you to watch the new Xtraview channel on the UK Freeview system. It is only a first stab but seems to work correctly without messing up the other channels.

The second more important issue is the legality. I have read a lot of postings about this and as far as I can see it is legal. There is no encryption on the channels. They are simply sent is a way which most boxes are unable to pick up the reception (the streams pretend to be subtitles).

All the Xtraview site says is:
"XTRAVIEW uses proprietary Top Up TV technology. You must not attempt to decompile, disassemble, modify or reverse engineer this technology."
That's fine. I didn't.


The most important issue is probably the image that MythTV wants to project. There is some fuss in the US about "all MythTV users being pirates" and this could add to it.

(btw. please try not to get too aggressive, discuss rather than flame)

--
        Charlie Brej
APT Group, Dept. Computer Science, University of Manchester
Web: http://www.cs.man.ac.uk/~brejc8/ Tel: +44 161 275 6844
Mail: IT302, Manchester University, Manchester, M13 9PL, UK
Index: libs/libmythtv/siparser.cpp
===================================================================
RCS file: /var/lib/mythcvs/mythtv/libs/libmythtv/siparser.cpp,v
retrieving revision 1.15
diff -u -3 -p -r1.15 siparser.cpp
--- libs/libmythtv/siparser.cpp	10 Apr 2005 04:55:47 -0000	1.15
+++ libs/libmythtv/siparser.cpp	12 Apr 2005 10:03:42 -0000
@@ -657,6 +657,7 @@ void SIParser::ParsePMT(tablehead_t* hea
 
     if (Table[PMT]->AddSection(head,head->table_id_ext,0))
         return;
+    int Video_taken=0;
 
     SIPARSER(QString("PMT ServiceID: %1 Version = %2").arg(head->table_id_ext).arg(head->version));
 
@@ -724,6 +725,18 @@ void SIParser::ParsePMT(tablehead_t* hea
             case 0x04:
                 e.Type = ES_TYPE_AUDIO_MPEG2;
                 break;
+            case 0x06:
+                if (!Video_taken)
+                {
+                    e.Type = ES_TYPE_VIDEO_MPEG1;
+                    p.PCRPID = e.PID;
+                    Video_taken=1;
+                }
+                else
+                {
+                    e.Type = ES_TYPE_AUDIO_MPEG1;
+                }
+                break;
             case 0x08:
             case 0x0B:
                 e.Type = ES_TYPE_DATA;
@@ -781,6 +794,7 @@ void SIParser::ParsePMT(tablehead_t* hea
 
                     case 0x59: // Subtitling Descriptor
                         ParseDescriptorSubtitling(descriptor, descriptor_len);
+                        if (e.Type == ES_TYPE_VIDEO_MPEG1) Video_taken=0; 
                         e.Type = ES_TYPE_SUBTITLE;
                         break;
 
_______________________________________________
mythtv-dev mailing list
[email protected]
http://mythtv.org/cgi-bin/mailman/listinfo/mythtv-dev

Reply via email to