Thread unpack (22 answers)
Opened by mark05 at 2011-04-29 13:48

mark05
 2011-04-29 13:48
#148087 #148087
User since
2010-01-05
129 Artikel
BenutzerIn
[default_avatar]
hi

wie soll ich es anfangen .

also es geht im kern darum die binaere datei index die vom vdr (VideoDiskRecorder ) auszuwerten.

http://www.vdr-wiki.de/wiki/index.php/Index.vdr

nun habe ich dazu mal eine routine geschrieben.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
sub _getoffset {
my ($shelf,$args) = @_;
my $frame = \$args->{'frame'};
my $index = \$args->{'index'};
my $startpos = ( $ACHT * ${$frame} ) ;
if ( not ( ${$index} ) ) { return ('index not found in _getoffset'); }

my $ok = 'false';
my $offsetrc = q{};
my $filenorc = q{};

my $buffer = \$shelf->_readindex({index=>${$index},frame=>${$frame},});
my ($frameoffset,undef,$independent,$filenumber) = unpack 'ssss', ${$buffer};
$offsetrc = hex $frameoffset;
$filenorc = hex $filenumber;
print "_getoffsetstart || frame ${$frame} hex $frameoffset <-> dez $offsetrc in file $filenorc\n";
return ($offsetrc,$filenorc);
}


wobei index die indexdatei enthaelt samt path
und frame die framenummer wofuer ich den byte offset benotige , der in der index steht , sowie die entsprechende datei nummer. ( vdr schreibt bloecke
von max 2G und faengt dann eine neue datei an.
die jeweilige nr steht in der index)

ACHT ist = 8 Readonly .

jenachdem wie gross die frame zhal ist bekomme ich manchmal - werte
die ich dann natuerlich nicht direkt umrechnen kann nach dezimal.

und das ist mein problem.

die angesproche _readindex
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
sub _readindex {
my ($shelf,$args) = @_;
my $frame = \$args->{'frame'};
my $index = \$args->{'index'};
my $buffer = q{};

open my $INDEX, '<', ${$index} or croak $shelf->_message({msg=>"Couldn't open ${$index} $ERRNO"});
seek $INDEX, ${$frame} ,'0' ;
read $INDEX, $buffer, $ACHT;
close $INDEX or croak $shelf->_message({msg=>"Couldn't close ${$index} $ERRNO"});

return ($buffer);
}


kann mir da jemand einen tipp geben was ich falsch mache ?

holger
Last edited: 2011-04-29 14:04:28 +0200 (CEST)

View full thread unpack