Greetings monks!
After playing with some
flames and
shoop, I was wanting to do some post processing to the mpeg's that shoop creates, but due to a 'magical header' it causes most editing programs to choke on it, so I borrowed this code from the flam3 mailing list. Only problem is, when it attempts to syswrite I get:
Broke: Not enough space
It works if I print to a normal filehandle, but I'm wanting to pipe the output to another program.
#!/usr/bin/perl -w
use strict;
use File::Spec;
my $cwd;
my $dir;
my $fname;
my $buffer;
my @stats;
chomp ($cwd = `cd`);
# read and use directory
$dir = <>;
chomp $dir;
$dir =~ s/\r//;
# read sheep
while ($fname = <>) {
# remove trailing newline
chomp $fname;
# remove trailing CR (windows only)
$fname =~ s/\r//;
$fname = File::Spec->catfile($cwd, $fname) or die "Can't cat: $!\n
+";
@stats = stat ($fname) or die "Can't stat $fname $!\n";
open(INFILE,"< $fname") or die "Can't open $fname $!\n";
binmode INFILE;
read(INFILE, $buffer, $stats[7]) or die "Broke: $!\n";
close INFILE;
$buffer =~ s/(.====magic-header====.*$)//s;
# open(OUTFILE,">outfile.mpg") or die "Broke: $!\n";
# syswrite(OUTFILE, $buffer) or die "Broke: $!\n";
syswrite(STDOUT, $buffer) or die "Broke: $!\n";
# close(OUTFILE);
}