File: http-stream

package info (click to toggle)
libogg-vorbis-decoder-perl 0.7-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 4,524 kB
  • ctags: 120
  • sloc: perl: 1,559; makefile: 54
file content (44 lines) | stat: -rwxr-xr-x 852 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/perl -w

# $Id: http-stream,v 1.1.1.1 2004/03/07 16:59:56 daniel Exp $
# write out a wav file from an ogg stream

use strict;
use Audio::Wav;
use Net::HTTP;
use Ogg::Vorbis::Decoder;

my $details = {
	'bits_sample'       => 16,
	'sample_rate'       => 44100,
	'channels'          => 2,
};

sub main {

	my $wav = Audio::Wav->new();
	my $write = $wav->write('out.wav', $details);

	my $http = Net::HTTP->new(
		'Host' => 'neptuner.orbislumen.net:8000'
	) || die $!;

        $http->write_request(GET => '/seattletech.ogg', 'User-Agent' => "Mozilla/5.0");

	# we don't care
        my ($code, $mess, %h) = $http->read_response_headers;

	my $decoder = Ogg::Vorbis::Decoder->open($http);

	my $buffer;
	while (my $len = $decoder->sysread($buffer)) {

		last if $len <= 0;

        	$write->write_raw($buffer);
	}

	$write->finish();
}

main();