Video recording

Hi,
I have a feasibility kind of question: I have a BB C3, a webcam, and I
would like to do a surveillance cam thingie.
By this I mean recording camera image with 640x480 @30fps to mpeg4 or
similar and optional activity detection (do not record if there's no
change on image).

I.)
My question is: is it possible to do this with out-of-the-box angstrom image?

I suppose the codec has to run on the dsp to keep up with the camera
in realtime. When I last played with angstrom SGX and DSP stuff were
not part of the binary package repository, and had to be built with
OE. I tried many times but the build always failed at some point, and
as my computer is quite old, it took about a day to reach this point.

So I would like to avoid using OE. If the packages are not in repo,
can anyone send them?

II.)
Is it possible to implement the above mentioned setup with gstreamer?
usb webcam -> dsp codec -> usb disk

I see this a good opportunity to learn some media processing
technologies and their implementation on an embedded system, but I
also want reach my goal within reasonable time, and not spend months
of my spare time to figure out the beagle is not suitable for this
task (or it's out of scope for me to make it).

Thanks for any info! :slight_smile:
Gyorgy Szekely

sgx and dsp stuff has been in the feeds for over a year now

Hi,

I have a feasibility kind of question: I have a BB C3, a webcam, and I
would like to do a surveillance cam thingie.
By this I mean recording camera image with 640x480 @30fps to mpeg4 or
similar and optional activity detection (do not record if there's no
change on image).

I.)
My question is: is it possible to do this with out-of-the-box angstrom image?

I think encoding part should be possible. However I do not know
anything about built in support for activity detection. It is worth to
ask about it on gstreamer forum.
The following page provides a lot of example gstreamer pipelines using
TI's video encoder which utilizes DSP:
http://ti-wiki.com/wiki/index.php?title=Example_GStreamer_Pipelines#OMAP35x .
In particular, the following section might be of interest for you:
http://ti-wiki.com/wiki/index.php?title=Example_GStreamer_Pipelines#Encode_Video_Files_6
.
Substituting videotestsrc with v4l2src will do the job.
The following page also provides a lot of very good examples which
could be run on BB as well:
http://wiki.oz9aec.net/index.php/Gstreamer_Cheat_Sheet

In addition, if you want more control and flexibility and not afraid
to make your hands dirty with programming :wink: you can take a look at
the following project:
http://veter-project.blogspot.com . It illustrates how to do rea-ltime
video streaming from BB and deals with things like nat/firewall, etc.

II.)
Is it possible to implement the above mentioned setup with gstreamer?
usb webcam -> dsp codec -> usb disk

BB C3 has known issue with USB port. You can search this forum for more details.

HTH,
Andrey.

This sounds goood. :slight_smile: Last time I checked angstrom was about a year
ago, so I must have just missed it.
If no registration at TI.com, no manual downloading and building, I'll
get an Angstrom image today! :slight_smile:

Thanks!

[…]

If no registration at TI.com, no manual downloading and building, I'll
get an Angstrom image today! :slight_smile:

As far as I know, if you use the online builder Narcissus [1] or a demo
image it is not needed.

If you build it manually using BitBake you need to register and download
files from TI to get the recipe to work.

Thanks,

Paul

[1] http://www.angstrom-distribution.org/narcissus/

For DSP stuff only downloading the cgt installer is enough, the new SGX installer is now freely downloadable, but not yet integrated in OE, which should happen this week.

regards,

Koen

I'm a little confused by this. I'm building a system (BeagleBox) based
on OE recipes but not using the same cross compiler. The sgx download
from TI is huge, but the kernel drivers are redistributable, if I'm
reading the license correctly. So I'm wondering:

