Advertisement
Guest User

dvbvtest.pl

a guest
Dec 15th, 2013
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 2.65 KB | None | 0 0
  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4. use warnings;
  5. use Data::Dumper;
  6. use DateTime;
  7. use Date::Calc qw(Delta_Days);
  8.  
  9. # READ BYTE
  10. sub rb {
  11.   my ($FH, $len) = @_;
  12.   read($FH, my $b, $len ? $len : 1);
  13.   unpack("W*", $b);
  14. }
  15.  
  16. # READ INT
  17. sub ri {
  18.   my $FH = shift;
  19.   read($FH, my $i, 4);
  20.   unpack("I", $i);
  21. }
  22.  
  23. sub rs {
  24.   my $FH = shift;
  25.   read($FH, my $i, 2);
  26.   unpack("s", $i);
  27. }
  28.  
  29. open(my $CHANDAT, "<", 'getchannelsdat.html') or die $!;
  30. binmode($CHANDAT);
  31.  
  32. my $length = rb($CHANDAT);
  33. my $string = rb($CHANDAT, 4);
  34. my $highVersion = rb($CHANDAT);
  35. my $lowVersion = rb($CHANDAT);
  36.  
  37. #while(1) {
  38.   my $tunerType = rb($CHANDAT) || 0;
  39.   my $channelGroup = rb($CHANDAT);
  40.   my $satModulationSystem = rb($CHANDAT);
  41.   my $flags = rb($CHANDAT);
  42.   my $frequency = ri($CHANDAT);
  43.   my $Symbolrate = ri($CHANDAT);
  44.   my $lnbLof = rs($CHANDAT);
  45.   my $pmtPID = rs($CHANDAT);
  46.   my $reserved1 = rs($CHANDAT);
  47.   my $satModulation = rb($CHANDAT);
  48.   my $avFormat = rb($CHANDAT);
  49.   my $fec = rb($CHANDAT);
  50.   my $reserved2 = rb($CHANDAT);
  51.   my $reserved3 = rs($CHANDAT);
  52.   my $polarity = rb($CHANDAT);
  53.   my $reserved4 = rb($CHANDAT);
  54.   my $orbitalPosition = rs($CHANDAT); # a2i
  55.   my $tone = rb($CHANDAT);
  56.   my $reserved5 = rb($CHANDAT);
  57.   my $discCext = rs($CHANDAT);
  58.   my $descq = rb($CHANDAT);
  59.   my $reserved6 = rb($CHANDAT);
  60.   my $reserved7 = rs($CHANDAT);
  61.   my $audioPID = rs($CHANDAT); # a2i
  62.   my $reserved8 = rs($CHANDAT);
  63.   my $videoPID = rs($CHANDAT); # a2i
  64.   my $transportStreamID = rs($CHANDAT); # a2i
  65.   my $teletextPID = rs($CHANDAT);
  66.   my $orginalNetworkID = rs($CHANDAT); # a2i
  67.   my $serviceID = rs($CHANDAT); # a2i
  68.  
  69.   my $channelID = (($tunerType + 1) * 536870912) + ($audioPID * 65536) + $serviceID;
  70.   #my $channelID = $serviceID + ($audioPID + (2**16)) + (($tunerType + 1) + (2**29)) + ($transportStreamID * (2**32)) + (($orbitalPosition * 10) * (2**48)) + (1 * (2**61));
  71.   my $epgID = (($tunerType + 1) * 2**48 + $orginalNetworkID * 2**32 + $transportStreamID * 2**16 + $serviceID);
  72.   my $favID = ($tunerType + 1) * 536870912 + $serviceID;
  73.  
  74. #  last;
  75. #}
  76.  
  77. close($CHANDAT);
  78.  
  79. my $dt = DateTime->now(time_zone => 'local');
  80. my $days = Delta_Days(1899, 12, 30, $dt->year, $dt->month, $dt->day); # Days since Delphi
  81. my $minutesOfDay = (($dt->hour+1) * 60) + $dt->minute;
  82. my $precentage = $minutesOfDay / (24 * 60);
  83. my $start = int($precentage*24*60);
  84. $precentage =~ s/^\d+\.//;
  85. print $days.".".$precentage."<--\n";
  86. print "start: ".$start."\n";
  87. print $dt->hour."<-keke\n";
  88.  
  89. print "TSID: ".$transportStreamID."\n";
  90.  
  91. printf("CHANNEL-ID: %.0f\n", $channelID);
  92. #print "CHANID: :".$channelID."\n";
  93. print "EPGID: ".$epgID."\n";
  94. print "FAVID: ".$favID."\n";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement