So here is the patch series to make blocky.swf work with branch 'as'. Summary: Nguy?n Th?i Ng?c Duy (7): Add a missing else statement Create swfdec_movie_duplicate Implement action CloneSprite with swfdec_movie_duplicate Add action RemoveSprite Add new variables to the target Remove movies with the same name when adding new movie We don't handle replacing movies other than SwfdecGraphicMovie yet libswfdec/swfdec_as_context.c | 6 +++ libswfdec/swfdec_as_interpret.c | 61 ++++++++++++++++++++++++++++++++++- libswfdec/swfdec_movie.c | 48 ++++++++++++++++++++++++++++ libswfdec/swfdec_movie.h | 4 ++- libswfdec/swfdec_sprite_movie.c | 3 +- libswfdec/swfdec_sprite_movie_as.c | 30 +---------------- libswfdec/swfdec_swf_instance.c | 3 +- 7 files changed, 122 insertions(+), 33 deletions(-) CloneSprite/RemoveSprite patches I already posted earlier for fatal_ because I expected it would take longer to debug, but it didn't. Post again for the sake of complete series. Patch 6 is not really great. It should be rewritten for better performance. Any idea? Ah and you need to comment out createEmptyMovieClip because it's not good enough for blocky.swf ;-) -- Duy -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Add-a-missing-else-statement.patch Type: text/x-patch Size: 855 bytes Desc: not available Url : http://lists.freedesktop.org/archives/swfdec/attachments/20070623/a42eea43/attachment.bin -------------- next part -------------- A non-text attachment was scrubbed... Name: 0002-Create-swfdec_movie_duplicate.patch Type: text/x-patch Size: 4594 bytes Desc: not available Url : http://lists.freedesktop.org/archives/swfdec/attachments/20070623/a42eea43/attachment-0001.bin -------------- next part -------------- A non-text attachment was scrubbed... Name: 0003-Implement-action-CloneSprite-with-swfdec_movie_dupli.patch Type: text/x-patch Size: 3256 bytes Desc: not available Url : http://lists.freedesktop.org/archives/swfdec/attachments/20070623/a42eea43/attachment-0002.bin -------------- next part -------------- A non-text attachment was scrubbed... Name: 0004-Add-action-RemoveSprite.patch Type: text/x-patch Size: 3072 bytes Desc: not available Url : http://lists.freedesktop.org/archives/swfdec/attachments/20070623/a42eea43/attachment-0003.bin -------------- next part -------------- A non-text attachment was scrubbed... Name: 0005-Add-new-variables-to-the-target.patch Type: text/x-patch Size: 991 bytes Desc: not available Url : http://lists.freedesktop.org/archives/swfdec/attachments/20070623/a42eea43/attachment-0004.bin -------------- next part -------------- A non-text attachment was scrubbed... Name: 0006-Remove-movies-with-the-same-name-when-adding-new-mov.patch Type: text/x-patch Size: 1361 bytes Desc: not available Url : http://lists.freedesktop.org/archives/swfdec/attachments/20070623/a42eea43/attachment-0005.bin -------------- next part -------------- A non-text attachment was scrubbed... Name: 0007-We-don-t-handle-replacing-movies-other-than-SwfdecGr.patch Type: text/x-patch Size: 1024 bytes Desc: not available Url : http://lists.freedesktop.org/archives/swfdec/attachments/20070623/a42eea43/attachment-0006.bin
Sorry for not reviewing your patches earlier, but my broken laptop kept my brain busy ("buy a new one?" "or not?"). Here's a quick rundown:> 0001-Add-a-missing-else-statement.patch >This should be fixed since 82959bab78752fb764d70c2d60d005a0e9f5ba95.> 0002-Create-swfdec_movie_duplicate.patch > 0003-Implement-action-CloneSprite-with-swfdec_movie_dupli.patch >I'm poking at this now. It seems the most interesting question is: What is copied and what isn't. And for stuff that isn't copied, what's it initialized to. This is probably related to patch 7.> 0004-Add-action-RemoveSprite.patch >This seems pretty easy, when we know which movies get removed. I'll cook up a test consisting of lots of createEmptyMovieClip (), swapDepth(), RemoveSprite calls and see what happens. We might also need a target path lookup function as RemoveSprite seems to operate on the target. Need to test...> 0005-Add-new-variables-to-the-target.patch >Looks correct. I'd love to have the SwfdecFrame struct have target, original_target and local_object (instead of var_object) properties to make setting variables work perfectly. That should make the code a lot cleaner than these loops everywhere. Oh, and this is another obvious candidate for tests...> 0006-Remove-movies-with-the-same-name-when-adding-new-mov.patch >This is definitely wrong. See attached movie81.as test. It seems the movie with the lowest depth is taken if multiple movies have the same name. Could you give a reason for why this was necessary?> 0007-We-don-t-handle-replacing-movies-other-than-SwfdecGr.patch >This touches the "what is copied and what isn't" problem again. Someone should take every member of SwfdecMovie (and SwfdecSpriteMovie) and write a test if it's copied or not. I'm thinking of script properties like color_transform or visible here. I'd be interested in the reasons for this patch, too. Benjamin -------------- next part -------------- A non-text attachment was scrubbed... Name: movie81.as Type: application/x-applix-spreadsheet Size: 367 bytes Desc: not available Url : http://lists.freedesktop.org/archives/swfdec/attachments/20070624/5dee4b1d/attachment.bin
Maybe Matching Threads
- Branch 'as' - 5 commits - libswfdec-gtk/swfdec_playback_alsa.c libswfdec/swfdec_as_interpret.c libswfdec/swfdec_movie.c test/trace
- Branch 'as' - 6 commits - libswfdec/swfdec_as_interpret.c libswfdec/swfdec_movie.c libswfdec/swfdec_sprite_movie_as.c test/trace
- Branch 'as' - libswfdec/swfdec_as_interpret.c
- some patches for swfdec
- [Bug 12794] New: swfdec_text_field_movie assertion on blocky.swf