Pekka Lampila
2007-Nov-15 20:46 UTC
[Swfdec] 2 commits - libswfdec/swfdec_sprite_movie.c test/trace
libswfdec/swfdec_sprite_movie.c | 4 - test/trace/Makefile.am | 3 + test/trace/totalframes.swf |binary test/trace/totalframes.swf.trace | 4 + test/trace/totalframes.xml | 103 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 112 insertions(+), 2 deletions(-) New commits: commit 7c377ba3852ca8c66e5d42bbdec7662ca9b7a4fd Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Thu Nov 15 22:46:09 2007 +0200 Add a test for _totalframes and _framesloaded diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index 1a9640a..ab451a6 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -2309,6 +2309,9 @@ EXTRA_DIST = \ tointeger-various-6.swf.trace \ tointeger-various-7.swf \ tointeger-various-7.swf.trace \ + totalframes.xml \ + totalframes.swf \ + totalframes.swf.trace \ trace_properties.as \ transform.swf \ transform.swf.trace \ diff --git a/test/trace/totalframes.swf b/test/trace/totalframes.swf new file mode 100644 index 0000000..aef7074 Binary files /dev/null and b/test/trace/totalframes.swf differ diff --git a/test/trace/totalframes.swf.trace b/test/trace/totalframes.swf.trace new file mode 100644 index 0000000..ebbeb81 --- /dev/null +++ b/test/trace/totalframes.swf.trace @@ -0,0 +1,4 @@ +5 +5 +0 +0 diff --git a/test/trace/totalframes.xml b/test/trace/totalframes.xml new file mode 100644 index 0000000..d61009c --- /dev/null +++ b/test/trace/totalframes.xml @@ -0,0 +1,103 @@ +<?xml version="1.0"?> +<swf version="6" compressed="1"> + <Header framerate="1" frames="1"> + <size> + <Rectangle left="0" right="4000" top="0" bottom="3000"/> + </size> + <tags> + <DefineSprite objectID="1" frames="5"> + <tags> + <ShowFrame/> + <ShowFrame/> + <ShowFrame/> + <ShowFrame/> + <ShowFrame/> + <End/> + </tags> + </DefineSprite> + <DefineSprite objectID="2" frames="0"> + <tags> + <End/> + </tags> + </DefineSprite> + <PlaceObject2 replace="0" depth="1" objectID="1" name="test1"/> + <PlaceObject2 replace="0" depth="2" objectID="2" name="test2"/> + <DoAction> + <actions> + <Dictionary> + <strings> + <String value="test1"/> + <String value="test2"/> + <String value="_totalframes"/> + <String value="_framesloaded"/> + <String value="FSCommand:quit"/> + <String value=""/> + </strings> + </Dictionary> + <PushData> + <items> + <StackDictionaryLookup index="0"/> + </items> + </PushData> + <GetVariable/> + <PushData> + <items> + <StackDictionaryLookup index="2"/> + </items> + </PushData> + <GetMember/> + <Trace/> + <PushData> + <items> + <StackDictionaryLookup index="0"/> + </items> + </PushData> + <GetVariable/> + <PushData> + <items> + <StackDictionaryLookup index="3"/> + </items> + </PushData> + <GetMember/> + <Trace/> + <PushData> + <items> + <StackDictionaryLookup index="1"/> + </items> + </PushData> + <GetVariable/> + <PushData> + <items> + <StackDictionaryLookup index="2"/> + </items> + </PushData> + <GetMember/> + <Trace/> + <PushData> + <items> + <StackDictionaryLookup index="1"/> + </items> + </PushData> + <GetVariable/> + <PushData> + <items> + <StackDictionaryLookup index="3"/> + </items> + </PushData> + <GetMember/> + <Trace/> + <PushData> + <items> + <StackDictionaryLookup index="4"/> + <StackDictionaryLookup index="5"/> + </items> + </PushData> + <GetURL2 method="64"/> + <EndAction/> + </actions> + </DoAction> + <ShowFrame/> + <End/> + </tags> + </Header> +</swf> commit b1a1801d468a9dfb5524c36b87b43d83cd871e81 Author: Pekka Lampila <pekka.lampila at iki.fi> Date: Thu Nov 15 22:42:59 2007 +0200 Fix _totalframes and _framesloaded for movies without own resource diff --git a/libswfdec/swfdec_sprite_movie.c b/libswfdec/swfdec_sprite_movie.c index bc5768e..6ffdc67 100644 --- a/libswfdec/swfdec_sprite_movie.c +++ b/libswfdec/swfdec_sprite_movie.c @@ -845,7 +845,7 @@ swfdec_sprite_movie_get_frames_loaded (SwfdecSpriteMovie *movie) resource = swfdec_movie_get_own_resource (SWFDEC_MOVIE (movie)); if (resource == NULL) - return 1; + return movie->n_frames; dec = resource->decoder; if (dec == NULL) return -1; @@ -864,7 +864,7 @@ swfdec_sprite_movie_get_frames_total (SwfdecSpriteMovie *movie) resource = swfdec_movie_get_own_resource (SWFDEC_MOVIE (movie)); if (resource == NULL) - return 1; + return movie->n_frames; dec = resource->decoder; if (dec == NULL) return 0;
Benjamin Otte
2007-Nov-29 09:36 UTC
[Swfdec] 2 commits - libswfdec/swfdec_sprite_movie.c test/trace
libswfdec/swfdec_sprite_movie.c | 18 ++++++++++++++---- test/trace/Makefile.am | 9 +++++++++ test/trace/emptymovie-frames-bytes-5.swf |binary test/trace/emptymovie-frames-bytes-5.swf.trace | 4 ++++ test/trace/emptymovie-frames-bytes-6.swf |binary test/trace/emptymovie-frames-bytes-6.swf.trace | 4 ++++ test/trace/emptymovie-frames-bytes-7.swf |binary test/trace/emptymovie-frames-bytes-7.swf.trace | 4 ++++ test/trace/emptymovie-frames-bytes-8.swf |binary test/trace/emptymovie-frames-bytes-8.swf.trace | 4 ++++ test/trace/emptymovie-frames-bytes.as | 9 +++++++++ 11 files changed, 48 insertions(+), 4 deletions(-) New commits: commit 248a6ed57bfcc7942cdb6a3ee1578bf518cf78bb Author: Benjamin Otte <otte at gnome.org> Date: Thu Nov 29 10:32:50 2007 +0100 add test for frames and bytes properties of empty movies diff --git a/test/trace/Makefile.am b/test/trace/Makefile.am index 1a40a31..36360e2 100644 --- a/test/trace/Makefile.am +++ b/test/trace/Makefile.am @@ -804,6 +804,15 @@ EXTRA_DIST = \ empty-stack.as \ empty-stack.swf \ empty-stack.swf.trace \ + emptymovie-frames-bytes-5.swf \ + emptymovie-frames-bytes-5.swf.trace \ + emptymovie-frames-bytes-6.swf \ + emptymovie-frames-bytes-6.swf.trace \ + emptymovie-frames-bytes-7.swf \ + emptymovie-frames-bytes-7.swf.trace \ + emptymovie-frames-bytes-8.swf \ + emptymovie-frames-bytes-8.swf.trace \ + emptymovie-frames-bytes.as \ enumerate.as \ enumerate2-5.swf \ enumerate2-5.swf.trace \ diff --git a/test/trace/emptymovie-frames-bytes-5.swf b/test/trace/emptymovie-frames-bytes-5.swf new file mode 100644 index 0000000..8c30119 Binary files /dev/null and b/test/trace/emptymovie-frames-bytes-5.swf differ diff --git a/test/trace/emptymovie-frames-bytes-5.swf.trace b/test/trace/emptymovie-frames-bytes-5.swf.trace new file mode 100644 index 0000000..fefcb76 --- /dev/null +++ b/test/trace/emptymovie-frames-bytes-5.swf.trace @@ -0,0 +1,4 @@ +undefined +undefined +undefined +undefined diff --git a/test/trace/emptymovie-frames-bytes-6.swf b/test/trace/emptymovie-frames-bytes-6.swf new file mode 100644 index 0000000..9bc1c2d Binary files /dev/null and b/test/trace/emptymovie-frames-bytes-6.swf differ diff --git a/test/trace/emptymovie-frames-bytes-6.swf.trace b/test/trace/emptymovie-frames-bytes-6.swf.trace new file mode 100644 index 0000000..d9ff83f --- /dev/null +++ b/test/trace/emptymovie-frames-bytes-6.swf.trace @@ -0,0 +1,4 @@ +1 +1 +0 +0 diff --git a/test/trace/emptymovie-frames-bytes-7.swf b/test/trace/emptymovie-frames-bytes-7.swf new file mode 100644 index 0000000..d54c0f4 Binary files /dev/null and b/test/trace/emptymovie-frames-bytes-7.swf differ diff --git a/test/trace/emptymovie-frames-bytes-7.swf.trace b/test/trace/emptymovie-frames-bytes-7.swf.trace new file mode 100644 index 0000000..d9ff83f --- /dev/null +++ b/test/trace/emptymovie-frames-bytes-7.swf.trace @@ -0,0 +1,4 @@ +1 +1 +0 +0 diff --git a/test/trace/emptymovie-frames-bytes-8.swf b/test/trace/emptymovie-frames-bytes-8.swf new file mode 100644 index 0000000..a46bb22 Binary files /dev/null and b/test/trace/emptymovie-frames-bytes-8.swf differ diff --git a/test/trace/emptymovie-frames-bytes-8.swf.trace b/test/trace/emptymovie-frames-bytes-8.swf.trace new file mode 100644 index 0000000..d9ff83f --- /dev/null +++ b/test/trace/emptymovie-frames-bytes-8.swf.trace @@ -0,0 +1,4 @@ +1 +1 +0 +0 diff --git a/test/trace/emptymovie-frames-bytes.as b/test/trace/emptymovie-frames-bytes.as new file mode 100644 index 0000000..2e25a0e --- /dev/null +++ b/test/trace/emptymovie-frames-bytes.as @@ -0,0 +1,9 @@ +// makeswf -v 7 -s 200x150 -r 1 -o movie23.swf movie23.as + +createEmptyMovieClip ("a", 0); +trace (a._framesloaded); +trace (a._totalframes); +trace (a.getBytesLoaded()); +trace (a.getBytesTotal()); + +loadMovie ("fscommand:quit", ""); commit 7ab01fd3f9d44f2fe9d020c023d6cf92e011f85b Author: Benjamin Otte <otte at gnome.org> Date: Thu Nov 29 10:31:43 2007 +0100 empty movieclips have 1 frame, not 0 diff --git a/libswfdec/swfdec_sprite_movie.c b/libswfdec/swfdec_sprite_movie.c index 15d6af3..1626ede 100644 --- a/libswfdec/swfdec_sprite_movie.c +++ b/libswfdec/swfdec_sprite_movie.c @@ -842,8 +842,13 @@ swfdec_sprite_movie_get_frames_loaded (SwfdecSpriteMovie *movie) g_return_val_if_fail (SWFDEC_IS_SPRITE_MOVIE (movie), 0); resource = swfdec_movie_get_own_resource (SWFDEC_MOVIE (movie)); - if (resource == NULL) - return movie->n_frames; + if (resource == NULL) { + /* FIXME: can we set n_frames to 1 for movies without sprites instead? */ + if (movie->sprite) + return movie->n_frames; + else + return 1; + } dec = resource->decoder; if (dec == NULL) return -1; @@ -861,8 +866,13 @@ swfdec_sprite_movie_get_frames_total (SwfdecSpriteMovie *movie) g_return_val_if_fail (SWFDEC_IS_SPRITE_MOVIE (movie), 0); resource = swfdec_movie_get_own_resource (SWFDEC_MOVIE (movie)); - if (resource == NULL) - return movie->n_frames; + if (resource == NULL) { + /* FIXME: can we set n_frames to 1 for movies without sprites instead? */ + if (movie->sprite) + return movie->n_frames; + else + return 1; + } dec = resource->decoder; if (dec == NULL) return 0;