Hi, I am unable tun run that script either:

$ perl bin/uav_video_display
perl: symbol lookup error:
/usr/local/lib/perl/5.14.2/auto/UAV/Pilot/Video/H264Decoder/H264Decoder.so:
undefined symbol: av_init_packet

Do you have an example of your line-drawing problem somewhere?

Am 05.08.2013 15:58, schrieb tmur...@wumpus-cave.net:
> Well, that's a bug.  I'll have to update that script with the right
> module name.  Thanks for letting me know.
>
> That script only dumps the video to a file without displaying it.  The
> script 'uav_video_display', released with version 0.5, is the
> important one here.
>
> I ended up solving my overlay issue by doing most of it in C.  I
> probably needed to do this, anyway, as doing it with Perl
> datastructures would have meant creating an SV for each value in the
> three YUV channels and pushing them onto an AV.  720p is 0.9
> megapixels, so that would have been a very expensive operation to do
> 30 times a second to handle realtime video.
>
> The C technique is used in the recently released UAV::Pilot v0.5.
>
> I have run across a new problem when trying to draw on top of the YUV
> overlay.  I can draw a line using the RGB colorspace, but it shows up
> black.  Maybe I need to convert RGB to YUV?  Or perhaps draw on a
> separate surface and blit that on top?
>
> Thanks,
> Timm
>
> On 05.08.2013 08:41, Tobias Leich wrote:
>> Hi, I installed UAV-Pilot right now, but it explodes like:
>> $ bin/uav_video_dump
>> Can't locate UAV/Pilot/Control/ARDrone/Video/FileDump.pm in @INC (@INC
>> contains: /etc/perl /usr/local/lib/perl/5.14.2
>> /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5
>> /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at
>> bin/uav_video_dump line 9.
>> BEGIN failed--compilation aborted at bin/uav_video_dump line 9.
>>
>> Is there something I can do in order to test your example script?
>>
>> Cheers, FROGGS
>>
>> Am 24.07.2013 22:53, schrieb tmur...@wumpus-cave.net:
>>> I've made a simplified, standalone example:
>>>
>>> http://pastebin.com/dPPNc8VL
>>>
>>> The big array at the top is a single YUV420P frame.  Expected behavior
>>> is to display that frame in a window for 5 seconds, and then quit.  If
>>> I comment out the overlay handling, it displays a green background.
>>>
>>> I've verified that I'm running SDL 2.540.
>>>
>>> Thanks,
>>> Timm
>>>
>>> On 24.07.2013 08:17, Kartik Thakore wrote:
>>>> Can we run this with out needing ARDdrone?
>>>>
>>>> On Wed, Jul 24, 2013 at 8:22 AM, <tmur...@wumpus-cave.net> wrote:
>>>>
>>>>> Short on time at the moment, but I have the complete code on a
>>>>> github repo:
>>>>>
>>>>> https://github.com/frezik/UAV-Pilot [2]
>>>>>
>>>>> The relevant code is in UAV::Pilot::SDL::Video, and the decoding
>>>>> happens in the xs file for UAV::Pilot::Video::H264Decoder.  The test
>>>>> t/160_video_decode.t should run the decoding end of things. There's
>>>>> a test video in t_data/ardrone_video_stream_dump.bin, though that
>>>>> contains the PaVE headers from the UAV before each frame.  Those
>>>>> headers can be stripped out by bin/uav_video_dump.
>>>>>
>>>>> I'll try to come up with a more concise example later this evening.
>>>>>
>>>>> Thanks,
>>>>> Timm
>>>>>
>>>>> On 24.07.2013 01 [3]:00, Tobias Leich wrote:
>>>>>
>>>>>> Hi, can you paste a complete example please? Maybe with a link to a
>>>>>> test
>>>>>> video file.
>>>>>>
>>>>>> What I would try first is SDL's latest release, which is 2.540 or
>>>>>> so.
>>>>>>
>>>>>> Cheers, FROGGS
>>>>>>
>>>>>> Am 23.07.2013 23:44, schrieb tmur...@wumpus-cave.net:
>>>>>>
>>>>>>> I'm working on a project involving decoding h.264 video frames with
>>>>>>> ffmpeg and then outputting them to an SDL surface. From what I've
>>>>>>> read, the YUV overlay is meant for this kind of job, but I'm having
>>>>>>> trouble getting it to work with the Perl bindings.
>>>>>>>
>>>>>>> One thing that seems odd to me in the Perl docs is:
>>>>>>>
>>>>>>>     As of release 2.3 direct right to overlay is disable.
>>>>>>>
>>>>>>> Besides the typos, this troubles me because it seems that disabling
>>>>>>> the feature makes the YUV overlay completely useless.
>>>>>>>
>>>>>>> Not to be deterred, I wrote this code:
>>>>>>>
>>>>>>>     SDL::Video::lock_YUV_overlay( $overlay );
>>>>>>>     # The order of array indexen is correct, according to:
>>>>>>>     # http://dranger.com/ffmpeg/tutorial02.html [1]
>>>>>>>     my $pitches = $overlay->pitches;
>>>>>>>     $$pitches[0] = scalar @{ $last_vid_frame[0] };
>>>>>>>     $$pitches[2] = scalar @{ $last_vid_frame[1] };
>>>>>>>     $$pitches[1] = scalar @{ $last_vid_frame[2] };
>>>>>>>     my $pixels = $overlay->pixels;
>>>>>>>     $$pixels[0] = $last_vid_frame[0];
>>>>>>>     $$pixels[2] = $last_vid_frame[1];
>>>>>>>     $$pixels[1] = $last_vid_frame[2];
>>>>>>>     SDL::Video::unlock_YUV_overlay( $overlay );
>>>>>>>
>>>>>>>     SDL::Video::update_rects( $sdl, $bg_rect );
>>>>>>>     SDL::Video::display_YUV_overlay( $sdl, $bg_rect );
>>>>>>>
>>>>>>> When I run this, I get an error about not being able to find the
>>>>>>> pitches() method against the class "SDL::Overlay".  Eh?  (Same
>>>>>>> thing
>>>>>>> happens for the pixels() method if I put that call first.) I can
>>>>>>> call
>>>>>>> width() and format() and such just fine on that object.
>>>>>>>
>>>>>>> If needed, I can handle the overlay entirely at the C level.  I may
>>>>>>> end up doing that anyway; the C array that comes out of ffmpeg is
>>>>>>> being transformed into a Perl array-of-arrays, which is going to
>>>>>>> be an
>>>>>>> expensive operation to do for 720p at 30 fps in realtime. But I'd
>>>>>>> like
>>>>>>> to try this at the Perl level for now.
>>>>>>>
>>>>>>> I might also have to convert the output from ffmpeg using
>>>>>>> sws_scale().  It's coming out in YUV420P mode, and I'm using
>>>>>>> YV12 to
>>>>>>> init the overlay. But I'd like to get the above working before
>>>>>>> messing
>>>>>>> with that.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Timm Murray
>>>>
>>>>
>>>>
>>>> Links:
>>>> ------
>>>> [1] http://dranger.com/ffmpeg/tutorial02.html
>>>> [2] https://github.com/frezik/UAV-Pilot
>>>> [3] tel:24.07.2013%2001
>>>
>

Reply via email to