add deug message
[swfdec.git] / test / render.c
blob6918ea34875c476a74f679c22189a03d88926fdb
1 #include <stdio.h>
2 #include <fcntl.h>
3 #include <stdio.h>
4 #include <unistd.h>
5 #include <stdlib.h>
6 #include <sys/stat.h>
7 #include <glib.h>
8 #include <glib-object.h>
9 #include <swfdec.h>
10 #include <swfdec_decoder.h>
11 #include <swfdec_render.h>
12 #include <swfdec_sprite.h>
13 #include <swfdec_buffer.h>
14 #include <ucontext.h>
15 #include <sys/mman.h>
17 #if 0
18 void * smash_checker (void * (func) (void *), void *priv);
19 void *go(void *priv);
20 #endif
22 void dump_sprite(SwfdecSprite *s);
24 static void buffer_free (SwfdecBuffer *buffer, void *priv)
26 g_free (buffer->data);
29 int main (int argc, char *argv[])
31 gsize length;
32 int ret;
33 char *fn = "it.swf";
34 SwfdecDecoder *s;
35 int i;
36 char *contents;
37 SwfdecBuffer *buffer;
38 int n_frames;
40 swfdec_init ();
42 if(argc>=2){
43 fn = argv[1];
46 ret = g_file_get_contents (fn, &contents, &length, NULL);
47 if (!ret) {
48 exit(1);
51 s = swfdec_decoder_new();
53 buffer = swfdec_buffer_new_with_data (contents, length);
54 buffer->free = buffer_free;
55 ret = swfdec_decoder_add_buffer(s, buffer);
57 while (ret != SWF_EOF) {
58 ret = swfdec_decoder_parse(s);
59 if (ret == SWF_NEEDBITS) {
60 swfdec_decoder_eof(s);
62 if (ret == SWF_ERROR) {
63 g_print("error while parsing\n");
64 exit(1);
68 swfdec_decoder_get_n_frames(s, &n_frames);
69 for (i=0;i<n_frames;i++){
70 SwfdecBuffer *buffer;
72 swfdec_render_seek (s, i);
73 swfdec_render_iterate (s);
75 buffer = swfdec_render_get_image (s);
76 swfdec_buffer_unref (buffer);
78 buffer = swfdec_render_get_audio (s);
79 swfdec_buffer_unref (buffer);
82 g_object_unref (s);
83 s=NULL;
85 return 0;