NAME

SWF::Header - extract header information from SWF files.

SYNOPSIS

use SWF::Header;
my $header_data = SWF::Header->read_file('/path/to/file.swf');

or

my $header_data = SWF::Header->read_data($binary_data);

or

my $h = SWF::Header->new();
my %headers = map { $_ => $h->read_file($_) } @files;

DESCRIPTION

SWF::Header pulls the descriptive information out of the header of a shockwave (.swf) file. It returns a hashref of height, width, duration, framerate, shockwave version and file size.

METHODS

new()

Creates a reader object. You don't normally need to call the constructor directly unless you want to read several files. Either read_file or read_data will construct an object to do the work if called as a class method.

stream( $stream )

A set or get method that can be used to provide an SWF::BinStream::Read object you want to work with. If none is supplied or exists already, calls new_stream to create a new one.

new_stream()

Resets the reader's stream to a new SWF::BinStream::Read object, ready to start from scratch. Both read_file and read_data call this method before handing over to parse_header.

read_file( $file )

Opens and reads the first few bytes of the file supplied (as either a filehandle or a path), uses them to start a new stream then calls parse_header.

read_data( $string )

Just for consistency. All this does is start a new stream with the data supplied and call parse_header.

parse_header( $string )

Checks that this is a properly-formatted SWF file, then pulls the relevant bytes out of the header block of the file and returns a hashref containing the stage dimensions, coordinates, duration, frame rate, version and file size. In detail:

{
  signature => 'FWS' or 'CWS',
  version => Shockwave language version,
  filelen => Length of entire file in bytes,
  xmin => Stage left edge, in twips,
  xmax => Stage right edge, in twips from left,
  ymin => Stage top edge,
  ymax => Stage bottom edge, in twips from top,
  rate => Frame rate in fps,
  count => total number of frames in movie,
  width => calculated width of stage (in pixels),
  height => calculated height of stage (in pixels),
  duration => calculated duration of movie (in seconds),
}

COPYRIGHT

Copyright 2004 William Ross (wross@cpan.org)

But obviously based entirely on previous work by Yasuhiro Sasama.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

SWF::File, SWF::Parser, SWF::BinStream, SWF::Element

The SWF file format specification from Macromedia can be found at http://www.openswf.org/spec/SWFfileformat.html

1 POD Error

The following errors were encountered while parsing the POD:

Around line 166:

You forgot a '=back' before '=head1'