The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

  UAV::Pilot::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({
        handlers => [ $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({
        handlers => [ $handler ],
        condvar  => $cv,
        driver   => $ardrone,
    })

Constructor. The handlers param is an array of objects that do 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.

add_handler

    add_handler( $handler );

Adds a UAV::Pilot::Video::H264Handler object to the list of handlers.