- onLoad まわりを変更。(上の問題の解決のため)
- define.pl 内で $isearch を設定することで、インクリメンタルサーチをON/OFF するようにした。
- インクリメンタルサーチ用の大きなデータをhtmlの最後の方で読み込んで、番組表の表示を先にして、読み込みが遅いのをわかりにくくした。
- 「■番組検索 」と「インクリメンタル検索」ボタンを同じ行にした。
define.pl の311氏関連のあたりに $isearch が加わっていることに注意。
strncpy(mp4boxpath,pt,PATH_MAX);
+ if(argv[optind]==NULL){
+ fprintf(stderr,"no input file\n");
+ exit(-1);
+ }
strncpy(lpFile,argv[optind],PATH_MAX);
- if(strlen(lpFile)==0){
- fprintf(stderr,"no input file\n");
- exit(-1);
- }
print "s1.addParam('flashvars','file=$request.flv&streamer=rtmp://$ENV{'SERVER_NAME'}/vod&fullscreen=true&plugins=captions-1&captions.file=caption.pl?file=$request.xml');\n"みたいなところ、何箇所かある、いつも使っている部分だけでもOK、どこを使っているかわからない人は全部書き加える。
-090924-ActivePerl 5.10.0 build 1004 以前ではうまく動かない可能性があるようです。
streamdisp() からのファイルダウンロード時に、ファイル名にアイコン名などが入る問題を修正。
地味にジャンル検索を変更。
*** segwrapper.pm.orig Wed Sep 23 00:00:00 2009
--- segwrapper.pm Wed Sep 23 00:00:01 2009
***************
*** 4,10 ****
use strict;
use Time::Local;
! use Time::JulianDay;
use Fcntl;
--- 4,10 ----
use strict;
use Time::Local;
! #use Time::JulianDay;
use Fcntl;
***************
*** 37,43 ****
my $totcode = shift;
my($mjd,$y,$m,$d,$h,$n,$s,$ch,$cn,$cs);
($mjd,$ch,$cn,$cs) = unpack("nCCC",$totcode);
! ($y,$m,$d) = inverse_julian_day($mjd+2400000.5+1); # @@@ +1?
$h = (($ch >> 4) & 0x0F) * 10 + ($ch & 0x0F);
$n = (($cn >> 4) & 0x0F) * 10 + ($cn & 0x0F);
$s = (($cs >> 4) & 0x0F) * 10 + ($cs & 0x0F);
--- 37,54 ----
my $totcode = shift;
my($mjd,$y,$m,$d,$h,$n,$s,$ch,$cn,$cs);
($mjd,$ch,$cn,$cs) = unpack("nCCC",$totcode);
! # ($y,$m,$d) = inverse_julian_day($mjd+2400000.5+1); # @@@ +1?
!
! $y = int(($mjd - 15078.2) / 365.25);
! $m = int(($mjd - 14956.1 - int($y * 365.25)) / 30.6001);
! $d = int($mjd - 14956 - int($y * 365.25) - int($m * 30.6001));
! if (13 < $m) {
! $y = $y + 1;
! $m = $m - 12;
! }
! $y = $y + 1900;
! $m = $m - 1;
!
$h = (($ch >> 4) & 0x0F) * 10 + ($ch & 0x0F);
$n = (($cn >> 4) & 0x0F) * 10 + ($cn & 0x0F);
$s = (($cs >> 4) & 0x0F) * 10 + ($cs & 0x0F);
-090923-キャッシュ化したので、設定を変更した場合はcache\の内容を削除することを忘れずに。
<player.pl>
【ほげ】をすべてアイコンに変換する野望は捨てた。
system()が残っていたので、Win32::Process::Create()に戻した.
放送局名をgoogleのI'm Feeling Lucky機能にリンクした。
番組表をキャッシュするようにした.
- 当日はキャッシュしない.
- Cacheファイルは放送日のタイムスタンプが付くので, define.pl の $ExpireCache を ($start_date-2)*24 にすると、丁度,最初の日以前をexpireする。
表の最後を揃えて放送局名を入れた。
<defin.pl>
「絵」アイコン追加。icon_e_b.gif
「SS」アイコン追加。icon_ss_b.gif
「シリーズ構成」アイコン追加。icon_kousei_b.gif
「終」アイコン追加。icon_end_b.gif
「声の出演」を「声」アイコンに関連付け。
「リポーター」アイコンを変更。
キャッシュ化に伴い$ExpireCache = ($start_date-2)*24;に。
<omake/ts_epg.pl>
ts_proc.pl はパイプを使うのでepg.plを改造して
直接ファイルを読んで処理するようにした。
-090919-
$startHを跨ぐ番組が表示されない問題の修正。(epg.cgiのせいではなく、改造時のエンバグだった。)
本家09/14版から、
streamdisp_mobileでmp4ダウンロードできるようにした。
海の日の修正。
-090918-
検索での時刻指定に関するバグ修正。
ts_proc.plのTSファイル名生成に関するバグ修正。
#!/usr/bin/perl
use DBI;
$start_date = 28;
@tm = localtime(time-86400*($start_date-1)-3600);
$timestring = sprintf("%04d-%02d-%02d %02d:00:00",$tm[5]+1900,$tm[4]+1,$tm[3],$tm[2]);
my $dsn = 'DBI:SQLite:dbname=/media/disk/oneseg24/epg.db';
my $dbh = DBI->connect($dsn, undef, undef, {RaiseError => 1, AutoCommit => 1});
$dbh->do("delete from da_genre where dv_id IN (select dv_id from da_event where dv_start_time < '$timestring')");
$dbh->do("delete from da_event where dv_start_time < '$timestring'");
$dbh->do("vacuum");
$dbh->disconnect();
--- perlrtmp.pl 2009-07-25 09:51:05.000000000 +0900
+++ server.pl 2009-08-28 23:46:31.000000000 +0900
@@ -8,15 +8,14 @@
use POSIX ":sys_wait_h";
my $dir = $ARGV[0];
-my $port = $ARGV[1];
-my $dbn = $ARGV[2];
-if ($dir eq '' || $port eq '') {
- die "Usage: $0 <document> <server> <session>\n";
+if ($dir eq '') {
+ die "Usage: $0 <document>\n";
} else {
$dir =~ s/\/$//;
}
+my $port = '1935';
my $lsn = new IO::Socket::INET(Listen => 1, LocalPort => $port, Reuse => 1) or die;
my $sel = new IO::Select($lsn);
@@ -31,7 +30,7 @@
warn "[socket] connect from ", $new->peerhost, "\n";
$pidtable{$pid} = 1;
} elsif (defined $pid) {
- my $rtmp = RTMP->new($new, $dir, $dbn);
+ my $rtmp = RTMP->new($new, $dir);
my $cosel = new IO::Select($new);
while (1) {