>> Where is liboil used?<br>inside jpeg decoder: jpeg_rgb_decoder.c<br>swfdec_buffer.c: swfdec_buffer_queue_peek<br>it's not heavily used in swfdec.<br><br>>> 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'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"><<a href="mailto:paul@thefunnyfish.net">paul@thefunnyfish.net</a>></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>
> Hi,<br>
> Im trying to thumbnail a swf file based on this found at<br>
> <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>
><br>
> #include <stdlib.h><br>
> #include <stdio.h><br>
> #include <swfdec/swfdec.h><br>
> #include <cairo.h><br>
><br>
> void swfdec_player_save (SwfdecPlayer *player, guint width, guint<br>
> height, const char *filename) {<br>
> cairo_surface_t *surface;<br>
> cairo_t *cr;<br>
> surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32, width,<br>
> height);<br>
> cr = cairo_create (surface);<br>
> swfdec_player_render (player, cr);<br>
> cairo_destroy (cr);<br>
> cairo_surface_write_to_png (surface, filename);<br>
> cairo_surface_destroy (surface);<br>
> }<br>
><br>
> int main(int argc, char *argv[]) {<br>
> char *input = argv[1];<br>
> char *output = argv[2];<br>
> SwfdecPlayer *player = swfdec_player_new(NULL);<br>
> SwfdecURL *url = swfdec_url_new_from_input(input);<br>
> swfdec_player_set_url(player, url);<br>
> swfdec_url_free (url);<br>
> swfdec_player_set_size (player, 800, 480);<br>
> swfdec_player_advance(player, swfdec_player_get_next_event (player));<br>
> swfdec_player_save(player, 800, 480, output);<br>
> return 0;<br>
> }<br>
><br>
> Using this i get a blank transparent png output as reported by the<br>
> original poster. Ive also tried the gnome thumbnailer which produces<br>
> the same result. The swf file is a single frame containing just two<br>
> boxes. I cant see anything unusual from any of the debugging output. Im<br>
> not sure where to look for the problem. Im running it on an ARM board<br>
> and using swfdec version 0.8.4. Any help would be much appreciated.<br>
><br>
> Thanks in advance,<br>
> Paul Brooker<br>
> _______________________________________________<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>
><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->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>