NAME

UAV::Pilot::Driver::ARDrone::Video

SYNOPSIS

my $cv      = AnyEvent->condvar;
my $handler = ...; # An object that does UAV::Pilot::Driver::ARDrone::VideoHandler
my $ardrone = ...; # An instance of UAV::Pilot::Driver::ARDrone
my $video = UAV::Pilot::Driver::ARDrone::Video->new({
    handler => $handler,
    condvar => $cv,
    driver  => $ardrone,
});

$video->init_event_loop;
$cv->recv;

DESCRIPTION

Processes the Parrot AR.Drone v2 video stream, which is an h264 stream with some additional header data.

Note that this will not work with the AR.Drone v1.

METHODS

new

new({
    handler => $handler,
    condvar => $cv,
    driver  => $ardrone,
})

Constructor. The handler param is an object that does the role UAV::Pilot::Driver::ARDrone::VideoHandler. Param condvar is an AnyEvent::CondVar. Param driver is an instance of UAV::Pilot::Driver::ARDrone.

init_event_loop

Starts the AnyEvent loop for processing video packets.

emergency_restart

The AR.Drone will close the connection when emergency mode is toggled. Calling this will close the stream on our end and reintitlize.

You shouldn't have to call this directly. Pass this object to your UAV::Pilot::Control::ARDrone instance and it will do it for you.