&gt;&gt; Where is liboil used?<br>inside jpeg decoder: jpeg_rgb_decoder.c<br>swfdec_buffer.c: swfdec_buffer_queue_peek<br>it&#39;s not heavily used in swfdec.<br><br>&gt;&gt; The first differences are the swfdec_matrix_ensure_invertible failures which dont appear on the host output. <br>
<br>Maybe you need to check if your ARM board could support float point numbers correctly. Take a look at function swfdec_matrix_ensure_invertible(), it&#39;s not big.<br><br>--zou<br><br><br><div class="gmail_quote">On Thu, Jan 21, 2010 at 7:29 AM, Paul Brooker <span dir="ltr">&lt;<a href="mailto:paul@thefunnyfish.net">paul@thefunnyfish.net</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div class="h5">Paul Brooker wrote:<br>
&gt; Hi,<br>
&gt; Im trying to thumbnail a swf file based on this found at<br>
&gt; <a href="http://www.mail-archive.com/swfdec@lists.freedesktop.org/msg00821.html" target="_blank">http://www.mail-archive.com/swfdec@lists.freedesktop.org/msg00821.html</a>.<br>
&gt;<br>
&gt; #include &lt;stdlib.h&gt;<br>
&gt; #include &lt;stdio.h&gt;<br>
&gt; #include &lt;swfdec/swfdec.h&gt;<br>
&gt; #include &lt;cairo.h&gt;<br>
&gt;<br>
&gt; void swfdec_player_save (SwfdecPlayer *player, guint width, guint<br>
&gt; height, const char *filename) {<br>
&gt;      cairo_surface_t *surface;<br>
&gt;      cairo_t *cr;<br>
&gt;      surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width,<br>
&gt; height);<br>
&gt;      cr = cairo_create (surface);<br>
&gt;      swfdec_player_render (player, cr);<br>
&gt;      cairo_destroy (cr);<br>
&gt;      cairo_surface_write_to_png (surface, filename);<br>
&gt;      cairo_surface_destroy (surface);<br>
&gt; }<br>
&gt;<br>
&gt; int main(int argc, char *argv[]) {<br>
&gt;      char *input = argv[1];<br>
&gt;      char *output = argv[2];<br>
&gt;      SwfdecPlayer *player = swfdec_player_new(NULL);<br>
&gt;      SwfdecURL *url = swfdec_url_new_from_input(input);<br>
&gt;      swfdec_player_set_url(player, url);<br>
&gt;      swfdec_url_free (url);<br>
&gt;      swfdec_player_set_size (player, 800, 480);<br>
&gt;      swfdec_player_advance(player, swfdec_player_get_next_event (player));<br>
&gt;      swfdec_player_save(player, 800, 480, output);<br>
&gt;      return 0;<br>
&gt; }<br>
&gt;<br>
&gt; Using this i get a blank transparent png output as reported by the<br>
&gt; original poster.  Ive also tried the gnome thumbnailer which produces<br>
&gt; the same result. The swf file is a single frame containing just two<br>
&gt; boxes. I cant see anything unusual from any of the debugging output.  Im<br>
&gt; not sure where to look for the problem. Im running it on an ARM board<br>
&gt; and using swfdec version 0.8.4. Any help would be much appreciated.<br>
&gt;<br>
&gt; Thanks in advance,<br>
&gt; Paul Brooker<br>
&gt; _______________________________________________<br>
&gt; Swfdec mailing list<br>
&gt; <a href="mailto:Swfdec@lists.freedesktop.org">Swfdec@lists.freedesktop.org</a><br>
&gt; <a href="http://lists.freedesktop.org/mailman/listinfo/swfdec" target="_blank">http://lists.freedesktop.org/mailman/listinfo/swfdec</a><br>
&gt;<br>
<br>
</div></div>ok, having looked a bit further into this ive got it working on my host and have compared the debugging output with that of the arm board. The only<br>
differences towards the end of the debugging output.<br>
<br>
Host debug :<br>
<br>
SWFDEC: LOG  : swfdec_sprite_movie.c(215): swfdec_sprite_movie_perform_place:   matrix = { 1 0, 0 1 } + { 0 0 }<br>
SWFDEC: DEBUG: swfdec_movie.c(917): swfdec_movie_set_property: inserting SwfdecGraphicMovie 0x8939018 into SwfdecSpriteMovie 0x88ac130<br>
SWFDEC: LOG  : swfdec_as_context.c(199): swfdec_as_context_try_use_mem: + 448 bytes, total  243918 ( 244206 since GC)<br>
SWFDEC: LOG  : swfdec_sprite_movie.c(379): swfdec_sprite_movie_perform_one_action: 0x88ac130: executing 2th tag ShowFrame in frame 0<br>
SWFDEC: LOG  : swfdec_stream_target.c(120): swfdec_stream_target_close: close on file:////opt/x86/box.swf<br>
SWFDEC: LOG  : swfdec_player.c(453): swfdec_player_add_action: adding action  0<br>
SWFDEC: DEBUG: swfdec_player.c(1988): swfdec_player_unlock_soft: UNLOCK<br>
SWFDEC: LOG  : swfdec_movie.c(122): swfdec_movie_invalidate: invalidating SwfdecGraphicMovie  at end<br>
SWFDEC: LOG  : swfdec_player.c(2490): swfdec_player_invalidate:   invalidating 0 0  750 430<br>
SWFDEC: DEBUG: swfdec_player.c(2506): swfdec_player_invalidate: toplevel invalidation of 0 0  750 430 - now 1 subregions<br>
SWFDEC: LOG  : swfdec_movie.c(122): swfdec_movie_invalidate: invalidating SwfdecSpriteMovie  at end<br>
SWFDEC: LOG  : swfdec_movie.c(122): swfdec_movie_invalidate: invalidating SwfdecGraphicMovie  at end<br>
SWFDEC: LOG  : swfdec_player.c(2490): swfdec_player_invalidate:   invalidating 0 0  750 430<br>
SWFDEC: DEBUG: swfdec_player.c(2506): swfdec_player_invalidate: toplevel invalidation of 0 0  750 430 - now 1 subregions<br>
SWFDEC: INFO : swfdec_player.c(3141): swfdec_player_render_with_renderer: === 0x88a2150: START RENDER ===<br>
SWFDEC: LOG  : swfdec_movie.c(798): swfdec_movie_render: transforming movie, transform: 1 1  0 0   0 0<br>
SWFDEC: LOG  : swfdec_movie.c(1309): swfdec_movie_do_render: rendering 0x8939018 with depth -16383<br>
SWFDEC: LOG  : swfdec_movie.c(798): swfdec_movie_render: transforming movie, transform: 1 1  0 0   0 0<br>
SWFDEC: LOG  : swfdec_color.c(102): swfdec_color_apply_transform: in rgba 136,136,136,255<br>
SWFDEC: LOG  : swfdec_color.c(114): swfdec_color_apply_transform: out rgba 136,136,136,255<br>
SWFDEC: LOG  : swfdec_color.c(102): swfdec_color_apply_transform: in rgba 0,255,255,255<br>
SWFDEC: LOG  : swfdec_color.c(114): swfdec_color_apply_transform: out rgba 0,255,255,255<br>
SWFDEC: INFO : swfdec_player.c(3154): swfdec_player_render_with_renderer: === 0x88a2150: END RENDER ===<br>
<br>
ARM board debug:<br>
<br>
SWFDEC: LOG  : swfdec_sprite_movie.c(215): swfdec_sprite_movie_perform_place:   matrix = { 1 0, 0 1 } + { 0 0 }<br>
SWFDEC: DEBUG: swfdec_movie.c(917): swfdec_movie_set_property: inserting SwfdecGraphicMovie 0x75008 into SwfdecSpriteMovie 0x28128<br>
SWFDEC: LOG  : swfdec_as_context.c(199): swfdec_as_context_try_use_mem: + 448 bytes, total  150299 ( 150323 since GC)<br>
SWFDEC: INFO : swfdec_color.c(243): swfdec_matrix_ensure_invertible: matrix not invertible, adding epsilon to smallest member<br>
SWFDEC: INFO : swfdec_color.c(243): swfdec_matrix_ensure_invertible: matrix not invertible, adding epsilon to smallest member<br>
SWFDEC: LOG  : swfdec_sprite_movie.c(379): swfdec_sprite_movie_perform_one_action: 0x28128: executing 2th tag ShowFrame in frame 0<br>
SWFDEC: LOG  : swfdec_stream_target.c(120): swfdec_stream_target_close: close on file:////home/plg/box.swf<br>
SWFDEC: LOG  : swfdec_player.c(453): swfdec_player_add_action: adding action  0<br>
SWFDEC: DEBUG: swfdec_player.c(1988): swfdec_player_unlock_soft: UNLOCK<br>
SWFDEC: LOG  : swfdec_movie.c(122): swfdec_movie_invalidate: invalidating SwfdecGraphicMovie  at end<br>
SWFDEC: LOG  : swfdec_player.c(2490): swfdec_player_invalidate:   invalidating 0 0  1 1<br>
SWFDEC: DEBUG: swfdec_player.c(2506): swfdec_player_invalidate: toplevel invalidation of 0 0  1 1 - now 1 subregions<br>
SWFDEC: LOG  : swfdec_movie.c(122): swfdec_movie_invalidate: invalidating SwfdecSpriteMovie  at end<br>
SWFDEC: LOG  : swfdec_movie.c(122): swfdec_movie_invalidate: invalidating SwfdecGraphicMovie  at end<br>
SWFDEC: LOG  : swfdec_player.c(2490): swfdec_player_invalidate:   invalidating 0 0  1 1<br>
SWFDEC: DEBUG: swfdec_player.c(2506): swfdec_player_invalidate: toplevel invalidation of 0 0  1 1 - now 1 subregions<br>
SWFDEC: INFO : swfdec_player.c(3141): swfdec_player_render_with_renderer: === 0x1c0c0: START RENDER ===<br>
SWFDEC: LOG  : swfdec_movie.c(798): swfdec_movie_render: transforming movie, transform: 1 1  0 0   0 0<br>
SWFDEC: LOG  : swfdec_movie.c(1309): swfdec_movie_do_render: rendering 0x75008 with depth -16383<br>
SWFDEC: LOG  : swfdec_movie.c(798): swfdec_movie_render: transforming movie, transform: 1.52588e-05 1.52588e-05  0 0   0 0<br>
SWFDEC: LOG  : swfdec_color.c(102): swfdec_color_apply_transform: in rgba 136,136,136,255<br>
SWFDEC: LOG  : swfdec_color.c(114): swfdec_color_apply_transform: out rgba 136,136,136,255<br>
SWFDEC: LOG  : swfdec_color.c(102): swfdec_color_apply_transform: in rgba 0,255,255,255<br>
SWFDEC: LOG  : swfdec_color.c(114): swfdec_color_apply_transform: out rgba 0,255,255,255<br>
SWFDEC: INFO : swfdec_player.c(3154): swfdec_player_render_with_renderer: === 0x1c0c0: END RENDER ===<br>
<br>
The first differences are the swfdec_matrix_ensure_invertible failures which dont appear on the host output.  From then on the invalidating regions<br>
are incorrect and are set to 0,0-&gt;1,1.  Im not clear on the inner workings so not sure what is calling the functions incorrectly.  Im suspicious of<br>
liboil as the oil_test produces failures of some conversion functions.  Where is liboil used?<br>
<div><div></div><div class="h5">_______________________________________________<br>
Swfdec mailing list<br>
<a href="mailto:Swfdec@lists.freedesktop.org">Swfdec@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/swfdec" target="_blank">http://lists.freedesktop.org/mailman/listinfo/swfdec</a><br>
</div></div></blockquote></div><br>