Device-WebIO-Dancer
view release on metacpan or search on metacpan
lib/Device/WebIO/Dancer.pm view on Meta::CPAN
get '/devices/:name/video/:channel/stream/:type1/:type2' => sub {
my $name = params->{name};
my $channel = params->{channel};
my $type1 = params->{type1};
my $type2 = params->{type2};
my $mime_type = $type1 . '/' . $type2;
my $in_fh = $webio->vid_stream( $name, $channel, $mime_type );
return send_file( '/etc/hosts',
streaming => 1,
system_path => 1,
content_type => $mime_type,
callbacks => {
around_content => sub {
my ($writer, $chunk) = @_;
my $buf;
while( read( $in_fh, $buf, VID_READ_LENGTH ) ) {
$writer->write( $buf );
}
t/020_video.t view on Meta::CPAN
$res = $test->request( GET '/devices/foo/video/0/kbps' );
cmp_ok( $res->code, '==', 200, "Got new video bitrate response" );
cmp_ok( $res->content, 'eq', '1000' );
$res = $test->request( GET '/devices/foo/video/0/allowed-content-types' );
cmp_ok( $res->code, '==', 200, "Got video allowed content type response" );
cmp_ok( $res->content, 'eq', 'video/h264' );
SKIP: {
skip q{Plack::Test doesn't seem to handle streaming correctly}, 2;
$res = $test->request( GET '/devices/foo/video/0/stream/video/h264' );
cmp_ok( $res->code, '==', 200, "Got video stream" );
cmp_ok( length($res->content), '==', -s $STREAM_FILE );
}
# TODO error for trying to read a stream with an unsupported content type
( run in 0.231 second using v1.01-cache-2.11-cpan-4d50c553e7e )