libam7xxx-0.1.4 released

Release 0.1.4 of libam7xxx is out, bringing a very nice performance improvement.

Here is the entry from the NEWS file:

News for v0.1.4:
================

  * Improved USB device configuration in order to support more devices
  * Added support for Philips/Sagemcom PicoPix 2330 (Thanks to Grégory
    Lemesre)
  * Fixed verbose debug output
  * Confirmed that libam7xxx works with the Top-Height/TEC PP700 projector
  * Implemented am7xxx_send_image_async()
  * Made am7xxx-play almost twice faster by using am7xxx_send_image_async()
  * Improved documentation
  * Added support for compiling with clang
  * A lot of little fixes for correctness, robustness and portability
  * Renamed am7xxx_mode_switch to am7xxx-modeswitch, added an udev rule for it

Debian packages for i386 and amd64 are available at ao2.it/debian.

In this release am7xxx-play performance almost doubled, by just using the new shiny am7xxx_send_image_async() function, check out the minstat analysis of the benchmark for the details.


CommentsSyndicate content

Hello, I compiled your code

Luca's picture

Hello, I compiled your code with cmake under fedora 19 x64 without any warning. When I run picoproj with my new PicoPix 2055 nothing happens and the projector still shows the Philips logo

$ bin/picoproj -f /home/luca/libam7xxx_test_image_800x480.jpg -F 1 -l 5 -W 800 -H 480
JPEG format
scan_devices: am7xxx device found, index: 0, name: Philips/Sagemcom PicoPix 2055
Native resolution: 800x480

Thanks

Hi Luca, please join the

ao2's picture

Hi Luca,

please join the #am7xxx IRC channel on Freenode or write me an email so we can investigate about your issue with PicoPix 2055.

Ciao, Antonio

Have you ever found the issue

Paolo's picture

Have you ever found the issue with the PicoPix 2055?
Recently philips released a new firmware.

Hi Paolo, the latest code in

ao2's picture

Hi Paolo,

the latest code in the git repository should work with the PicoPix 2055 I have some users who reported success, however I don't know what firmware they were using.

I have only got an Acer C110, so I rely on users' help to support the other models.

Ciao, Antonio

Thanks for the answer, I will

Paolo's picture

Thanks for the answer, I will try the new firmware as soon as I will get my picopix 2055.
One more thing, this project is really relevant well done! I am only wondering if you have ever consider to move the git repository in a more 'community base' environment (i.e., github, bitbucket just to name a few)?
By doing this you will be able not only to follow better bug reports but also to allow your 'community' (end-users, developer, bug reporters...) to discuss common issues and new features. As a developer such things are more than useful.
Finally, as you probably already know you can still keep in sync your local git repository at ao2.it.

Please Paolo, if you can, try

ao2's picture

Please Paolo, if you can, try with the "old" firmware too and let me know. Also knowing the differences between firmwares can be useful (e.g. lsusb -v before and after the upgrade).

I prefer email to web interfaces that's why I tend to avoid web-based issue trackers, I may consider setting up a mailing list to make bug reports public tho.

Thanks, Antonio

By default the brightness for

Anonymous's picture

By default the brightness for the picopix 2055 is very low. I've read in the source code that the power option is disabled. Any change this is fixed. This way it's not usable for presentations. Thanks making this work anyway.

Hi, I disabled power and

ao2's picture

Hi,

I disabled power and zoom for PicoPix 2055 because some user reported that there was a problem with them.

I have to trust users for devices I do not own.

Maybe different firmware versions support different functionalities but I cannot be sure of that.

Can you send me via email the full output of lsusb for the device and also try without the quirks?

Thanks, Antonio

Hi, can someone help me

visnu's picture

Hi,
can someone help me please, i installed all the libam7xxx bin, dev, doc, am7xxx drivers from ao2.it/debian, to run a philips picopix 1020 on xubuntu 1310, then when i do

am7xxx-play -f x11grab -i :0.0

it says:

scan_devices: am7xxx device found, index: 0, name: Philips/Sagemcom PicoPix 1020
cannot find input format
cannot initialize input
am7xxx_play failed

but when i do

am7xxx-play -i http://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_640x3...

i can see the bunny

what am i doing wrong ?
i just want to see a clone of my screen...
did i forget something?

Hi visnu, maybe the binary

ao2's picture

Hi visnu,

maybe the binary packages from ao2.it/debian are not fully compatible with the libav version from your Ubuntu. Try compiling libam7xxx yourself.

Ciao, Antonio

thank you but i don't know

visnu's picture

