static int youtube_play_first_in_timeout(void *userdata) { remove_timer(sp_YoutubePlay_FirstIn_Timer); sp_YoutubePlay_FirstIn_Timer = NULL; youtube_play_show_sliderbar(9000); gif_start(); app_send_play(GXMSG_PLAYER_PLAY, (void *)(&g_youtube_playParm)); return 0; }
int main() { int handle; handle = gif_start("200x200", 200, 200); gif_frame(); gif_square(0, 0, 50, "blue"); gif_frame(); gif_square(50, 50, 50, "red"); gif_frame(); gif_square(100, 100, 50, "yellow"); gif_frame(); gif_square(150, 150, 50, "green"); gif_stop(handle); return 0; }
/* ======================================================================== */ int gif_write ( FILE *f, uint_8 *vid, int x_dim, int y_dim, uint_8 pal[][3], int n_cols ) { gif_t gif; int wrote = 0, ret; /* -------------------------------------------------------------------- */ /* Start the GIF. */ /* -------------------------------------------------------------------- */ ret = gif_start(&gif, f, x_dim, y_dim, pal, n_cols, 0); wrote += ret; if (ret < 0) return -1; /* -------------------------------------------------------------------- */ /* Send the image. */ /* -------------------------------------------------------------------- */ ret = gif_wr_frame_s(&gif, vid); wrote += ret; if (ret < 0) return -1; /* -------------------------------------------------------------------- */ /* Terminate it. */ /* -------------------------------------------------------------------- */ ret = gif_finish(&gif); wrote += ret; if (ret < 0) return -1; return wrote; }
int main(int argc, char *argv[]) { FILE *fi, *fo; uint_8 bbox[8][4]; int fr, out_fr = 0; int flag; int i, j; gif_t gif; int prev_gif_time, curr_gif_time, delay; int ret, wrote = 0, skip = 0; int early = 0; int same = 0; int n_cols = 16; int mode = 0; if (argc == 2 && argv[1][0] == '-' && argv[1][1] == '\0') { mode = 1; argc--; argv++; } if (argc != 1) { fprintf(stderr, "%s [-]\n", argv[0]); exit(1); } fo = fopen("rman.gif", "wb"); if (!fo) { perror("fopen()"); fprintf(stderr, "Could not open %s for writing\n", argv[2]); exit(1); } ret = gif_start(&gif, fo, 16, 16, palette, 2, 1); if (ret < 0) { fprintf(stderr, "Error starting GIF file %s\n", argv[2]); exit(1); } wrote += ret; printf("Image compression...\n"); fflush(stdout); for (fr = 0; fr < LEN; fr++) { int r; r = script[fr]; if (r < 0) { r = ~r; for (i = 0; i < 16; i++) for (j = 0; j < 16; j++) prev[i*16 + j] = rman[r][i][15 - j] == '#'; } else { for (i = 0; i < 16; i++) for (j = 0; j < 16; j++) prev[i*16 + j] = rman[r][i][j] == '#'; } ret = gif_wr_frame_m(&gif, prev, 10, mode); if (ret == 0) { memcpy(prev, curr, 16*16); continue; } if (ret < 0) { fprintf(stderr, "Error writing frame %d of GIF file %s\n", fr - 1, argv[2]); exit(1); } wrote += ret; memcpy(prev, curr, 16*16); skip = 0; out_fr++; } ret = gif_finish(&gif); if (ret < 0) { fprintf(stderr, "Error terminating GIF file %s\n", argv[2]); exit(1); } wrote += ret; fclose(fo); printf("Encoded %d unique frames\n", out_fr); printf("Encoded %d bytes (%d bytes/source frame, %d bytes/unique frame)\n", wrote, wrote / fr, wrote / out_fr); printf("GIF frame type breakdown:\n"); for (i = 0; i < 6; i++) printf("%-65s%10d\n", typedesc[i], gif_best_stat[i]); return 0; }