Benjamin Otte
2007-Nov-15 14:38 UTC
[Swfdec] 2 commits - libswfdec-gtk/swfdec_gtk_loader.c player/swfplay.c
libswfdec-gtk/swfdec_gtk_loader.c | 35 +++++++++++++++++------------------ player/swfplay.c | 5 ++++- 2 files changed, 21 insertions(+), 19 deletions(-) New commits: commit 78b95d4dd8818ce8ee8f6c3a01a56178d6f20f40 Author: Benjamin Otte <otte at gnome.org> Date: Thu Nov 15 15:35:11 2007 +0100 add max-runtime switch to set maximum runtime. Set default runtime to 0 diff --git a/player/swfplay.c b/player/swfplay.c index 7a0985b..79978be 100644 --- a/player/swfplay.c +++ b/player/swfplay.c @@ -103,6 +103,7 @@ main (int argc, char *argv[]) { int delay = 0; int speed = 100; + int max_runtime = 0; SwfdecLoader *loader; SwfdecPlayer *player; GError *error = NULL; @@ -117,6 +118,7 @@ main (int argc, char *argv[]) { "always-gc", 'g', 0, G_OPTION_ARG_NONE, &gc, "run the garbage collector as often as possible", NULL }, { "delay", 'd', 0, G_OPTION_ARG_INT, &delay, "make loading of resources take time", "SECS" }, { "image", 'i', 0, G_OPTION_ARG_NONE, &use_image, "use an intermediate image surface for drawing", NULL }, + { "max-runtime", 0, 0, G_OPTION_ARG_INT, &max_runtime, "maximum time scripts run before aborting the player", "SECS" }, { "no-scripts", 0, 0, G_OPTION_ARG_NONE, &no_scripts, "don't execute scripts affecting the application", NULL }, { "no-sound", 'n', 0, G_OPTION_ARG_NONE, &no_sound, "don't play sound", NULL }, { "redraws", 'r', 0, G_OPTION_ARG_NONE, &redraws, "show redraw regions", NULL }, @@ -157,7 +159,8 @@ main (int argc, char *argv[]) loop = g_main_loop_new (NULL, TRUE); player = swfdec_gtk_player_new (NULL); /* this allows the player to continue fine when running in gdb */ - swfdec_player_set_maximum_runtime (player, 0); + if (max_runtime >= 0) + swfdec_player_set_maximum_runtime (player, max_runtime * 1000); if (gc) g_object_set (player, "memory-until-gc", (gulong) 0, NULL); if (trace) commit 2fdcae01caf5f937d99b0205273778d70ac998cb Author: Benjamin Otte <otte at gnome.org> Date: Thu Nov 15 15:33:24 2007 +0100 set size only once diff --git a/libswfdec-gtk/swfdec_gtk_loader.c b/libswfdec-gtk/swfdec_gtk_loader.c index fb93cf9..92f01f7 100644 --- a/libswfdec-gtk/swfdec_gtk_loader.c +++ b/libswfdec-gtk/swfdec_gtk_loader.c @@ -75,6 +75,22 @@ G_DEFINE_TYPE (SwfdecGtkLoader, swfdec_gtk_loader, SWFDEC_TYPE_FILE_LOADER) #ifdef HAVE_HTTP static void +swfdec_gtk_loader_set_size (SwfdecGtkLoader *gtk) +{ + const char *s = soup_message_get_header (gtk->message->response_headers, "Content-Length"); + unsigned long l; + char *end; + + if (s == NULL) + return; + + errno = 0; + l = strtoul (s, &end, 10); + if (errno == 0 && *end == 0 && l <= G_MAXLONG) + swfdec_loader_set_size (SWFDEC_LOADER (gtk), l); +} + +static void swfdec_gtk_loader_ensure_open (SwfdecGtkLoader *gtk) { char *real_uri; @@ -83,6 +99,7 @@ swfdec_gtk_loader_ensure_open (SwfdecGtkLoader *gtk) return; real_uri = soup_uri_to_string (soup_message_get_uri (gtk->message), FALSE); + swfdec_gtk_loader_set_size (gtk); swfdec_loader_open (SWFDEC_LOADER (gtk), real_uri); gtk->opened = TRUE; g_free (real_uri); @@ -101,22 +118,6 @@ swfdec_gtk_loader_push (SoupMessage *msg, gpointer loader) } static void -swfdec_gtk_loader_headers (SoupMessage *msg, gpointer loader) -{ - const char *s = soup_message_get_header (msg->response_headers, "Content-Length"); - unsigned long l; - char *end; - - if (s == NULL) - return; - - errno = 0; - l = strtoul (s, &end, 10); - if (errno == 0 && *end == 0 && l <= G_MAXLONG) - swfdec_loader_set_size (loader, l); -} - -static void swfdec_gtk_loader_finished (SoupMessage *msg, gpointer loader) { if (SOUP_STATUS_IS_SUCCESSFUL (msg->status_code)) { @@ -136,7 +137,6 @@ swfdec_gtk_loader_dispose (GObject *object) if (gtk->message) { g_signal_handlers_disconnect_by_func (gtk->message, swfdec_gtk_loader_push, gtk); - g_signal_handlers_disconnect_by_func (gtk->message, swfdec_gtk_loader_headers, gtk); g_signal_handlers_disconnect_by_func (gtk->message, swfdec_gtk_loader_finished, gtk); g_object_unref (gtk->message); gtk->message = NULL; @@ -166,7 +166,6 @@ swfdec_gtk_loader_load (SwfdecLoader *loader, SwfdecLoader *parent, swfdec_url_get_url (url)); soup_message_set_flags (gtk->message, SOUP_MESSAGE_OVERWRITE_CHUNKS); g_signal_connect (gtk->message, "got-chunk", G_CALLBACK (swfdec_gtk_loader_push), gtk); - g_signal_connect (gtk->message, "got-headers", G_CALLBACK (swfdec_gtk_loader_headers), gtk); g_signal_connect (gtk->message, "finished", G_CALLBACK (swfdec_gtk_loader_finished), gtk); if (data) soup_message_set_request (gtk->message, "appliation/x-www-urlencoded",
Maybe Matching Threads
- 15 commits - configure.ac doc/swfdec-sections.txt libswfdec-gtk/Makefile.am libswfdec-gtk/swfdec_gtk_loader.c libswfdec/Makefile.am libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_file_loader.c libswfdec/swfdec_file_loader.h
- Branch 'vivi' - 60 commits - libswfdec-gtk/swfdec_gtk_loader.c libswfdec/Makefile.am libswfdec/swfdec_as_array.c libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame_internal.h libswfdec/swfdec_as_interpret.c
- 5 commits - libswfdec/swfdec_as_object.c NEWS player/swfplay.c
- 4 commits - libswfdec-gtk/swfdec_gtk_loader.c
- 6 commits - doc/Makefile.am doc/swfdec-sections.txt libswfdec-gtk/swfdec_gtk_player.c libswfdec/swfdec_as_context.c libswfdec/swfdec_as_context.h libswfdec/swfdec_as_internal.h libswfdec/swfdec_player.c libswfdec/swfdec_player.h