thank you but i don't know much about compiling, can you tell me more about how to do that please... i don't know how to do many things under linux but i can follow if you explain.
i tried many things, i can see a .MKV movie from my collection doing "am7xxx-play -i file:///home/...mkv" but there is no sound and the movie goes faster than normal play, then i tried 10 other movies, mkv, avi, mp4... and nothing works but the first one even if i unplug and restart the projector.
i can also see some images from the web with "am7xxx-play -i http://..."
but some images work and some other don't and i don't understand why, i don't see any link with the format and size of the image, it is like the movies it looks random, but what works always work... why if i can see one .mkv or .jpg another .mkv or .jpg doesn't show ??? i spent hours and i am still trying...
thanks for your help

Instruction about compiling

ao2's picture

Instruction about compiling are in the HACKING.asciidoc file in the libam7xxx code base. Integrate that info with some web searching.

BTW keep in mind that libam7xxx is just a library to display stuff with our projectors, it's not a complete solution to play movies.

am7xxx-play is an example of a possible application using the library, but it's not complete: it does not decode audio or synchronize to fps. Using it with x11grab usually works fine (when it works at all) but am7xxx-play is not meant to actually play movies by its own.

For further help join the #am7xxx IRC channel on Freenode.

thank you i'm going to try

visnu's picture

thank you i'm going to try that.

I am trying to compile this

Anonymous's picture

I am trying to compile this thing but I cannot. I appreciate any help please. Regards.

me@linux:~/tmp/libam7xxx/build> cmake ../
-- The C compiler identification is GNU 4.8.3
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Found Git: /usr/bin/git (found version "2.1.3") 
-- Found date: /usr/bin/date
-- Generator is: Unix Makefiles
--  - "git archive" will use the date too!
-- Found libusb-1.0:
--  - Includes: /usr/include/libusb-1.0
--  - Libraries: /usr/lib64/libusb-1.0.so
-- Looking for avformat_open_input
-- Looking for avformat_open_input - found
-- Looking for sigaction
-- Looking for sigaction - found
-- Looking for strtok_r
-- Looking for strtok_r - found
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.28") 
-- checking for module 'xcb'
--   found xcb, version 1.11
-- Found XCB: /usr/include  
-- Found libusb-1.0:
--  - Includes: /usr/include/libusb-1.0
--  - Libraries: /usr/lib64/libusb-1.0.so
-- Found Doxygen: /usr/bin/doxygen (found version "1.8.8") 
-- Configuring done
-- Generating done
-- Build files have been written to: /home/me/tmp/libam7xxx/build
me@linux:~/tmp/libam7xxx/build> make     
Scanning dependencies of target am7xxx
[ 11%] Building C object src/CMakeFiles/am7xxx.dir/am7xxx.c.o
[ 22%] Building C object src/CMakeFiles/am7xxx.dir/serialize.c.o                                                                                                                                                                             
[ 33%] Building C object src/CMakeFiles/am7xxx.dir/tools.c.o                                                                                                                                                                                 
Linking C shared library ../lib/libam7xxx.so
[ 33%] Built target am7xxx
Scanning dependencies of target am7xxx-static
[ 44%] Building C object src/CMakeFiles/am7xxx-static.dir/am7xxx.c.o
[ 55%] Building C object src/CMakeFiles/am7xxx-static.dir/serialize.c.o                                                                                                                                                                      
[ 66%] Building C object src/CMakeFiles/am7xxx-static.dir/tools.c.o                                                                                                                                                                          
Linking C static library ../lib/libam7xxx.a
[ 66%] Built target am7xxx-static
Scanning dependencies of target am7xxx-modeswitch
[ 77%] Building C object examples/CMakeFiles/am7xxx-modeswitch.dir/am7xxx-modeswitch.c.o
Linking C executable ../bin/am7xxx-modeswitch
[ 77%] Built target am7xxx-modeswitch
Scanning dependencies of target am7xxx-play
[ 88%] Building C object examples/CMakeFiles/am7xxx-play.dir/am7xxx-play.c.o
/home/me/tmp/libam7xxx/examples/am7xxx-play.c: In function ‘video_input_init’:
/home/me/tmp/libam7xxx/examples/am7xxx-play.c:152:2: warning: implicit declaration of function ‘avformat_close_input’ [-Wimplicit-function-declaration]
  avformat_close_input(&input_format_ctx);
  ^
/home/me/tmp/libam7xxx/examples/am7xxx-play.c:152:2: warning: nested extern declaration of ‘avformat_close_input’ [-Wnested-externs]
/home/me/tmp/libam7xxx/examples/am7xxx-play.c: In function ‘video_output_init’:
/home/me/tmp/libam7xxx/examples/am7xxx-play.c:226:33: error: ‘AV_PIX_FMT_YUVJ420P’ undeclared (first use in this function)
  output_codec_ctx->pix_fmt    = AV_PIX_FMT_YUVJ420P;
                                 ^
/home/me/tmp/libam7xxx/examples/am7xxx-play.c:226:33: note: each undeclared identifier is reported only once for each function it appears in
/home/me/tmp/libam7xxx/examples/am7xxx-play.c:227:33: error: ‘AV_CODEC_ID_MJPEG’ undeclared (first use in this function)
  output_codec_ctx->codec_id   = AV_CODEC_ID_MJPEG;
                                 ^
