Skip to content

Commit 80b4919

Browse files
Add GIF support via libnsgif
1 parent 7284605 commit 80b4919

15 files changed

+1973
-144
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
*.jpg
3838
*.png
3939
*.bmp
40+
*.gif
4041

4142
# ilclient
4243
/libs

Makefile

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
OBJS=omxiv.o omx_image.o omx_render.o soft_image.o ./libnsbmp/libnsbmp.o
1+
OBJS=omxiv.o omx_image.o omx_render.o soft_image.o ./libnsbmp/libnsbmp.o ./libnsgif/libnsgif.o
22
BIN=omxiv.bin
33
LDFLAGS+=-lilclient -ljpeg -lpng
4-
INCLUDES+=-I./libnsbmp -I./libs/ilclient
4+
INCLUDES+=-I./libnsbmp -I./libnsgif -I./libs/ilclient
55

66
ifneq ($(CURL),0)
77
LDFLAGS+= -lcurl

README.md

+3
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ And install with:
3030

3131
* ##### BMPs
3232
- libnsbmp
33+
34+
* ##### GIFs
35+
- libnsgif
3336

3437
## Credits
3538
##### Thanks to:

image_def.h

+50-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,38 @@
1+
/* Copyright (c) 2015, Benjamin Huber
2+
*
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions are met:
7+
* * Redistributions of source code must retain the above copyright
8+
* notice, this list of conditions and the following disclaimer.
9+
* * Redistributions in binary form must reproduce the above copyright
10+
* notice, this list of conditions and the following disclaimer in the
11+
* documentation and/or other materials provided with the distribution.
12+
* * Neither the name of the copyright holder nor the
13+
* names of its contributors may be used to endorse or promote products
14+
* derived from this software without specific prior written permission.
15+
*
16+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
17+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18+
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
20+
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21+
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23+
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24+
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25+
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26+
*/
27+
128
#ifndef IMAGEDEF_H
229
#define IMAGEDEF_H
330

31+
#define INIT_IMAGE { 0, 0, 0, 0, 0}
32+
#define INIT_ANIM_IMAGE { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
33+
34+
#define destroyImage(im) free((im)->pData); (im)->pData = NULL
35+
436
/* Color spaces OMX-Components support */
537
#define COLOR_SPACE_RGB24 0
638
#define COLOR_SPACE_RGBA 1
@@ -14,7 +46,24 @@ typedef struct IMAGE{
1446

1547
unsigned int width;
1648
unsigned int height;
17-
char colorSpace;
49+
unsigned char colorSpace;
1850
} IMAGE;
1951

52+
typedef struct ANIM_IMAGE{
53+
IMAGE *curFrame;
54+
unsigned frameNum;
55+
56+
unsigned char* imData;
57+
size_t size;
58+
59+
void* pExtraData;
60+
int (*decodeNextFrame)(struct ANIM_IMAGE *);
61+
void (*finaliseDecoding)(struct ANIM_IMAGE *);
62+
63+
unsigned int frameCount;
64+
unsigned int frameDelayCs;
65+
int loopCount;
66+
67+
} ANIM_IMAGE;
68+
2069
#endif

libnsgif/COPYING

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
Copyright (C) 2004 Richard Wilson
2+
Copyright (C) 2008 Sean Fox
3+
4+
Permission is hereby granted, free of charge, to any person obtaining a copy
5+
of this software and associated documentation files (the "Software"), to deal
6+
in the Software without restriction, including without limitation the rights
7+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8+
copies of the Software, and to permit persons to whom the Software is
9+
furnished to do so, subject to the following conditions:
10+
11+
* The above copyright notice and this permission notice shall be included in
12+
all copies or substantial portions of the Software.
13+
14+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20+
THE SOFTWARE.

0 commit comments

Comments
 (0)