The timeout error resurfaced again, i followed you blog post on
http://blog.lemoneerlabs.com/3rdParty/Darling_BBB_30fps_DRAFT.html but got
the following errors in compiling libjpeg-turbo ;

root@beaglebone:~/libjpeg-turbo-1.3.0/build# make
make  all-recursive
make[1]: Entering directory `/root/libjpeg-turbo-1.3.0/build'
Making all in java
make[2]: Entering directory `/root/libjpeg-turbo-1.3.0/build/java'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/root/libjpeg-turbo-1.3.0/build/java'
Making all in simd
make[2]: Entering directory `/root/libjpeg-turbo-1.3.0/build/simd'
make  all-am
make[3]: Entering directory `/root/libjpeg-turbo-1.3.0/build/simd'
make[3]: Nothing to be done for `all-am'.
make[3]: Leaving directory `/root/libjpeg-turbo-1.3.0/build/simd'
make[2]: Leaving directory `/root/libjpeg-turbo-1.3.0/build/simd'
Making all in md5
make[2]: Entering directory `/root/libjpeg-turbo-1.3.0/build/md5'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/root/libjpeg-turbo-1.3.0/build/md5'
make[2]: Entering directory `/root/libjpeg-turbo-1.3.0/build'
make[2]: Leaving directory `/root/libjpeg-turbo-1.3.0/build'
make[1]: Leaving directory `/root/libjpeg-turbo-1.3.0/build'
root@beaglebone:~/libjpeg-turbo-1.3.0/build#


Before compiling libjpeg-turbo i tested my code to see what will be
happening on the resolution and frame rate. I am working with a Logitech
QuickCam E3500 which has support for both YUVY and MJPEG. I set the
resolution to 320x240 with a 30fps frame rate but after running the code,
got select timeout errors and the resolution had changed to 640x480 YUVY
with a 15fps frame rate;

root@beaglebone:~/libjpeg-turbo-1.3.0/build# v4l2-ctl -V
Format Video Capture:
    Width/Height  : 640/480
    Pixel Format  : 'YUYV'
    Field         : None
    Bytes per Line: 1280
    Size Image    : 614400
    Colorspace    : SRGB
root@beaglebone:~/libjpeg-turbo-1.3.0/build#




On Tue, May 24, 2016 at 1:22 AM, Tinashe Mudavanhu <tinam...@gmail.com>
wrote:

> Hi Matthew,
>
> I'm a rookie in this linux/opencv area i wouldn't really know what it
> means, only learning from you. I posted a question
> https://groups.google.com/forum/#!category-topic/beagleboard/debian/VFuvveM_8Gc
> looking for a solution because it always happened when i plugged in the
> webcam on BBB. Running the command i previously mentioned ended my woes.
>
> On Tue, May 24, 2016 at 1:04 AM, Matthew Witherwax <ablec...@gmail.com>
> wrote:
>
>> The issue causing the select time out detailed in my article has to do
>> with how much data is being sent over the USB and how it is sent. Reducing
>> the frame rate reduces the load on the USB. Looking at the articles you
>> linked, one says it solved an issue but not the select timeout, and the
>> other shows an error message that says it could not allocate memory.
>> Neither one of these are the cause of the select timeout I addressed.
>>
>> The select timeout occurs when the select times out. Looks like in the
>> cases in your links a previous call to allocate memory failed followed by
>> select failing. I have never had an issue with memory allocation. All my
>> troubles had to do with too much data on the USB. You might want to confirm
>> what your actual problem is.
>> ------------------------------
>> From: Tinashe Mudavanhu <tinam...@gmail.com>
>> Sent: ‎5/‎23/‎2016 4:58 PM
>> To: beagleboard@googlegroups.com
>> Subject: Re: [beagleboard] Re: VGA camera capture
>>
>> Hi Matthew,
>>
>> I looked into the article as i went through your discussion but did not
>> try the framegrabber.c, will test it though. I finally got a solution to
>> the problem from links listed below. It kind of made sense to me (lack of
>> memory in ARM systems) because running the same code on my PC worked
>> perfectly well. Running this command `sysctl vm.overcommit_memory=1` worked
>> for me after a long struggle. What i'm not really sure are the implications
>> (being it on Hardware or Software) if there comes a state when large size
>> memory is really needed.
>>
>>
>>   [1]: https://www.raspberrypi.org/forums/viewtopic.php?f=31&t=17773
>>   [2]:
>> https://tequals0.wordpress.com/2014/03/24/libv4l2-error-allocation-conversion-buffer-using-opencv-on-a-pi/
>>
>> On Mon, May 23, 2016 at 10:25 PM, Matthew Witherwax <ablec...@gmail.com>
>> wrote:
>>
>>> Hi Tinashe,
>>>
>>> Please see my article here http://blog.lemoneerlabs.com/post/BBB-webcams
>>> There is a version of framegrabber.c linked to it that allows you to
>>> specify the frame rate with the command line parameter -I.  If reducing the
>>> frame rate works for you, then the code for framegrabber should provide a
>>> starting point for accomplishing the same thing in your own program.
>>>
>>> On Mon, May 23, 2016 at 2:43 PM, Tinashe Mudavanhu <tinam...@gmail.com>
>>> wrote:
>>>
>>>> Firstly i would like to say i came across your discussion looking for
>>>> select timeout error solution but as i went through it i didnt notice if
>>>> you found a solution, but if you have it now, i would appreciate it. The
>>>> select timeout error still seems to be in existence even on BBB Rev C with
>>>> kernel  3.8.13-bone79. I am working on an Iris recognition system that
>>>> initially has to track eyes in a live video stream (from there captures
>>>> cropped eye images that will be processed). I have installed different
>>>> OpenCV versions, 2.4.9, 2.4.11 and 3.0.0 and in all of them i am getting
>>>> the same error. I am working with a Logitech, Inc. QuickCam E 3500 webcam.
>>>> I am accessing the BBB Desktop using Tightvnc client on my PC running
>>>> Ubuntu 14.04 LTS.
>>>>
>>>> What is surprising is that it is capable of video streaming with opencv
>>>> installed by apt-get (apt-get install python-opencv) but the limitation
>>>> with this version is that it has very old cv bindings and documentation on
>>>> some functions for Histogram equalisation is not available online. I am
>>>> stuck, i need your help.
>>>>
>>>> On Tuesday, 10 September 2013 16:50:46 UTC+2, Matthew Witherwax wrote:
>>>>>
>>>>> Getting another BBB or raspberry pi probably wont help, but a U2 from
>>>>> HardKernel here
>>>>> http://www.hardkernel.com/renewal_2011/products/prdt_info.php?g_code=G135341370451
>>>>> probably would.  You can use the BBB to do all IO and use the processing
>>>>> power of the U2 to handle compute intensive tasks.  That is actually my 
>>>>> end
>>>>> goal.  The cpu use I stated earlier was without showing the image.
>>>>> Displaying the image will increase cpu use.
>>>>>
>>>>> I am also working on a tracking application with the webcam mounted on
>>>>> a servo.  For my purposes, I do not need to see the image on the BBB and
>>>>> can push it over wifi to my laptop if I want to view it.
>>>>>
>>>>> As far as cv code, what are you looking for?  I have posted a tool on
>>>>> my blog here http://blog.lemoneerlabs.com/post/shades-of-red to help
>>>>> you find HSV values from images to allow you to to find values to 
>>>>> threshold
>>>>> target colors.  I will post another one on using HSV ranges to threshold 
>>>>> an
>>>>> image to isolate things like a red colored ball.  I have been implementing
>>>>> OpenCV code using python right now for experimentation, but you should be
>>>>> able to translate it to C++ or your language of choice.
>>>>>
>>>>> The command v4l2-ctl --list-formats-ext will tell you the pixel
>>>>> formats and resolutions supported by your camera.
>>>>>
>>>>> Hope this helps,
>>>>>
>>>>> Matthew Witherwax
>>>>>
>>>>>
>>>>> On Tue, Sep 10, 2013 at 8:48 AM, James Richins <
>>>>> james....@btinternet.com> wrote:
>>>>>
>>>>>> Matthew,
>>>>>>
>>>>>> It does remind of something on Derek Molloy's site in that he adds
>>>>>> coding to deal with the h264 codec for taking stills with opencv. I
>>>>>> hesitated at the idea. Interestingly even using an additional bbb or
>>>>>> raspberry pi might not even help. I'm looking at camera tracking
>>>>>> objects/object recognition and servo control.
>>>>>> I might find that by not displaying the video on the monitor, that
>>>>>> the tracking and servo control can work less than 100% CPU.
>>>>>> I have yet to implement the cv code for that, it's a real struggle to
>>>>>> find good code. And not get errors. I have managed servo control through
>>>>>> python and manual entering numbers so its ultimately possible.
>>>>>> I'm not sure if my camera does anything other than yuyv. I'd be
>>>>>> interested in connecting an Ethernet cam to the Ethernet port and read
>>>>>> camera data from there, but you'd probably run into the same problem.
>>>>>> Ethernet cam to pc processing cv code, wifi to beaglebone servo control
>>>>>> might be good. But its probably a slow process and too complicated for 
>>>>>> me.
>>>>>>
>>>>>> Anyway good luck with your project.
>>>>>>
>>>>>> James
>>>>>>
>>>>>> On 10 Sep 2013, at 13:57, Matthew Witherwax <able...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>> James,
>>>>>>
>>>>>> I have not done any cpu testing other than while saving single
>>>>>> frames.  In MJPEG format, capturing a single frame at 1920x1080 30 fps 
>>>>>> and
>>>>>> saving it was taking about 6% cpu.  Doing the same in YUYV at a reduced
>>>>>> resolution and converting to jpeg was taking about 70%.  I would not rush
>>>>>> out to buy a h264 camera.  First, I am not sure OpenCV decodes h264
>>>>>> streams.  Second, if it did, I am not sure you would see much improvement
>>>>>> because of the need to decode the h264 stream.  If the BBB does this in
>>>>>> hardware is likely wont be bad, but if it is a software implementation we
>>>>>> are just shifting the burden.  I am currently working through several
>>>>>> tradeoffs.  YUYV should give the truest image free of compression
>>>>>> artifacts, but will be larger and require more resources to capture and
>>>>>> process.  MJPEG may suffer from compression artifacts, but images can be
>>>>>> captured more quickly and at higher resolutions.  One has to decide what
>>>>>> combination of frame rate, resolution, and fidelity are required.  I am
>>>>>> currently working through the permutations to see what suits my 
>>>>>> application.
>>>>>>
>>>>>> An option I have open is to send the captured images over a wifi link
>>>>>> to a computer that runs all the OpenCV code and pipes back the data I am
>>>>>> after.  This leaves the BBB mostly free to do other work.  I will update 
>>>>>> as
>>>>>> I progress.
>>>>>>
>>>>>> Matthew Witherwax
>>>>>>
>>>>>>
>>>>>> On Tue, Sep 10, 2013 at 7:35 AM, James Richins <
>>>>>> james....@btinternet.com> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Did you register anything on CPU usage. I know running moustache
>>>>>>> placing cv code it will run at 100% CPU on a standard webcam. Is pre
>>>>>>> processing less cpu intensive or will cv code always push the bb to the 
>>>>>>> max?
>>>>>>> I didn't think I'd rush to buy a h264 hardware encoding cam if its
>>>>>>> the software and running at 320 is just as efficient as preencoded hd
>>>>>>> video.
>>>>>>>
>>>>>>>
>>>>>>> On 10 Sep 2013, at 13:16, Matthew Witherwax <able...@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>> João,
>>>>>>>
>>>>>>> 1.  Glad to hear you are making progress.  My blog is at
>>>>>>> blog.lemoneerlabs.com.  Unfortunately I have yet to post my write
>>>>>>> up on the USB cameras, but I will get it done soon.  I can tell you with
>>>>>>> the Logitech C920 it is possible to capture 1920x1080 frames with the 
>>>>>>> FPS
>>>>>>> set to 30 in both MJPEG and YUYV format.
>>>>>>>
>>>>>>> 2.  v4l2grab sets the format to YUYV before grabbing the frames.  It
>>>>>>> then converts the captured frame to a jpeg and saves it.  I will post a
>>>>>>> version to my blog this week that uses MJPEG instead.  Typical MJPEG
>>>>>>> implementations encode each video frame as a jpeg.  The code I wrote 
>>>>>>> puts
>>>>>>> the webcam in MJPEG mode for capture and saves the returned frame.  In 
>>>>>>> the
>>>>>>> case of the Logitech C920, the returned frame is a jpeg image.  It 
>>>>>>> seems by
>>>>>>> going this route the camera actually creates the jpeg sparing the BBB 
>>>>>>> from
>>>>>>> having to do it.  In addition, the jpeg is considerably smaller than the
>>>>>>> YUYV frame resulting in less load on the USB.  I would appreciate you
>>>>>>> testing the output when I post the code as it is entirely possible that 
>>>>>>> not
>>>>>>> all cameras handle MJPG the same, and the result might not be a valid 
>>>>>>> jpeg.
>>>>>>>
>>>>>>> 3.  13.2 MB/s is the limit I was able to reach through testing.  You
>>>>>>> should note the webcam I tested with for that number only did bulk
>>>>>>> transfers which guarantee delivery.  It may be slightly higher for
>>>>>>> isochronous transfers as frames can (and seem to) get dropped.  I am not
>>>>>>> sure why that is the limit.  It maybe a hardware issue or a USB driver
>>>>>>> implementation issue.  During further testing on several laptops, the 
>>>>>>> newer
>>>>>>> ones could reach a higher throughput even though all had a USB 2 bus 
>>>>>>> which
>>>>>>> would lead me to believe it is hardware related, but it is a question 
>>>>>>> for
>>>>>>> the hardware guys.
>>>>>>>
>>>>>>> 4.  I will post my code this week.  Please test it with your MJPEG
>>>>>>> capable cameras, and let me know the results.
>>>>>>>
>>>>>>> 5.  The UVC implementation in Linux does not support still image
>>>>>>> capture.  This means tools like v4l2grab set the camera to record in a 
>>>>>>> mode
>>>>>>> that uses no compression or intra-frame compression (
>>>>>>> http://en.wikipedia.org/wiki/Intra-frame) and then grab frames from
>>>>>>> the stream.  This is why the format and frame rate affect the capture.  
>>>>>>> The
>>>>>>> stream has to be open and the data pulled before we can grab an image.
>>>>>>>
>>>>>>> 6.  Possibly, see 3.
>>>>>>>
>>>>>>> 7.  For my purposes, I have not tested plug-and-play so I cannot say
>>>>>>> much about it.
>>>>>>>
>>>>>>>
>>>>>>> On Mon, Sep 9, 2013 at 1:15 PM, João M. S. Silva <
>>>>>>> joao.m.sa...@gmail.com> wrote:
>>>>>>>
>>>>>>>> Thanks Matthew, Don.
>>>>>>>>
>>>>>>>> Here is my follow up:
>>>>>>>>
>>>>>>>> 1. Matthew, what is you blog address?
>>>>>>>>
>>>>>>>> 2. I compiled v4l2grab and used the -I switch to adjust the fps. I
>>>>>>>> found out that with the Logitech camera I can capture 640x480 at up to 
>>>>>>>> 6
>>>>>>>> fps. With -I 7 or above, it hangs. With another cheap camera, even -I 1
>>>>>>>> hangs!
>>>>>>>>
>>>>>>>> 3. Is 13.2 MB/s somehow BBB's limit? Why?
>>>>>>>>
>>>>>>>> 4. My cheap cameras are YUYV capable and one of them is MJPEG
>>>>>>>> capable. The Logitech is both YUYV and MJPEG capable.
>>>>>>>>
>>>>>>>> 5. As I've read elsewhere UVC does not allow to get still images,
>>>>>>>> so video performance issues affect still image capturing, right? is 
>>>>>>>> there a
>>>>>>>> way to capture pure still images (bandwidth limitations should be
>>>>>>>> irrelevant in that case)?
>>>>>>>>
>>>>>>>> 6. Overall, this is an issue from the BBB, right? All of this works
>>>>>>>> in my laptop and in BBXM. Is it a bug from the BBB USB implementation?
>>>>>>>>
>>>>>>>> 7. I also found BBB's USB is not really plug-and-play. Sometimes
>>>>>>>> devices don't get recognized and a reboot is needed.
>>>>>>>>
>>>>>>>> Thanks.
>>>>>>>>
>>>>>>>> --
>>>>>>>> For more options, visit http://beagleboard.org/discuss
>>>>>>>> ---
>>>>>>>> You received this message because you are subscribed to a topic in
>>>>>>>> the Google Groups "BeagleBoard" group.
>>>>>>>> To unsubscribe from this topic, visit
>>>>>>>> https://groups.google.com/d/topic/beagleboard/2NO62mGcSvA/unsubscribe
>>>>>>>> .
>>>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>>>> beagleboard...@googlegroups.com.
>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> For more options, visit http://beagleboard.org/discuss
>>>>>>> ---
>>>>>>> You received this message because you are subscribed to a topic in
>>>>>>> the Google Groups "BeagleBoard" group.
>>>>>>> To unsubscribe from this topic, visit
>>>>>>> https://groups.google.com/d/topic/beagleboard/2NO62mGcSvA/unsubscribe
>>>>>>> .
>>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>>> beagleboard...@googlegroups.com.
>>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>>
>>>>>>> --
>>>>>>> For more options, visit http://beagleboard.org/discuss
>>>>>>> ---
>>>>>>> You received this message because you are subscribed to a topic in
>>>>>>> the Google Groups "BeagleBoard" group.
>>>>>>> To unsubscribe from this topic, visit
>>>>>>> https://groups.google.com/d/topic/beagleboard/2NO62mGcSvA/unsubscribe
>>>>>>> .
>>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>>> beagleboard...@googlegroups.com.
>>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>>
>>>>>>
>>>>>> --
>>>>>> For more options, visit http://beagleboard.org/discuss
>>>>>> ---
>>>>>> You received this message because you are subscribed to a topic in
>>>>>> the Google Groups "BeagleBoard" group.
>>>>>> To unsubscribe from this topic, visit
>>>>>> https://groups.google.com/d/topic/beagleboard/2NO62mGcSvA/unsubscribe
>>>>>> .
>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>> beagleboard...@googlegroups.com.
>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>
>>>>>> --
>>>>>> For more options, visit http://beagleboard.org/discuss
>>>>>> ---
>>>>>> You received this message because you are subscribed to a topic in
>>>>>> the Google Groups "BeagleBoard" group.
>>>>>> To unsubscribe from this topic, visit
>>>>>> https://groups.google.com/d/topic/beagleboard/2NO62mGcSvA/unsubscribe
>>>>>> .
>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>> beagleboard...@googlegroups.com.
>>>>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>>>>
>>>>>
>>>>> --
>>>> For more options, visit http://beagleboard.org/discuss
>>>> ---
>>>> You received this message because you are subscribed to a topic in the
>>>> Google Groups "BeagleBoard" group.
>>>> To unsubscribe from this topic, visit
>>>> https://groups.google.com/d/topic/beagleboard/2NO62mGcSvA/unsubscribe.
>>>> To unsubscribe from this group and all its topics, send an email to
>>>> beagleboard+unsubscr...@googlegroups.com.
>>>> To view this discussion on the web visit
>>>> https://groups.google.com/d/msgid/beagleboard/ecbcf781-d04a-4a40-b6d3-1a33e5e26267%40googlegroups.com
>>>> <https://groups.google.com/d/msgid/beagleboard/ecbcf781-d04a-4a40-b6d3-1a33e5e26267%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>> .
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> --
>>> For more options, visit http://beagleboard.org/discuss
>>> ---
>>> You received this message because you are subscribed to a topic in the
>>> Google Groups "BeagleBoard" group.
>>> To unsubscribe from this topic, visit
>>> https://groups.google.com/d/topic/beagleboard/2NO62mGcSvA/unsubscribe.
>>> To unsubscribe from this group and all its topics, send an email to
>>>
>>
>> [The entire original message is not included.]
>>
>> --
>> For more options, visit http://beagleboard.org/discuss
>> ---
>> You received this message because you are subscribed to a topic in the
>> Google Groups "BeagleBoard" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/beagleboard/2NO62mGcSvA/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> beagleboard+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/beagleboard/57438c64.87c30d0a.b3918.2ced%40mx.google.com
>> <https://groups.google.com/d/msgid/beagleboard/57438c64.87c30d0a.b3918.2ced%40mx.google.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/CADw4j_uvf%2BUL58p98L%2BhVvJasKESPnZMbvuwMbqrdkPW5noRqg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to