1. Will the binary OpenGL/ES libraries work given that I'm compiling
everything else with Crosstool-NG?
2. Are the libraries redistributable or must they be acquired manually
by end users by retrieving the entire TI sgx package?
3. Can I repackage the open source drivers to make it possible for users
of my system to grab a smaller package for building? This won't be
necessary if the libraries are not also redistributable since they'd
have to get the big package anyway. OE appears to require that you
download the big package.
4. Are the kernel drivers in the TI sgx package specific to a given
kernel? I'm using the linux-omap-2.6.32 kernel retrieved from the
tmlind git tree. Is this git tree the appropriate kernel for
BeagleBoard? Has this tree been pushed upstream? I thought I'd seen on
this list that the stable 2.6.34 or later had everything from the git
tree pushed to it. But I'm not clear if that's correct or not. I
haven't checked what the validation builds use yet, but it's on my todo
list.

I'd like to use the SGX drivers and OpenGL/ES libs with gnash to have an
open source flash player with hardware acceleration. I *think* this is
possible. OE has a gnash recipe. I'm just not sure gnash can actually
make use of the hardware support via OpenGL.

Thanks for any pointers.

Read the license and docs of the sgx stuff, it has all the answers

Read the license and docs of the sgx stuff, it has all the answers

Well, kind of. The legal stuff (redistribution, etc.) are explained.
The technical answers have been harder to find. Maybe I'm not reading
the right stuff yet.

FWIW, here's what I've found so far.

> 1. Will the binary OpenGL/ES libraries work given that I'm compiling
> everything else with Crosstool-NG?

I couldn't find an answer to this but this is one of those "try it and
see" problems. I'll have to see what issues I come across by using a
different cross compiler. But I have a ways to go before I get to
trying this.

If I have to switch from Crosstool-NG to CodeSourcery I'll do so, but
I'd like to understand why that's necessary. That's part of the reason
I'm doing this little project.

> 2. Are the libraries redistributable or must they be acquired manually
> by end users by retrieving the entire TI sgx package?

Yeah. Boils down to: be a good person and do the right thing (re:
credits, copyrights, etc.). That's not a problem should I decide that
BeagleBox will provide images instead of just a build system.

> 3. Can I repackage the open source drivers to make it possible for users
> of my system to grab a smaller package for building? This won't be
> necessary if the libraries are not also redistributable since they'd
> have to get the big package anyway. OE appears to require that you
> download the big package.

Yes though the existing build for the drivers may make it less optimal
to break it out rather than leave it in the TI distribution. I hacked a
package build for this in BeagleBox to test it. Basically it's easier
to leave it in the TI package for now, though the build fails with my
current config (see next).

> 4. Are the kernel drivers in the TI sgx package specific to a given
> kernel? I'm using the linux-omap-2.6.32 kernel retrieved from the
> tmlind git tree.

Turns out the latest SGX drivers (re: -07) don't build with
linux-omap-2.6.32 as defined in OE. See
http://old.nabble.com/omap3-sgx-modules-do_compile-failed-td29525391.html
My build failed for the same reason.

The -02 version is said to work. The OE recipe link points to the
latest sgx but a little munging of the -07 link finds the -02 release:
http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/gfxsdk/3_01_00_02/index_FDS.html

I haven't verified this one yet. Gotta download it first.

Also, a 2.6.34 kernel may work with the new -07 release but there isn't
a recipe for 2.6.34 for OMAP yet so I'm not sure if that is a valid path
for me yet. If it is it may answer the next question.

Is this git tree the appropriate kernel for
> BeagleBoard? Has this tree been pushed upstream? I thought I'd seen on
> this list that the stable 2.6.34 or later had everything from the git
> tree pushed to it. But I'm not clear if that's correct or not.

Haven't found the authoritative answer on this. But I'm still looking.

  I
> haven't checked what the validation builds use yet, but it's on my todo
> list.

Still on the todo list.

Just thought I'd follow up my own questions in case anyone else found
them useful. I keep notes on this on the BeagleBox bug db:
http://www.graphics-muse.org/bugs/index.php?do=details&task_id=19