Does anyone know if there is a fast picture viewer for the Pi that can be hooked up to XBMC? Trying to view my photo collection using XBMC is excruciating slow, but I know that the Pi GPU can render pictures really well as I have seen the Pi sample programs that can do this.
What we really need is a version of omxplayer but for photos. Does anybody know if there is a suitable Pi optimised program that can do this already? And how would one connect it up to XBMC? If there is not one already then maybe we should consider writing a program ourselves to improve the XBMC picture viewer experience. Does anybody know if anyone is doing some work on this? What is the best way to get started?
Thanks
Louis
A fast picture viewer for the Pi and XBMC?
7 posts
- Posts: 47
- Joined: Wed Mar 07, 2012 7:08 am
Hi Louis,
I've been working a couple of days trying to figure out how to use the OpenMAX api for accelerated image decoding. I was able to get the image_decode component working by mimicking what was done in /opt/vc/src/hello_pi/hello_video. Here is the code:
https://github.com/cfavi/hello_viewer
The current code has several limitations:
1. I only tried JPEG
2. I wasn't able to display images larger than x1080. I'm under the impression that the decoder is working fine but the video_render component is not downsizing the images.
Best
Claudio
I've been working a couple of days trying to figure out how to use the OpenMAX api for accelerated image decoding. I was able to get the image_decode component working by mimicking what was done in /opt/vc/src/hello_pi/hello_video. Here is the code:
https://github.com/cfavi/hello_viewer
The current code has several limitations:
1. I only tried JPEG
2. I wasn't able to display images larger than x1080. I'm under the impression that the decoder is working fine but the video_render component is not downsizing the images.
Best
Claudio
- Posts: 2
- Joined: Tue Jul 31, 2012 7:29 pm
- Location: Switzerland
cfavi wrote:1. I only tried JPEG
2. I wasn't able to display images larger than x1080. I'm under the impression that the decoder is working fine but the video_render component is not downsizing the images.
There is an image_resize component. XBMC uses it after the jpeg decode component, so you may get hints from the xbmc code.
- Moderator
- Posts: 3245
- Joined: Wed Aug 17, 2011 7:41 pm
- Location: Cambridge
Hi Claudio,
Your work here looks like it will be very helpful for me. I have a few questions:
- D you have any idea what modifications would need to be done to your code to make it decode a JPEG to a buffer instead of render to video (which is apparently what it is doing, I have not been able to try it out on my pi yet because I do not have a power cable).
- Is there documentation anywhere for how to use the ilclient API or did you just have to guess?
Your work here looks like it will be very helpful for me. I have a few questions:
- D you have any idea what modifications would need to be done to your code to make it decode a JPEG to a buffer instead of render to video (which is apparently what it is doing, I have not been able to try it out on my pi yet because I do not have a power cable).
- Is there documentation anywhere for how to use the ilclient API or did you just have to guess?
cfavi wrote:Hi Louis,
I've been working a couple of days trying to figure out how to use the OpenMAX api for accelerated image decoding. I was able to get the image_decode component working by mimicking what was done in /opt/vc/src/hello_pi/hello_video. Here is the code:
https://github.com/cfavi/hello_viewer
The current code has several limitations:
1. I only tried JPEG
2. I wasn't able to display images larger than x1080. I'm under the impression that the decoder is working fine but the video_render component is not downsizing the images.
Best
Claudio
- Posts: 43
- Joined: Thu Aug 16, 2012 7:22 pm
@dom
thank you the work in xbmc is very useful.
@MattOwnby
For me it has been mostly guess work by looking that the /opt/vc/src/hello_pi/hello_video/ example and the OpenMAX IL spec at http://www.khronos.org/openmax/.
You can read the output of a compenent by using FillThisBuffer().
Check out xbmc image handling in
https://github.com/xbmc/xbmc-rbp/blob/m ... XImage.cpp
I guess that like me you're looking for an accelerated image decode. The only API I found for this is the OpenMAX... unless someone knows an alternative.
thank you the work in xbmc is very useful.
@MattOwnby
For me it has been mostly guess work by looking that the /opt/vc/src/hello_pi/hello_video/ example and the OpenMAX IL spec at http://www.khronos.org/openmax/.
You can read the output of a compenent by using FillThisBuffer().
Check out xbmc image handling in
https://github.com/xbmc/xbmc-rbp/blob/m ... XImage.cpp
I guess that like me you're looking for an accelerated image decode. The only API I found for this is the OpenMAX... unless someone knows an alternative.
- Posts: 2
- Joined: Tue Jul 31, 2012 7:29 pm
- Location: Switzerland
One thing to be aware of is that progressive jpegs are not supported by the hardware.
You'll have to fall back to a slower software decoder like (on arm) for those.
You'll have to fall back to a slower software decoder like (on arm) for those.
- Moderator
- Posts: 3245
- Joined: Wed Aug 17, 2011 7:41 pm
- Location: Cambridge
Thanks to your help in this thread, I've successfully written a program to decode JPEG to a buffer. I'm very excited. I posted my finished product here:
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=33&t=15463
I hope this can help someone. The XBMC source code along with the hello_viewer.c, ilclient.c, and OpenMAX official spec helped greatly.
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=33&t=15463
I hope this can help someone. The XBMC source code along with the hello_viewer.c, ilclient.c, and OpenMAX official spec helped greatly.
- Posts: 43
- Joined: Thu Aug 16, 2012 7:22 pm