/home/me/tmp/libam7xxx/examples/am7xxx-play.c: In function ‘am7xxx_play’:
/home/me/tmp/libam7xxx/examples/am7xxx-play.c:309:2: warning: implicit declaration of function ‘av_frame_alloc’ [-Wimplicit-function-declaration]
  picture_raw = av_frame_alloc();
  ^
/home/me/tmp/libam7xxx/examples/am7xxx-play.c:309:2: warning: nested extern declaration of ‘av_frame_alloc’ [-Wnested-externs]
/home/me/tmp/libam7xxx/examples/am7xxx-play.c:309:14: warning: assignment makes pointer from integer without a cast [enabled by default]
  picture_raw = av_frame_alloc();
              ^
/home/me/tmp/libam7xxx/examples/am7xxx-play.c:317:17: warning: assignment makes pointer from integer without a cast [enabled by default]
  picture_scaled = av_frame_alloc();
                 ^
/home/me/tmp/libam7xxx/examples/am7xxx-play.c:404:5: warning: implicit declaration of function ‘avcodec_encode_video2’ [-Wimplicit-function-declaration]
     ret = avcodec_encode_video2(output_ctx.codec_ctx,
     ^
/home/me/tmp/libam7xxx/examples/am7xxx-play.c:404:5: warning: nested extern declaration of ‘avcodec_encode_video2’ [-Wnested-externs]
/home/me/tmp/libam7xxx/examples/am7xxx-play.c:452:2: warning: implicit declaration of function ‘av_frame_free’ [-Wimplicit-function-declaration]
  av_frame_free(&picture_scaled);
  ^
/home/me/tmp/libam7xxx/examples/am7xxx-play.c:452:2: warning: nested extern declaration of ‘av_frame_free’ [-Wnested-externs]
examples/CMakeFiles/am7xxx-play.dir/build.make:54: recipe for target 'examples/CMakeFiles/am7xxx-play.dir/am7xxx-play.c.o' failed
make[2]: *** [examples/CMakeFiles/am7xxx-play.dir/am7xxx-play.c.o] Error 1
CMakeFiles/Makefile2:263: recipe for target 'examples/CMakeFiles/am7xxx-play.dir/all' failed
make[1]: *** [examples/CMakeFiles/am7xxx-play.dir/all] Error 2
Makefile:117: recipe for target 'all' failed

It looks like you are using

ao2's picture

It looks like you are using an older libav version. What version is it?

You may need a patch like the following one, but I don't know if it still applies: 0001-Revert-am7xxx-play-switch-to-avcodec_encode_video2.patch

Contact me on IRC or via email for further questions.

Ciao, Antonio

same issue... on kubuntu

andrea's picture

same issue... on kubuntu 14.04
The deb doesn't work and I did not succeed in manual compiling.
What about the patch? Which is the procedure to apply it?
Thanks,
Andrea

Ok, I manually solved all the

andrea's picture

Ok, I manually solved all the depencies one by one, e.g dowloading and installing libavformat53_0.8.7-1ubuntu2_i386.deb (not a clean procedure, I guess)

Now this is the output:
~/Programmi/picopix-libam$ sudo am7xxx-play -f x11grab -i :0.0
scan_devices: am7xxx device found, index: 0, name: Philips/Sagemcom PicoPix 1020
cannot find input format
cannot initialize input
am7xxx_play failed

What can I do?
Thanks

And this is the problem when

andrea's picture

And this is the problem when I try to compile by myself:

~/Programmi/picopix-libam/libam7xxx/build$ make
[ 33%] Built target am7xxx
[ 66%] Built target am7xxx-static
[ 77%] Built target am7xxx-modeswitch
Linking C executable ../bin/am7xxx-play
CMakeFiles/am7xxx-play.dir/am7xxx-play.c.o: nella funzione "am7xxx_play":
am7xxx-play.c:(.text+0x719): riferimento non definito a "av_frame_alloc"
am7xxx-play.c:(.text+0x762): riferimento non definito a "av_frame_alloc"
am7xxx-play.c:(.text+0xc80): riferimento non definito a "av_frame_free"
am7xxx-play.c:(.text+0xc8e): riferimento non definito a "av_frame_free"
collect2: error: ld returned 1 exit status
make[2]: *** [bin/am7xxx-play] Errore 1
make[1]: *** [examples/CMakeFiles/am7xxx-play.dir/all] Errore 2
make: *** [all] Errore 2

No way :(

Post new comment

The content of this field is kept private and will not be shown publicly. If you have a Gravatar account associated with the e-mail address you provide, it will be used to display your avatar.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
H
V
N
d
s
Q
Enter the code without spaces.