mplayerplug-in-cvs Mailing List for mplayerplug-in for mozilla (Page 60)
Brought to you by:
kdekorte
You can subscribe to this list here.
2003 |
Jan
(2) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(19) |
Feb
(86) |
Mar
(186) |
Apr
(60) |
May
(12) |
Jun
(30) |
Jul
(16) |
Aug
(19) |
Sep
(33) |
Oct
(17) |
Nov
(26) |
Dec
(32) |
2005 |
Jan
(39) |
Feb
(15) |
Mar
(9) |
Apr
(11) |
May
(14) |
Jun
(24) |
Jul
(79) |
Aug
(69) |
Sep
(22) |
Oct
(76) |
Nov
(40) |
Dec
(15) |
2006 |
Jan
(73) |
Feb
(61) |
Mar
(29) |
Apr
(26) |
May
(19) |
Jun
(30) |
Jul
(16) |
Aug
(38) |
Sep
(32) |
Oct
(29) |
Nov
(23) |
Dec
(20) |
2007 |
Jan
(19) |
Feb
(13) |
Mar
(10) |
Apr
(2) |
May
(9) |
Jun
(7) |
Jul
(4) |
Aug
(18) |
Sep
(5) |
Oct
(6) |
Nov
(10) |
Dec
(21) |
2008 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
(10) |
Jun
(7) |
Jul
(3) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(2) |
2009 |
Jan
|
Feb
(3) |
Mar
|
Apr
(3) |
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
2010 |
Jan
(4) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <kde...@us...> - 2004-02-12 20:57:04
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4350 Modified Files: INSTALL README Log Message: doc fixups Index: INSTALL =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/INSTALL,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** INSTALL 5 Feb 2004 00:34:44 -0000 1.1.1.1 --- INSTALL 12 Feb 2004 20:51:55 -0000 1.2 *************** *** 1,4 **** --- 1,15 ---- INSTALL + The Mozilla developement files are needed to compile this code + + To get the Mozilla development files there are two options + 1. mozilla-devel package (includes pkg-config files) + 2. gecko-sdk + + 1. The mozilla-devel package may come with your distribution and it is an optional install try using apt-get or yum or your package installer + 2. The gecko-sdk can be obtained from mozilla.org (version 1.6 or higher of the SDK are the only ones that work) + http://ftp.mozilla.org/pub/mozilla.org/mozilla/releases/mozilla1.6/ + Extract the tar file in some directory + OBTAINING: *************** *** 19,23 **** --- 30,40 ---- In the mplayerplug-in directory type + + if you are using mozilla-devel do the following ./configure + + if you are using gecko-sdk do the following + ./configure --with-gecko-sdk=/path/to/gecko-sdk (replace /path/to with the correct value) + make Index: README =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/README,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** README 5 Feb 2004 00:34:45 -0000 1.1.1.1 --- README 12 Feb 2004 20:51:55 -0000 1.2 *************** *** 7,15 **** See INSTALL on how to build and install ! This plugin was developed on a RedHat 8.0 based system and has been tested with Mozilla 1.2.1 and Konqueror 3.0 browser. Build Requirements: XFree86 Development package (RPM XFree86-devel) Xpm libraries (RPM XFree86-libs) Runtime Requires: --- 7,16 ---- See INSTALL on how to build and install ! This plugin was developed on a RedHat 8.0/9.0/FC1 based system and has been tested with Mozilla 1.6 and FireFox Build Requirements: XFree86 Development package (RPM XFree86-devel) Xpm libraries (RPM XFree86-libs) + Mozilla Development package (RPM mozilla-devel) or gecko-sdk Runtime Requires: |
From: <kde...@us...> - 2004-02-12 20:57:03
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in/Source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4350/Source Modified Files: plugin-threads.cpp Log Message: doc fixups Index: plugin-threads.cpp =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/plugin-threads.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** plugin-threads.cpp 12 Feb 2004 17:20:18 -0000 1.2 --- plugin-threads.cpp 12 Feb 2004 20:51:55 -0000 1.3 *************** *** 195,199 **** snprintf(instance->td->argv[i++], 1024, "-nofs"); /* no full screen */ snprintf(instance->td->argv[i++], 1024, "-slave"); /* no full screen */ ! snprintf(instance->td->argv[i++], 1024, "-quiet"); memset(instance->td->argv[i++], '\0', 1); --- 195,199 ---- snprintf(instance->td->argv[i++], 1024, "-nofs"); /* no full screen */ snprintf(instance->td->argv[i++], 1024, "-slave"); /* no full screen */ ! snprintf(instance->td->argv[i++], 1024, "-cookies"); snprintf(instance->td->argv[i++], 1024, "-quiet"); memset(instance->td->argv[i++], '\0', 1); |
From: <kde...@us...> - 2004-02-12 17:25:20
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18100 Modified Files: ChangeLog Makefile.in configure configure.in Log Message: Configure fixes, added --with-gecko-sdk option if pkg-config does not work Fixed bug where first file in playlist was not being cleaned up Index: ChangeLog =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/ChangeLog,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ChangeLog 10 Feb 2004 20:43:25 -0000 1.5 --- ChangeLog 12 Feb 2004 17:20:18 -0000 1.6 *************** *** 1,3 **** --- 1,6 ---- Development + Fix crash and double play with American Idol site + Configure fixes, added --with-gecko-sdk option if pkg-config does not work + Fixed bug where first file in playlist was not being cleaned up 2.0 Massive code reorganization to get javascript commands to work Index: Makefile.in =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Makefile.in,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.in 7 Feb 2004 14:15:47 -0000 1.2 --- Makefile.in 12 Feb 2004 17:20:18 -0000 1.3 *************** *** 12,17 **** CC= @CC@ ! OPTIMIZER= -g1 -O1 ! CFLAGS= -Wall @CFLAGS@ -DXP_UNIX -DMOZ_X11 @MOZPLUG_CFLAGS@ -Iinclude -fPIC @X_CFLAGS@ $(OPTIMIZER) LDFLAGS= @LIBS@ @X_LIBS@ @MOZPLUG_LIBS@ LIBOBJS= @LIBOBJS@ --- 12,16 ---- CC= @CC@ ! CFLAGS= -Wall @CFLAGS@ -DXP_UNIX -DMOZ_X11 @MOZPLUG_CFLAGS@ -Iinclude -fPIC @X_CFLAGS@ @GECKO_DEFINES@ LDFLAGS= @LIBS@ @X_LIBS@ @MOZPLUG_LIBS@ LIBOBJS= @LIBOBJS@ *************** *** 92,96 **** if [ ! -d /usr/lib/mozilla/plugins ]; then mkdir /usr/lib/mozilla/plugins; fi $(INSTALL) $(SHAREDTARGET) /usr/lib/mozilla/plugins ! if [ ! -d /usr/lib/mozilla/componets ]; then mkdir /usr/lib/mozilla/components; fi $(INSTALL) Source/nsIScriptableMplayerPlugin.xpt /usr/lib/mozilla/components/mplayerplug-in.xpt --- 91,95 ---- if [ ! -d /usr/lib/mozilla/plugins ]; then mkdir /usr/lib/mozilla/plugins; fi $(INSTALL) $(SHAREDTARGET) /usr/lib/mozilla/plugins ! if [ ! -d /usr/lib/mozilla/components ]; then mkdir /usr/lib/mozilla/components; fi $(INSTALL) Source/nsIScriptableMplayerPlugin.xpt /usr/lib/mozilla/components/mplayerplug-in.xpt Index: configure =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/configure,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** configure 5 Feb 2004 00:34:44 -0000 1.1.1.1 --- configure 12 Feb 2004 17:20:18 -0000 1.2 *************** *** 312,316 **** #endif" ! ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT CC CFLAGS ac_ct_CC INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PKG_CONFIG MOZPLUG_CFLAGS MOZPLUG_LIBS CPP X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS EGREP LIBOBJS LTLIBOBJS' ac_subst_files='' --- 312,316 ---- #endif" ! ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT CC CFLAGS ac_ct_CC INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA GECKO_SDK_PREFIX GECKO_DEFINES PKG_CONFIG MOZPLUG_CFLAGS MOZPLUG_LIBS CPP X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS EGREP LIBOBJS LTLIBOBJS' ac_subst_files='' *************** *** 857,860 **** --- 857,861 ---- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-gecko-sdk=<path> prefix of gecko-sdk installation --with-x use the X Window System *************** *** 2586,2589 **** --- 2587,2604 ---- # Checks for libraries. + #tell us where gecko-sdk is, try to find if not provided + + + # Check whether --with-gecko-sdk or --without-gecko-sdk was given. + if test "${with_gecko_sdk+set}" = set; then + withval="$with_gecko_sdk" + GECKO_SDK_PREFIX=$with_gecko_sdk + + MOZPLUG_CFLAGS="-include mozilla-config.h -I${GECKO_SDK_PREFIX} -I${GECKO_SDK_PREFIX}/xpcom/include -I${GECKO_SDK_PREFIX}/nspr/include -I${GECKO_SDK_PREFIX}/string/include -I${GECKO_SDK_PREFIX}/embedstring/include -I${GECKO_SDK_PREFIX}/plugin/include -I${GECKO_SDK_PREFIX}/java/include" + MOZPLUG_LIBS="-L ${GECKO_SDK_PREFIX}/xpcom/bin -lxpcomglue -L ${GECKO_SDK_PREFIX}/nspr/bin -lnspr4 -L ${GECKO_SDK_PREFIX}/nspr/bin -lplds4 -L ${GECKO_SDK_PREFIX}/embedstring/bin/ -lembedstring" + GECKO_DEFINES="-DXPCOM_GLUE -DMOZILLA_STRICT_API" + + + else succeeded=no *************** *** 2665,2669 **** ## do set a variable so people can do so. MOZPLUG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mozilla-plugin"` ! echo $MOZPLUG_PKG_ERRORS fi --- 2680,2684 ---- ## do set a variable so people can do so. MOZPLUG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mozilla-plugin"` ! fi *************** *** 2679,2687 **** : else ! { { echo "$as_me:$LINENO: error: Library requirements (mozilla-plugin) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&5 ! echo "$as_me: error: Library requirements (mozilla-plugin) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them." >&2;} { (exit 1); exit 1; }; } fi --- 2694,2706 ---- : else ! { { echo "$as_me:$LINENO: error: Unable to find gecko sdk" >&5 ! echo "$as_me: error: Unable to find gecko sdk" >&2;} { (exit 1); exit 1; }; } fi + fi; + + + *************** *** 5770,5773 **** --- 5789,5794 ---- s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t s,@INSTALL_DATA@,$INSTALL_DATA,;t t + s,@GECKO_SDK_PREFIX@,$GECKO_SDK_PREFIX,;t t + s,@GECKO_DEFINES@,$GECKO_DEFINES,;t t s,@PKG_CONFIG@,$PKG_CONFIG,;t t s,@MOZPLUG_CFLAGS@,$MOZPLUG_CFLAGS,;t t Index: configure.in =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/configure.in,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** configure.in 5 Feb 2004 00:34:44 -0000 1.1.1.1 --- configure.in 12 Feb 2004 17:20:18 -0000 1.2 *************** *** 15,22 **** # Checks for libraries. ! PKG_CHECK_MODULES(MOZPLUG,mozilla-plugin) AC_SUBST(MOZPLUG_CFLAGS) AC_SUBST(MOZPLUG_LIBS) # Checks for header files. AC_PATH_X --- 15,34 ---- # Checks for libraries. ! #tell us where gecko-sdk is, try to find if not provided ! ! AC_ARG_WITH([gecko-sdk],[ --with-gecko-sdk=<path> prefix of gecko-sdk installation], ! [GECKO_SDK_PREFIX=$with_gecko_sdk ! AC_SUBST(GECKO_SDK_PREFIX) ! MOZPLUG_CFLAGS="-include mozilla-config.h -I${GECKO_SDK_PREFIX} -I${GECKO_SDK_PREFIX}/xpcom/include -I${GECKO_SDK_PREFIX}/nspr/include -I${GECKO_SDK_PREFIX}/string/include -I${GECKO_SDK_PREFIX}/embedstring/include -I${GECKO_SDK_PREFIX}/plugin/include -I${GECKO_SDK_PREFIX}/java/include" ! MOZPLUG_LIBS="-L ${GECKO_SDK_PREFIX}/xpcom/bin -lxpcomglue -L ${GECKO_SDK_PREFIX}/nspr/bin -lnspr4 -L ${GECKO_SDK_PREFIX}/nspr/bin -lplds4 -L ${GECKO_SDK_PREFIX}/embedstring/bin/ -lembedstring" ! GECKO_DEFINES="-DXPCOM_GLUE -DMOZILLA_STRICT_API" ! AC_SUBST(GECKO_DEFINES) ! ],[PKG_CHECK_MODULES(MOZPLUG,[mozilla-plugin],,[AC_MSG_ERROR([Unable to find gecko sdk])])]) ! AC_SUBST(MOZPLUG_CFLAGS) AC_SUBST(MOZPLUG_LIBS) + + # Checks for header files. AC_PATH_X |
From: <kde...@us...> - 2004-02-12 17:25:20
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in/Source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18100/Source Modified Files: plugin-list.cpp plugin-setup.cpp plugin-threads.cpp plugin.cpp plugin.h Log Message: Configure fixes, added --with-gecko-sdk option if pkg-config does not work Fixed bug where first file in playlist was not being cleaned up Index: plugin-list.cpp =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/plugin-list.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** plugin-list.cpp 5 Feb 2004 00:34:51 -0000 1.1.1.1 --- plugin-list.cpp 12 Feb 2004 17:20:18 -0000 1.2 *************** *** 1,6 **** #include "plugin.h" extern int DEBUG; ! // Linked List methods // This is how the playlist is going to be managed --- 1,7 ---- #include "plugin.h" + #include <errno.h> extern int DEBUG; ! extern int errno; // Linked List methods // This is how the playlist is going to be managed *************** *** 92,97 **** } if ((l->remove == 1) || (l->remove == 0 && l->play == 0)) { ! if (strlen(l->fname) != 0) remove(l->fname); } l = l->next; --- 93,99 ---- } if ((l->remove == 1) || (l->remove == 0 && l->play == 0)) { ! if (strlen(l->fname) != 0) { remove(l->fname); + } } l = l->next; *************** *** 622,625 **** --- 624,629 ---- printf("playlist adjustment complete\n"); + } else { + printf("Build Playlist error opening file %i : %s\n",errno,strerror(errno)); } } Index: plugin-setup.cpp =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/plugin-setup.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** plugin-setup.cpp 5 Feb 2004 00:34:51 -0000 1.1.1.1 --- plugin-setup.cpp 12 Feb 2004 17:20:18 -0000 1.2 *************** *** 293,297 **** instance->fname = strdup(parameters->argv[i]); instance->state = STATE_HAVEURL; - NPN_GetURL(parameters->instance, instance->fname, NULL); } --- 293,296 ---- *************** *** 352,355 **** --- 351,372 ---- } + if (strncasecmp(parameters->argn[i], "controls", 8) == 0) { + + lowercase(parameters->argv[i]); + if (DEBUG) + printf("argv[i]=%s\n", parameters->argv[i]); + + if (strstr(parameters->argv[i], "true") + || strstr(parameters->argv[i], "yes") + || strstr(parameters->argv[i], "1") + || strstr(parameters->argv[i], "all")) { + instance->controlwindow = 1; + } else { + instance->controlwindow = 0; + } + if (DEBUG) + printf("controlwindow=%i\n", instance->controlwindow); + } + if (instance->nQtNext < 256 *************** *** 382,389 **** } } - - - } } else { if (DEBUG) --- 399,410 ---- } } } + + if (instance->controlwindow == 0) { + if (instance->fname != NULL) { + NPN_GetURL(parameters->instance, instance->fname, NULL); + } + } + } else { if (DEBUG) Index: plugin-threads.cpp =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/plugin-threads.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** plugin-threads.cpp 5 Feb 2004 00:34:51 -0000 1.1.1.1 --- plugin-threads.cpp 12 Feb 2004 17:20:18 -0000 1.2 *************** *** 101,105 **** NPN_MemFree(filename); } else { ! memset(instance->td->list->fname, '\0', 1); } --- 101,108 ---- NPN_MemFree(filename); } else { ! if (strlen(instance->td->list->fname) == 0) { ! snprintf(instance->td->list->fname, 1024, "%s", ! tempnam("/tmp", "mplayerplug-inXXXXXX")); ! } } Index: plugin.cpp =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/plugin.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** plugin.cpp 7 Feb 2004 14:15:47 -0000 1.2 --- plugin.cpp 12 Feb 2004 17:20:18 -0000 1.3 *************** *** 171,175 **** display = NULL; window = 0; ! // options --- 171,175 ---- display = NULL; window = 0; ! controlwindow = 0; // options *************** *** 395,398 **** --- 395,400 ---- } + if (controlwindow == 1) return NPERR_NO_ERROR; + if (state < STATE_WINDOWSET) { if (DEBUG) { *************** *** 474,478 **** } ! if (state <= STATE_GETTING_PLAYLIST) { state = STATE_GETTING_PLAYLIST; SetupPlayer(this, NULL); --- 476,480 ---- } ! if ((state <= STATE_GETTING_PLAYLIST) && (controlwindow == 0)) { state = STATE_GETTING_PLAYLIST; SetupPlayer(this, NULL); *************** *** 516,520 **** if (n != NULL) { n->retrieved = 1; - if (!isMms(n->url)) { if (DEBUG) --- 518,521 ---- Index: plugin.h =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/plugin.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** plugin.h 5 Feb 2004 00:34:50 -0000 1.1.1.1 --- plugin.h 12 Feb 2004 17:20:18 -0000 1.2 *************** *** 106,109 **** --- 106,110 ---- int cancelled; int autostart; + int controlwindow; int setup; Node *list; |
From: <kde...@us...> - 2004-02-10 20:46:59
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17189 Modified Files: ChangeLog Log Message: 2.0 Index: ChangeLog =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/ChangeLog,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ChangeLog 9 Feb 2004 02:37:59 -0000 1.4 --- ChangeLog 10 Feb 2004 20:43:25 -0000 1.5 *************** *** 1,3 **** --- 1,4 ---- Development + 2.0 Massive code reorganization to get javascript commands to work Conversion of C code to C++ code |
From: <kde...@us...> - 2004-02-09 02:41:09
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in/Source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13966/Source Modified Files: plugin-support.cpp Log Message: Made isMms case insensitive Index: plugin-support.cpp =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/plugin-support.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** plugin-support.cpp 5 Feb 2004 00:34:51 -0000 1.1.1.1 --- plugin-support.cpp 9 Feb 2004 02:37:59 -0000 1.2 *************** *** 132,138 **** int isMms(char *url) { ! if ((strncmp(url, "mms://", 6) == 0) ! || (strncmp(url, "mmst://", 7) == 0) ! || (strncmp(url, "rtsp://", 7) == 0)) { return 1; } else { --- 132,138 ---- int isMms(char *url) { ! if ((strncasecmp(url, "mms://", 6) == 0) ! || (strncasecmp(url, "mmst://", 7) == 0) ! || (strncasecmp(url, "rtsp://", 7) == 0)) { return 1; } else { |
From: <kde...@us...> - 2004-02-09 02:41:08
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13966 Modified Files: ChangeLog Log Message: Made isMms case insensitive Index: ChangeLog =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/ChangeLog,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ChangeLog 7 Feb 2004 14:15:47 -0000 1.3 --- ChangeLog 9 Feb 2004 02:37:59 -0000 1.4 *************** *** 19,22 **** --- 19,23 ---- Fixed uninstall function Fixed some issued with node->retrieved and node->play in Write and DestroyStream + Made isMms case insensitive Code Split - 1.3 candidate |
From: <kde...@us...> - 2004-02-07 15:43:16
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29225 Modified Files: ChangeLog Makefile.in Log Message: Fixed some issued with node->retrieved and node->play in Write and DestroyStream Index: ChangeLog =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/ChangeLog,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ChangeLog 5 Feb 2004 20:47:51 -0000 1.2 --- ChangeLog 7 Feb 2004 14:15:47 -0000 1.3 *************** *** 17,20 **** --- 17,22 ---- Fix uninitialized variables: window, display, widget Added some button images and cleaned up the logo a bit + Fixed uninstall function + Fixed some issued with node->retrieved and node->play in Write and DestroyStream Code Split - 1.3 candidate Index: Makefile.in =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Makefile.in,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** Makefile.in 5 Feb 2004 00:34:44 -0000 1.1.1.1 --- Makefile.in 7 Feb 2004 14:15:47 -0000 1.2 *************** *** 85,89 **** uninstall: ! rm $(HOME)/.mozilla/plugins/libmplayerplug-in.* if [ -f /usr/lib/mozilla/plugins/$(SHAREDTARGET) ]; then rm /usr/lib/mozilla/plugins/$(SHAREDTARGET); fi if [ -f /usr/lib/mozilla/components/mplayerplug-in.xpt ]; then rm /usr/lib/mozilla/components/mplayerplug-in.xpt; fi --- 85,89 ---- uninstall: ! rm $(HOME)/.mozilla/plugins/mplayerplug-in.* if [ -f /usr/lib/mozilla/plugins/$(SHAREDTARGET) ]; then rm /usr/lib/mozilla/plugins/$(SHAREDTARGET); fi if [ -f /usr/lib/mozilla/components/mplayerplug-in.xpt ]; then rm /usr/lib/mozilla/components/mplayerplug-in.xpt; fi |
From: <kde...@us...> - 2004-02-07 15:43:16
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in/Source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29225/Source Modified Files: plugin.cpp Log Message: Fixed some issued with node->retrieved and node->play in Write and DestroyStream Index: plugin.cpp =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/plugin.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** plugin.cpp 5 Feb 2004 00:34:49 -0000 1.1.1.1 --- plugin.cpp 7 Feb 2004 14:15:47 -0000 1.2 *************** *** 531,535 **** n = td->list; while (n != NULL) { ! if (n->retrieved == 0) { all_retrieved = 0; break; --- 531,535 ---- n = td->list; while (n != NULL) { ! if ((n->retrieved == 0) && (n->play == 1)) { all_retrieved = 0; break; *************** *** 554,558 **** n = td->list; while (n != NULL) { ! if (n->bytes < (cachesize * 1024)) { all_above_cache = 0; break; --- 554,558 ---- n = td->list; while (n != NULL) { ! if ((n->bytes < (cachesize * 1024)) && (n->play == 1)) { all_above_cache = 0; break; *************** *** 577,581 **** n = td->list; while (n != NULL) { ! if (n->mmsstream) { if (threadsignaled == 0) { if (DEBUG) --- 577,581 ---- n = td->list; while (n != NULL) { ! if ((n->mmsstream == 1) && (n->play == 1)) { if (threadsignaled == 0) { if (DEBUG) *************** *** 710,713 **** --- 710,714 ---- maxdownload += n->totalbytes; } + n = td->list; while (n != NULL) { *************** *** 745,749 **** 0, (int) ((currdownload / (maxdownload * 1.0)) * 100)); - n->retrieved = 1; fclose(fp); --- 746,749 ---- *************** *** 805,811 **** if (DEBUG) printf("signalling player from write\n"); ! if (autostart) pthread_cond_signal(&playlist_complete_cond); ! threadsignaled = 1; } } else { --- 805,812 ---- if (DEBUG) printf("signalling player from write\n"); ! if (autostart) { pthread_cond_signal(&playlist_complete_cond); ! threadsignaled = 1; ! } } } else { *************** *** 815,822 **** if (DEBUG) printf("signalling player from write\n"); ! if (autostart) pthread_cond_signal (&playlist_complete_cond); ! threadsignaled = 1; } } --- 816,824 ---- if (DEBUG) printf("signalling player from write\n"); ! if (autostart) { pthread_cond_signal (&playlist_complete_cond); ! threadsignaled = 1; ! } } } |
From: <kde...@us...> - 2004-02-05 20:50:35
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24634 Modified Files: ChangeLog Log Message: Index: ChangeLog =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/ChangeLog,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ChangeLog 5 Feb 2004 00:34:39 -0000 1.1.1.1 --- ChangeLog 5 Feb 2004 20:47:51 -0000 1.2 *************** *** 15,19 **** Fix play so that it restarts the video even when complete or quit Fix shutdown of no-window media ! Fix uninitialized variables: window, display widget Code Split - 1.3 candidate --- 15,20 ---- Fix play so that it restarts the video even when complete or quit Fix shutdown of no-window media ! Fix uninitialized variables: window, display, widget ! Added some button images and cleaned up the logo a bit Code Split - 1.3 candidate |
From: <kde...@us...> - 2004-02-05 20:49:03
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in/pixmaps In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24235 Modified Files: logo.xpm Log Message: Cleaned up logo a little Index: logo.xpm =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/pixmaps/logo.xpm,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** logo.xpm 5 Feb 2004 00:34:48 -0000 1.1.1.1 --- logo.xpm 5 Feb 2004 20:46:26 -0000 1.2 *************** *** 1,5 **** /* XPM */ static char * logo_xpm[] = { ! "348 48 2416 2", " c None", ". c #2065EA", --- 1,5 ---- /* XPM */ static char * logo_xpm[] = { ! "257 48 2416 2", " c None", ". c #2065EA", *************** *** 2368,2377 **** "z< c #CFCEEB", "A< c #9E9CD7", ! "B< c #8683CD", ! "C< c #477ACA", ! "D< c #2E66C8", ! "E< c #103C8D", ! "F< c #0C2E6B", ! "G< c #5551B9", "H< c #FFFFFF", "I< c #1C55BB", --- 2368,2377 ---- "z< c #CFCEEB", "A< c #9E9CD7", ! "B< c #477ACA", ! "C< c #2E66C8", ! "D< c #103C8D", ! "E< c #0C2E6B", ! "F< c #5551B9", ! "G< c #8683CD", "H< c #FFFFFF", "I< c #1C55BB", *************** *** 2418,2467 **** "([ c #0D3072", "_[ c #0E2F6D", ! " . + @ # $ % & * = - ", ! " ; > , ' ) ! ~ { ] ^ & / = ( _ : ", ! " < [ [ < < < } ; , | 1 2 3 4 5 / 6 7 8 : 9 0 ", ! " a b b b b b b b [ < } > ' ! ~ 3 4 5 / c d e f g h i ", ! " b j k k k k k k l j b [ < } m ) ~ # 4 & * c n o p q r s t u v w x y z A B C D E ", ! " j k l l F F F F F l l k j b < } , ! 2 ] % G = 7 e H g I J K L M N O P Q R S T U V W X ", ! " k l l F Y Z Z Z Z Y Y F l k j b < } m 1 @ ` 5 * c n .9 q ..+.@.#. $.%.&.*. =.-.;.>.,. '.).!.~.{. ", ! " ].k l F Y Z ^./././././.^.Z Y F l j b < ; ' (.# ^ G 6 d e f _.r :.@.<.[. }.|.1.2.3. 4.5.6.7.8. 9.0.a.b. ", ! " j l F Y ^./.c.d.e.f.f.g.g./.^.Y F k j [ } , ! @ ` 5 * ( h.: i.I J K j.k. l.m.n.o.p. q.r.s.t.u. ", ! " j k F Y ^./.f.v.w.x.y.z.A.B.g./.^.Y l k b < } | (.# % G c n .p C...D.E.F.G. H.I.J.K. L.M.N.O.P. Q.R.S.T.U. V.W.X. Y.Z.`. +.+ ++@+#+$+ %+&+*+=+-+;+>+ ,+'+)+!+ ~+{+]+^+ /+(+_+:+<+[+ }+|+1+2+ 3+4+5+6+ 7+8+9+0+ a+b+c+d+e+f+ g+h+i+j+ k+l+m+n+ o+p+q+r+s+ t+u+v+w+x+ y+z+A+B+ C+D+E+F+ G+H+I+J+ K+L+M+N+O+ ", ! " b k l Y ^./.f.P+Q+R+S+T+U+V+W+X+g./.Z F l j [ < m 1 { ^ Y+6 7 Z+f q r +.@.`+ @.@ +@@@#@W $@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@ /@(@_@:@<@[@}@|@1@2@3@4@ 5@6@7@8@ 9@0@a@b@c@d@).e@f@g@ h@i@j@k@ l@m@n@o@p@ q@r@s@t@u@v@w@x@y@z@ A@B@C@D@E@F@G@H@I@J@ K@L@M@N@O@P@Q@R@S@T@U@V@ W@X@Y@Z@ `@ #.#+#@# ##$#%#&#*# =#-#;#>#,#'#j@)#!#~#{#]#^# /#(#_#:#<# [#}#|#1#2#3#4#5#6#7#8#9# ", ! " 0#j k F Z /.a#b#c#d#e#f#g#h#i#x.j#k#g.^.Y l k b < > ) @ 4 & l#( e H _.r s @.m# @n#o# p#q#r#s#t#u#v#w#x#y#z#A#B#C#D#E#F#G#H#I#J# K#h+L#M#N#O#P#Q#%#R#S#T#U# V#W#X#Y#Z# `# $.$+$@$#$$$%$&$*$=$-$ ;$>$,$'$ )$!$~${$]$ ^$/$($_$:$<$[$}$|$1$2$ 3$4$5$6$7$8$9$0$a$b$ c$d$e$f$g$h$i$j$k$l$m$n$ o$p$q$M#r$ s$t$u$v$w$ x$y$z$A$ B$C$D$E$F$G$H$I$J$K$L$M$s@N$ O$P$Q$R$S$ T$U$V$W$X$Y$Z$`$ %.%+%@%#% ", ! " [ j l Y ^./.$%%%&%*%=%-%;%>%,%'%)%x.!%~%Z F k b [ ; | 2 {%5 * ( _ H g h :.]%^%/%(%_% :%<%[%}%|%1% 2%3%4%5%6%7%8% 9%0%a%b%c% d%e%f%g%h% i%j%k%l%m% n%o%p%q%r% s%t%u%v%w% x%y%z%A%B% C%D%E%F%G% H%I%J%K%L% M%N%O%P%Q% R%S%T%U%V% W%X%<%Y%Z%`% &.&+& @&#&Q$$&%& &&*&=&-&;& >&,&'&)&!& ~&{&]&^& /&(&_&:& <&[&}&|&1& 2&g%3&4&U 5& 6&7&8&9& 0&a&b&c&d&e&f& g&h&i&j&k& ", ! " < [ j l Y ^.g.l&m&n&x.o&p&>%q&r&s&t&u&v&x.w&l l j [ } ' ~ ] x&* c _ : g I :.K <.y&z&A&B& C&D&E&F&G& H&I&J&K&L& M&N&O&P&Q& R&S&T&U&V& W&X&Y&Z& `&N% *.*+* @*#*$* %*&***=*-* ;*>*,*'*)* !*~*{*]*^* /*(*_*:*<* [*}*|*1*2* 3*4*5*6*7*8* 9*0*D%a*b* c*d*e*f*g* h*i*j*k*l* m*n*o*p*q* r*s*t*u*v* w*x*y*z*A* B*C*D*E*F*G* H*I*J*K* L*T%M*N*O* P*Q*R*S*T* ", ! " < [ k l Y ^.g.U*V*W*x.X*Y*Z*`* =.=+=@=#=$=%=&=*===[ } ' ~ ] x&* c h.: g I :.K <.y&z&A&-= ;=>=,='=)= !=~={=]=^= /=(=_=:= <=[=}=|=1= 2=3=o%4= 5=6=7=8= 9=0=E%a=b= c=d=e=f=g= h=i=j=k=l= m=n=o=p= q=r=s=t= u=v=w=x=y= z=A=B=C=D= E=F=G=H= I=J=z%K= L=M=N=O=P= Q=%#R=0*S= T=U=V=W=X= Y=Z=`= -.- +-@-#-$-%-&- *-=---;->- ,-'-)-P@!- ~-{-]-^-/- ", ! " (-< [ k l Y ^.g.U*V*W*x._-:-<-[-.=}-|-1-2-3-2-4-5-x.6-7-' ~ ] x&* c h.: g I :.K <.y&z&A&-=8- 9-r=0-a-b- c-d-e-f-g- h-_*i-j- k-l-m-n- o-p-q-r- s-t-u-v- w-x-y-z-A-B-C-D-E-Y%F-G- H-I-V J- K-L-M-N-O- P-Q-R-X&S-T-U-V-W-X-Y-Z-`- ; .;+;@;#;$; %;&;*;=; -;;;>;,; ';);!;~;{; ];^;/;p$(; _;:;<;[; };|;1;2; 3;4;5;6; 7;v$8;9;0;a;b;c; d;e;f;g;h; i;j;{*k; l;m;n;o; ", ! " m < [ j l Y ^.g.l&p;q;x.r;Z*s;t;u;|-v;w;x;y;y;z;A;B;C;D;E;@ ] x&* c h.: g I :.K <.y&z&A&-=F; G;H;I;J; K;L;M;N;O; P;Q;R;S;T; U;V;W;X; Y;Z;`; > .>+>@>#>$> %>&>*>=>->;>>>,>'>)>!>~> {>**]>^> />(>_>:><> [>}>|>1>2>3>4>5>6>*;7>8>9>0> a>b>c>d>e> f>g>h>i> j>k>'&l> m>n>o>p>q> r>6%6*s> t>u>v>w> x>y>z>A> B>C>D>E> F>G>H>I>J>K>L>M> N>z$O>P>Q> R>S>T>U>V> W>X>Y>Z>`> ", ! " ' } [ j l Y ^.g. ,.,+,x.@,#,[-$,%,v;w;y;&,*,=,-,z;;,>,,,',x.),& * ( _ H g h :.]%^%/%(%_%-=!, ~,{,],^, /,(,_,:, <,[,},|,1, 2,U$3,4, 5,6,7,8, 9,0,a,b,c, d,:*e,f,g,h,i,j,k,l,m,n,o, p,q,r,s, t,u,v,P%w, x,y,z,n=A,B,C,D,E,F,G,H,I,J, K,L,M,N, O,P,Q,R,E# S,T,U,V,W, X,I;Y,Z,`, 'H;.'+' @'#'$'%' &'*'='-' ;'>',''')' !'~'{']'^'/'('_' :'<'['}' |'1']&2'3' 4'5'6'7'8' ", ! " | } [ j k F Z /.f.A.9'x.@,#, =0'a'b'c'd'e'f'g'h'i'3-j'k't;l'm'x.n'o'e H _.h s @.m# @n#p'q'r' s't'u'v'w' x'y'z'A' B'C'D'E' F'G'H'I'J' K'L'M'N'O' P'Q'R'S'T' U'V'W'X'Y' Z'`' ).)+) @)#)$)%)&)*)=)-);) >),)')))!) ~){)y$]) L=^)/)()_) :)`;<)[)}) |)_#1)2) 3)4)l%5)6) 9,7)8)9)0) a)0%b)c) d)e)f)g)h) i)j)k)l)m)n)o) p)q)r)s) t)u)v)w)x) y)z)A)B)C) ", ! "D)) > < b k l Y ^.g.E)F)x.G)H)I)J)K)2-L)M)g'N)O)P)Q)w;R)S)T)s;U)V)W)&=X)Y)q r +.@.`+ @Z)`) !.!+! @!#!$!%!&! *!=!5.-!;! >!,!'!)! !!~!{!]!^! /!['(!_! :!<![!}! |!1!2!3! 4!5!k>6!7! 8!9!0!a!b!y,c!d!e! f!g!~;h! i!j!1, k!l!m!n!o! p!q!r!s!t! u!v!w!x! y!z!}&A! B!C!D!E!F! G!>=h>H!I! J!K!L!M! N!O!P!Q!R!S! T!U!V!W!X! Y!Z!`! ~ h,.~+~@~ ", ! "{ 1 m } [ j l F Z ^.g.f.x.G)H) =0'K)b'#~&,$~O)g'h'i'3-R)k'T)r&U)%~&~*~=~x.-~;~D.E.>~G..@,~'~)~!~ ~~{~]~^~/~ (~_~:~<~[~ }~|~1~2~3~ 4~5~6~7~8~9~ 0~a~b~c~d~ e~U&f~g~ h~i~j~k~l~ m~n~o~p~q~r~ s~t~u~v~w~y,x~ y~z~A~B~C~ D~E~P$F~G~ H~I~~;.*J~ K~i-L~M~g>N~ O~P~w!Q~R~S~ T~U~1;V~W~ X~Y~6%Z~`~ {.{s#+{@{#{ ${%{&{I'*{={ -{;{>{<),{'{ ){!{~{{{]{ ^{/{({_{:{ <{T&[{}{ ", ! "# ~ | ; < b k l F Z ^./.x.@,#,[-|{@=1-1{2{3{4{h'5{6{7{8{u;9{0{:-a{b{c{d{e{f{g{h{<.i{j{k{l{m{n{o{ p{q{r{s{ t{u{v{w{x{ y{z{A{B{C{ D{E{F{G{H{I{J{K{L{M{N{u*O{ P{Q{R{S{T{ U{V{W{X{Y{Z{`{ ]{,.]y'+] @]#]$]%]&]*] =]-];]>],]'])]!]~]{]]]^] /](]_]:]<] []}]|]1]2]3]4]5]6]7]8]9]0] a]b]c]+%d] e]f]g]h]i]j]k]l]m]n]o]p]q] r]s]t]u]v]w]x]y]z]A]B]C]D] E]F]G]H]I] J]K]L]M]N] O]P]Q]R]S] ", ! "` { 1 m } [ b k l F Y ^.x.T]U]s;V]+=W];,1{y;i'i'c'3-X]Y]Z]s&#,`]p&&~ ^.^+^@^#^$^x.%^&^*^-==^-^;^ >^,^'^)^!^ ~^{^]^^^ /^(^_^:^<^ [^}^|^1^2^3^4^5^6^7^8^9^ 0^a^b^c^d^ e^f^g^h^i^j^k^l^m^n^o^p^ q^r^s^t^u^v^ w^x^y^z^A^j^p>B^C^D^ E^F^G^H^ I^J^K^L^M^N^O^P^Q^R^u{S^T^ U^V^W^]@ X^Y^Z^`^ /./+/@/#/$/%/&/ */=/-/;/>/,/'/)/!/~/{/]/ ^///(/_/ :/</[/}/|/ 1/2/3/ #4/ ", ! "% # ~ ) > < [ j k l F Y x.5/:-0{6/7/8/9/0/a/w;a/7{b/a'c/t;s;d/e/f/g/h/.^i/j/k/l/m/n/o/_%p/!,q/r/ s/t/u/v/w/ x/y/z/A/ B/C/D/E/ F/G/I'H/I/ J/K/L/M/N/O/ P/Q/R/S/T/ U/V/W/X/Y/Z/ `/ (.(+( @(#(n]$(%( &(*(=(-(;(>(,( '()(!(~( {(/;Q*](^( /(((_(:(<([( }(|(1(2( 3(4(5(6(7(8( 9(0(a(b(c( d(e(f(g(h( i(j(k(l(m( n(o(p(q( r(s(t(u( v(w(x(y(z( ", ! "& 4 3 ~ | > < [ b j k l x.A(B(d/C(I)D(S)a'E(9/9/K)F(G(T)H(#,I(J(K(L(M(N(O(P(Q(j.F.G.k{,~R(.!S(T( U(V(W(X(Y( g&Z(`( _._ +_u$@_#_$_ %_&_w, *_=_Y@-_;_ ", ! "G 5 ` { 1 | > < [ b j j x.>_;%>%,_s;'_Z])_+=S)S)u;7/t;H(H)U)e/!_~_{_]_^_/_s ]%<.(_z&*^l{__n{:_<_ [_}_]!|_1_ 2_3_4_5_6_ 7_8_9_0_ a_b_c_d_ e_f_g_h_i_ ", ! "6 G % ] { (.) j_} < [ [ x.k_-%a{l_q&m_[-I)n_t;t;o_[-p_#,U)q_r_s_c{t_u_v_w_x_E.y_z_Z)A_q'B_C_D_E_ F_G_H_I_ J_K_L_M__*N_O_P_ Q_R_W!S_ T_U_V_W_X_Y_Z_`_ :.:+:@:#: ", ! "c l#Y+% ] { (.) ' > } < x.$:%:!_;%>%Z*#,0{r&s;s;0{H)d/:-e/&:b{*:=:9 q ..s @.<.-:;:>:,:R(':!~):!: ~:{:]:^: /:(:_:::<:[:}: |:1:2:3:4: 5:6:7:8:9:0:a:W@b:D>8$c: ", ! "d:c l#Y+x&` 3 e:(.) ' , x.f:g:~_-%p&h:i:j:U)U)U):-`]e/;%!_k:l:o p m:h :.K n:>~o:p:_%q:r:s:;^t:u: v:w:x:y:z: A:B:C:D:E:F: G:H:I:J:K: L:M:N:O:P:Q:R:S:6_T: ", ! " n c 6 G 5 4 ] { 2 (.! x.U:M( ^V:W:!_p&;%%~%~%~a{p&X:Y:Z:n Z+f g I w_+.@.^%-:z&>:,~R(.!!~`: < ", ! " e n ( 6 / & x&4 ] 3 @ x..<+<@<h/g:#<$<%<-%-%-%&<*<=<( n Z+f g C...s ]%-<i{;<.@_%-=F;-^:_<_>< ", ! " ,<Z+h.7 c l#G & x&% 4 x.'<i/)<.^M(h/ ^c{!<~<{<]<c d h. .f g q ..s K ^<>~ @(%*^l{R(':!~T(/<(< ", ! " f ._ d ( c l#* Y+Y+x._<:<O(<<[<.^]_@<}<|<c ( n e .f g C...:.K E.`+1<2<k{,~ !!,C_;^<_3< ", ! " g p : Z+_ d ( c = 6 x.4<5<6<7<8<i/9<0<c 7 n _ Z+H 9 _.I ..s K a<m#/%j{b<c<q'=^n{d<):e<f< ", ! " _.9 f : Z+_ n d 7 x.g<h<k/5<i<j<7 d n _ Z+: p i.q h w_s K k<m#k.G..@A&l<__)~S(`:E_m< ", ! " n<C._.i.o<H .Z+e x.p<q<r<s<_ 8 e t<: f p u<_.I r J +.]%n:`+y&G.Z)*^l<R(.!C_v<t:><w< x<>{>{>{>{y< >{y< >{ >{ y<x< x<x< y<x< >{y< >{ x<>{>{>{u=z< >{y< A<>{y< y<>{ B<>{ >{y< >{ z<x< >{ >{y< u=x< x<x< >{y<y<>{ ", ! " ..h C._.g 9 p f x.C<D<: : H H f p 9 g q I r w_s D.@.j.>~/%j{Z)*^E<'~r'-^:_F<e<f< G<B< >{z< u= u= A<B< x<x< >{z< y< u= G<B<H<H<G<x< >{z< u=A< A<u= A<G<z< >{G< z<u= A<u= u= >{x< A<>{B< z<z< >{z<A<u= ", ! " :.w_r h C.q _.I<J<g g g g _._.K<I L<..J s D.]%k<^%i{M<2<N<A&O<'~P<-^o{T( <Q< >{y< x<u=>{u=u=>{B< y<>{u=>{B< x<>{>{z< z<G<>{G<x< z<G<>{G<x< z<G<>{u= A<u=u=u=y< y<>{ B<G< y<>{ z<G<>{G<x< z<G<>{u= A<u=u=A< >{y<H<H<u=A<y<>{H<A<>{>{u= x<y< x<y< x<>{>{z< x<x<u= x<>{>{ z<G<>{x< >{B<x< x<x<u=G< x<>{G<z< x<u=>{u= z<G<>{G<x< x<x< y<x< z<G<>{u= >{B<x< A<u=u=A< y<>{B<y< y<>{x<z< x<x< z<G<>{u= y<>{>{y<A<>{>{G< A<u=u=z< A<>{>{u= >{u=>{G< A<u=>{B< z<u=>{>{z< x<u=>{u= z<G<>{G<x< y<>{>{ A<G<>{y< A<u=u=A< x<>{>{>{y< >{y<y<>{H<x<x< G<>{>{B< ", ! " R<D.s J w_..r h I I I I I h r ..w_:.s D.]%k<-<`+-:z_(%k{_%l<R(!,-^S<T(/<m<T< z<>{G<x<x< u=B<y<>{y<y<x< B<G<z<z<u= x<A<U<G<B< G<y<U<>{A< G<y<U<>{A< G<y<U<>{z<y<x<z<A<>{ y<>{ u= B<B< G<y<U<>{A< G<y<U<>{z<y<x<z<A<u= z<>{G<x<G<B< B<B<H<x<z<A<>{ B<A< A<u=H<x<A<U<G<B< u=u=y< z<>{ G<y<U<>{z<z<>{x<z< u=>{u= x<A<U<G<B< u=B< >{y< G<y<U<>{A< u=z< G<A< G<y<U<>{z<z<>{x<z<y<x<z<A<u= B<>{A< B<y<B<B< u=A< G<y<U<>{z<H<u=A<H<>{U<U<x<z<y<x<z<y<A< x<z<A<>{ z<u=A<U<G<z<y<x<z<A<u= A<A<U<>{y< u=B< >{y< G<y<U<>{A< B<B<x< u=B<>{U<y<x<z<A<u= x<A<H<z<G<U<B<B<H<u=z<z<B<U<G<x< ", ! " V<@.K D.+.s s :.:.:.:.:.s s W<D.]%@.n:-<>~k.z_2<.@*^,~X<__Y<-^d<T(Z<m<f< y<x< >{ y<>{H<y<x< x<y<H<H<>{A<>{x<x<u=x<G<A<H<H<>{y<G<A<H<H<>{y<G<u=x<x<>{B<u=U<H<y<>{ y<>{ G<A< x<y<G<A<H<H<>{y<G<u=x<x<>{B<u=U<H<y<>{ y<x< x<y<H<A<>{>{x< y<x< u=A<A<>{x<x<u=x< >{ y<>{ G<A<H<H<>{y<y<x< >{ G<x< A<G<H<H<x<x< >{ >{y<G<A<H<H<>{y< >{ >{y<G<u=x<x<>{y<y<x< z<u=U<H<y<>{ x<y< x<y< >{ >{y<G<u=x<x<>{y<H<>{y<H<G<>{A<H<z<u= A<>{>{x< B<A<H<H<x<B<u=G<x<G<>{ z<u=>{>{ >{ >{y<G<A<H<H<>{y< x<y<x<y<B<B<y<>{z<u=U<H<y<>{ u=A<H<H<y<x<H<x<y<H<>{H<H<G<>{>{y< ", ! " ^%j.E.@.@.]%]%K K K ]%@.@.k<^<-<m#>~k. @j{n#k{A&E<`< [.!C_o{T(.[m<+[ x<y< y<x< x<x<H<>{y< >{H<H<G<B<x<G<y<y<y< >{y<H<z<>{ >{y<H<z<>{ >{B<y<y<y<y<>{H<H<B<G< >{y<u= >{ >{y<H<z<>{ >{B<y<y<y<y<>{H<H<B<G< x<y< >{ A<x<z<x<x< u=A<G< x<G<y<y<y< y<x< x<y< >{y<H<z<>{U<x<y< y<x< z<>{y< x<x<H<H<u=A<y<x< y<>{ >{y<H<z<>{ y<x< A<>{ >{B<y<y<y<H<x<y< y<>{H<H<B<G< >{ >{ u=B<>{ >{B<y<y<y< y<x<H<z<z<y<x<G<y<>{ A<x<z<x<x< x<y<H<z<u=A<>{y<y<y<z< z<G<y<y<>{ y<x< y<>{ >{y<H<z<>{ >{ B<B<u= x<y<y<>{H<H<B<G< x<A<H<H<H<x<y<H<>{ y<x<U<x<A<U<>{y< ", ! " @[>~m#m#<.-<<.<.<.-<#[`+>~i{-: @$[2<Z)k{%[`)l< !r:&[S(v<F< <m<*[ z<u= G<A< u=z<z<>{ A<>{z<A<>{ z<u=H<G<B< B<B<z<u=G< B<B<z<u=G< B<B<z<u=z< G<z<A<>{A< >{>{z< A<G< B<B<z<u=G< B<B<z<u=z< G<z<A<G< z<u= A<G< >{y<x<>{ G<>{ z<u=H<G<B< G<A< u= B<B<z<u=z<z<u= G<A< u= z<u=H<G<B< G<A< B<G< B<B<z<u=G< y<x<z<>{G< B<B<z<u=z<z<u= G<z<A<G< A<G< A<A< A<G< z<>{B< B<B<z<u=z< x<y<H<x<u=H<B<>{ G<z<A<G< >{y<x<>{ z<u=B<z<u=A< G<z<A<G< A<A< x<x<A<u=y< G<A< B<G< B<B<z<u=G< A<G< y<>{y< u= G<z<A<G< u=A<H<H<H<z<u= A<G< G<A<y<>{z<G<x< ", ! " =[z_1</%-:-:-:-:-:y& @z_G.2<(%.@>:A&,~-= !=^.!-^S<r/<_ <-[ z<x<x<x<x<x< x<z< x< z<x< A<B<x<x< A<x<A< B<x<B<A< B<x<B<A< B<x<z< z<x<B<x<z< x<A< A<A< B<x<B<A< B<x<z< z<x<B< z<x< A<A< A<x<y<x< x<G< A<x<A< x<z< x< B<x<z< z<x< x<z< B<A< A<x<A< x<z< A<A< B<x<G<x< B<B<A<A< B<x<z< z<x< z<x<B< A<A< A<x< A<A< B<z< B<x<z< y<x<z< B<x<B< z<x<B< A<x<y<x< y<>{B<x<z< z<x<B< A<x< z<x<A<B<z< x<z< A<A< B<x<B<A< A<A< z<x< x< z<x<B< x<x<x<x<z<z<x< A<A< x<z< B<B<A<A< ", ! " ;[z&(%2<2<2<z&>[n#Z)b<>:,[c<E<-='~ [r'n{'[:_)[E_![~[ z<G< >{ u= x<x< u= ", ! " *^*^*^*^*^A&_%`),~l{-= !R(r:.!n{q/o{`:<_ <{[ ", ! " l<l<l<-=q'`<'~__=^][':-^S(o{r/F<.[^[ ", ! " /[!,.!)~n{-^S(S<([`:<__[ ", ! " "}; --- 2418,2467 ---- "([ c #0D3072", "_[ c #0E2F6D", ! " . + @ # $ % & * = - ", ! " ; > , ' ) ! ~ { ] ^ & / = ( _ : ", ! " < [ [ < < < } ; , | 1 2 3 4 5 / 6 7 8 : 9 0 ", ! " a b b b b b b b [ < } > ' ! ~ 3 4 5 / c d e f g h i ", ! " b j k k k k k k l j b [ < } m ) ~ # 4 & * c n o p q r s t u v w x y z A B C D E ", ! " j k l l F F F F F l l k j b < } , ! 2 ] % G = 7 e H g I J K L M N O P Q R S T U V W X ", ! " k l l F Y Z Z Z Z Y Y F l k j b < } m 1 @ ` 5 * c n .9 q ..+.@.#. $.%.&.*. =.-.;.>.,. '.).!.~.{. ", ! " ].k l F Y Z ^./././././.^.Z Y F l j b < ; ' (.# ^ G 6 d e f _.r :.@.<.[. }.|.1.2.3. 4.5.6.7.8. 9.0.a.b. ", ! " j l F Y ^./.c.d.e.f.f.g.g./.^.Y F k j [ } , ! @ ` 5 * ( h.: i.I J K j.k. l.m.n.o.p. q.r.s.t.u. ", ! " j k F Y ^./.f.v.w.x.y.z.A.B.g./.^.Y l k b < } | (.# % G c n .p C...D.E.F.G. H.I.J.K. L.M.N.O.P. Q.R.S.T.U. V.W.X. Y.Z.`. +.+ ++@+#+$+ %+&+*+=+-+;+>+ ,+'+)+!+ ~+{+]+^+ /+(+_+:+<+[+ }+|+1+2+ 3+4+5+6+ 7+8+9+0+ a+b+c+d+e+f+ g+h+i+j+ k+l+m+n+ o+p+q+r+s+ t+u+v+w+x+ y+z+A+B+ C+D+E+F+ G+H+I+J+ K+L+M+N+O+ ", ! " b k l Y ^./.f.P+Q+R+S+T+U+V+W+X+g./.Z F l j [ < m 1 { ^ Y+6 7 Z+f q r +.@.`+ @.@ +@@@#@W $@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@ /@(@_@:@<@[@}@|@1@2@3@4@ 5@6@7@8@ 9@0@a@b@c@d@).e@f@g@ h@i@j@k@ l@m@n@o@p@ q@r@s@t@u@v@w@x@y@z@ A@B@C@D@E@F@G@H@I@J@ K@L@M@N@O@P@Q@R@S@T@U@V@ W@X@Y@Z@ `@ #.#+#@# ##$#%#&#*# =#-#;#>#,#'#j@)#!#~#{#]#^# /#(#_#:#<# [#}#|#1#2#3#4#5#6#7#8#9# ", ! " 0#j k F Z /.a#b#c#d#e#f#g#h#i#x.j#k#g.^.Y l k b < > ) @ 4 & l#( e H _.r s @.m# @n#o# p#q#r#s#t#u#v#w#x#y#z#A#B#C#D#E#F#G#H#I#J# K#h+L#M#N#O#P#Q#%#R#S#T#U# V#W#X#Y#Z# `# $.$+$@$#$$$%$&$*$=$-$ ;$>$,$'$ )$!$~${$]$ ^$/$($_$:$<$[$}$|$1$2$ 3$4$5$6$7$8$9$0$a$b$ c$d$e$f$g$h$i$j$k$l$m$n$ o$p$q$M#r$ s$t$u$v$w$ x$y$z$A$ B$C$D$E$F$G$H$I$J$K$L$M$s@N$ O$P$Q$R$S$ T$U$V$W$X$Y$Z$`$ %.%+%@%#% ", ! " [ j l Y ^./.$%%%&%*%=%-%;%>%,%'%)%x.!%~%Z F k b [ ; | 2 {%5 * ( _ H g h :.]%^%/%(%_% :%<%[%}%|%1% 2%3%4%5%6%7%8% 9%0%a%b%c% d%e%f%g%h% i%j%k%l%m% n%o%p%q%r% s%t%u%v%w% x%y%z%A%B% C%D%E%F%G% H%I%J%K%L% M%N%O%P%Q% R%S%T%U%V% W%X%<%Y%Z%`% &.&+& @&#&Q$$&%& &&*&=&-&;& >&,&'&)&!& ~&{&]&^& /&(&_&:& <&[&}&|&1& 2&g%3&4&U 5& 6&7&8&9& 0&a&b&c&d&e&f& g&h&i&j&k& ", ! " < [ j l Y ^.g.l&m&n&x.o&p&>%q&r&s&t&u&v&x.w&l l j [ } ' ~ ] x&* c _ : g I :.K <.y&z&A&B& C&D&E&F&G& H&I&J&K&L& M&N&O&P&Q& R&S&T&U&V& W&X&Y&Z& `&N% *.*+* @*#*$* %*&***=*-* ;*>*,*'*)* !*~*{*]*^* /*(*_*:*<* [*}*|*1*2* 3*4*5*6*7*8* 9*0*D%a*b* c*d*e*f*g* h*i*j*k*l* m*n*o*p*q* r*s*t*u*v* w*x*y*z*A* B*C*D*E*F*G* H*I*J*K* L*T%M*N*O* P*Q*R*S*T* ", ! " < [ k l Y ^.g.U*V*W*x.X*Y*Z*`* =.=+=@=#=$=%=&=*===[ } ' ~ ] x&* c h.: g I :.K <.y&z&A&-= ;=>=,='=)= !=~={=]=^= /=(=_=:= <=[=}=|=1= 2=3=o%4= 5=6=7=8= 9=0=E%a=b= c=d=e=f=g= h=i=j=k=l= m=n=o=p= q=r=s=t= u=v=w=x=y= z=A=B=C=D= E=F=G=H= I=J=z%K= L=M=N=O=P= Q=%#R=0*S= T=U=V=W=X= Y=Z=`= -.- +-@-#-$-%-&- *-=---;->- ,-'-)-P@!- ~-{-]-^-/- ", ! " (-< [ k l Y ^.g.U*V*W*x._-:-<-[-.=}-|-1-2-3-2-4-5-x.6-7-' ~ ] x&* c h.: g I :.K <.y&z&A&-=8- 9-r=0-a-b- c-d-e-f-g- h-_*i-j- k-l-m-n- o-p-q-r- s-t-u-v- w-x-y-z-A-B-C-D-E-Y%F-G- H-I-V J- K-L-M-N-O- P-Q-R-X&S-T-U-V-W-X-Y-Z-`- ; .;+;@;#;$; %;&;*;=; -;;;>;,; ';);!;~;{; ];^;/;p$(; _;:;<;[; };|;1;2; 3;4;5;6; 7;v$8;9;0;a;b;c; d;e;f;g;h; i;j;{*k; l;m;n;o; ", ! " m < [ j l Y ^.g.l&p;q;x.r;Z*s;t;u;|-v;w;x;y;y;z;A;B;C;D;E;@ ] x&* c h.: g I :.K <.y&z&A&-=F; G;H;I;J; K;L;M;N;O; P;Q;R;S;T; U;V;W;X; Y;Z;`; > .>+>@>#>$> %>&>*>=>->;>>>,>'>)>!>~> {>**]>^> />(>_>:><> [>}>|>1>2>3>4>5>6>*;7>8>9>0> a>b>c>d>e> f>g>h>i> j>k>'&l> m>n>o>p>q> r>6%6*s> t>u>v>w> x>y>z>A> B>C>D>E> F>G>H>I>J>K>L>M> N>z$O>P>Q> R>S>T>U>V> W>X>Y>Z>`> ", ! " ' } [ j l Y ^.g. ,.,+,x.@,#,[-$,%,v;w;y;&,*,=,-,z;;,>,,,',x.),& * ( _ H g h :.]%^%/%(%_%-=!, ~,{,],^, /,(,_,:, <,[,},|,1, 2,U$3,4, 5,6,7,8, 9,0,a,b,c, d,:*e,f,g,h,i,j,k,l,m,n,o, p,q,r,s, t,u,v,P%w, x,y,z,n=A,B,C,D,E,F,G,H,I,J, K,L,M,N, O,P,Q,R,E# S,T,U,V,W, X,I;Y,Z,`, 'H;.'+' @'#'$'%' &'*'='-' ;'>',''')' !'~'{']'^'/'('_' :'<'['}' |'1']&2'3' 4'5'6'7'8' ", ! " | } [ j k F Z /.f.A.9'x.@,#, =0'a'b'c'd'e'f'g'h'i'3-j'k't;l'm'x.n'o'e H _.h s @.m# @n#p'q'r' s't'u'v'w' x'y'z'A' B'C'D'E' F'G'H'I'J' K'L'M'N'O' P'Q'R'S'T' U'V'W'X'Y' Z'`' ).)+) @)#)$)%)&)*)=)-);) >),)')))!) ~){)y$]) L=^)/)()_) :)`;<)[)}) |)_#1)2) 3)4)l%5)6) 9,7)8)9)0) a)0%b)c) d)e)f)g)h) i)j)k)l)m)n)o) p)q)r)s) t)u)v)w)x) y)z)A)B)C) ", ! "D)) > < b k l Y ^.g.E)F)x.G)H)I)J)K)2-L)M)g'N)O)P)Q)w;R)S)T)s;U)V)W)&=X)Y)q r +.@.`+ @Z)`) !.!+! @!#!$!%!&! *!=!5.-!;! >!,!'!)! !!~!{!]!^! /!['(!_! :!<![!}! |!1!2!3! 4!5!k>6!7! 8!9!0!a!b!y,c!d!e! f!g!~;h! i!j!1, k!l!m!n!o! p!q!r!s!t! u!v!w!x! y!z!}&A! B!C!D!E!F! G!>=h>H!I! J!K!L!M! N!O!P!Q!R!S! T!U!V!W!X! Y!Z!`! ~ h,.~+~@~ ", ! "{ 1 m } [ j l F Z ^.g.f.x.G)H) =0'K)b'#~&,$~O)g'h'i'3-R)k'T)r&U)%~&~*~=~x.-~;~D.E.>~G..@,~'~)~!~ ~~{~]~^~/~ (~_~:~<~[~ }~|~1~2~3~ 4~5~6~7~8~9~ 0~a~b~c~d~ e~U&f~g~ h~i~j~k~l~ m~n~o~p~q~r~ s~t~u~v~w~y,x~ y~z~A~B~C~ D~E~P$F~G~ H~I~~;.*J~ K~i-L~M~g>N~ O~P~w!Q~R~S~ T~U~1;V~W~ X~Y~6%Z~`~ {.{s#+{@{#{ ${%{&{I'*{={ -{;{>{<),{'{ ){!{~{{{]{ ^{/{({_{:{ <{T&[{}{ ", ! "# ~ | ; < b k l F Z ^./.x.@,#,[-|{@=1-1{2{3{4{h'5{6{7{8{u;9{0{:-a{b{c{d{e{f{g{h{<.i{j{k{l{m{n{o{ p{q{r{s{ t{u{v{w{x{ y{z{A{B{C{ D{E{F{G{H{I{J{K{L{M{N{u*O{ P{Q{R{S{T{ U{V{W{X{Y{Z{`{ ]{,.]y'+] @]#]$]%]&]*] =]-];]>],]'])]!]~]{]]]^] /](]_]:]<] []}]|]1]2]3]4]5]6]7]8]9]0] a]b]c]+%d] e]f]g]h]i]j]k]l]m]n]o]p]q] r]s]t]u]v]w]x]y]z]A]B]C]D] E]F]G]H]I] J]K]L]M]N] O]P]Q]R]S] ", ! "` { 1 m } [ b k l F Y ^.x.T]U]s;V]+=W];,1{y;i'i'c'3-X]Y]Z]s&#,`]p&&~ ^.^+^@^#^$^x.%^&^*^-==^-^;^ >^,^'^)^!^ ~^{^]^^^ /^(^_^:^<^ [^}^|^1^2^3^4^5^6^7^8^9^ 0^a^b^c^d^ e^f^g^h^i^j^k^l^m^n^o^p^ q^r^s^t^u^v^ w^x^y^z^A^j^p>B^C^D^ E^F^G^H^ I^J^K^L^M^N^O^P^Q^R^u{S^T^ U^V^W^]@ X^Y^Z^`^ /./+/@/#/$/%/&/ */=/-/;/>/,/'/)/!/~/{/]/ ^///(/_/ :/</[/}/|/ 1/2/3/ #4/ ", ! "% # ~ ) > < [ j k l F Y x.5/:-0{6/7/8/9/0/a/w;a/7{b/a'c/t;s;d/e/f/g/h/.^i/j/k/l/m/n/o/_%p/!,q/r/ s/t/u/v/w/ x/y/z/A/ B/C/D/E/ F/G/I'H/I/ J/K/L/M/N/O/ P/Q/R/S/T/ U/V/W/X/Y/Z/ `/ (.(+( @(#(n]$(%( &(*(=(-(;(>(,( '()(!(~( {(/;Q*](^( /(((_(:(<([( }(|(1(2( 3(4(5(6(7(8( 9(0(a(b(c( d(e(f(g(h( i(j(k(l(m( n(o(p(q( r(s(t(u( v(w(x(y(z( ", ! "& 4 3 ~ | > < [ b j k l x.A(B(d/C(I)D(S)a'E(9/9/K)F(G(T)H(#,I(J(K(L(M(N(O(P(Q(j.F.G.k{,~R(.!S(T( U(V(W(X(Y( g&Z(`( _._ +_u$@_#_$_ %_&_w, *_=_Y@-_;_ ", ! "G 5 ` { 1 | > < [ b j j x.>_;%>%,_s;'_Z])_+=S)S)u;7/t;H(H)U)e/!_~_{_]_^_/_s ]%<.(_z&*^l{__n{:_<_ [_}_]!|_1_ 2_3_4_5_6_ 7_8_9_0_ a_b_c_d_ e_f_g_h_i_ ", ! "6 G % ] { (.) j_} < [ [ x.k_-%a{l_q&m_[-I)n_t;t;o_[-p_#,U)q_r_s_c{t_u_v_w_x_E.y_z_Z)A_q'B_C_D_E_ F_G_H_I_ J_K_L_M__*N_O_P_ Q_R_W!S_ T_U_V_W_X_Y_Z_`_ :.:+:@:#: ", ! "c l#Y+% ] { (.) ' > } < x.$:%:!_;%>%Z*#,0{r&s;s;0{H)d/:-e/&:b{*:=:9 q ..s @.<.-:;:>:,:R(':!~):!: ~:{:]:^: /:(:_:::<:[:}: |:1:2:3:4: 5:6:7:8:9:0:a:W@b:D>8$c: ", ! "d:c l#Y+x&` 3 e:(.) ' , x.f:g:~_-%p&h:i:j:U)U)U):-`]e/;%!_k:l:o p m:h :.K n:>~o:p:_%q:r:s:;^t:u: v:w:x:y:z: A:B:C:D:E:F: G:H:I:J:K: L:M:N:O:P:Q:R:S:6_T: ", ! " n c 6 G 5 4 ] { 2 (.! x.U:M( ^V:W:!_p&;%%~%~%~a{p&X:Y:Z:n Z+f g I w_+.@.^%-:z&>:,~R(.!!~`: < ", ! " e n ( 6 / & x&4 ] 3 @ x..<+<@<h/g:#<$<%<-%-%-%&<*<=<( n Z+f g C...s ]%-<i{;<.@_%-=F;-^:_<_>< ", ! " ,<Z+h.7 c l#G & x&% 4 x.'<i/)<.^M(h/ ^c{!<~<{<]<c d h. .f g q ..s K ^<>~ @(%*^l{R(':!~T(/<(< ", ! " f ._ d ( c l#* Y+Y+x._<:<O(<<[<.^]_@<}<|<c ( n e .f g C...:.K E.`+1<2<k{,~ !!,C_;^<_3< ", ! " g p : Z+_ d ( c = 6 x.4<5<6<7<8<i/9<0<c 7 n _ Z+H 9 _.I ..s K a<m#/%j{b<c<q'=^n{d<):e<f< ", ! " _.9 f : Z+_ n d 7 x.g<h<k/5<i<j<7 d n _ Z+: p i.q h w_s K k<m#k.G..@A&l<__)~S(`:E_m< ", ! " n<C._.i.o<H .Z+e x.p<q<r<s<_ 8 e t<: f p u<_.I r J +.]%n:`+y&G.Z)*^l<R(.!C_v<t:><w< x<>{>{>{>{y< >{y< >{ >{ y<x< x<x< y<x< >{y< >{ x<>{>{>{u=z< >{y< A<>{y< >{y< u=x< x<x< >{y<y<>{ ", ! " ..h C._.g 9 p f x.B<C<: : H H f p 9 g q I r w_s D.@.j.>~/%j{Z)*^D<'~r'-^:_E<e<f< F<G< >{z< u= u= A<G< x<x< >{z< y< u= F<G<H<H<F<x< >{z< u=A< >{x< A<>{G< z<z< >{z<A<u= ", ! " :.w_r h C.q _.I<J<g g g g _._.K<I L<..J s D.]%k<^%i{M<2<N<A&O<'~P<-^o{T( <Q< >{y< x<u=>{u=u=>{G< y<>{u=>{G< x<>{>{z< z<F<>{F<x< z<F<>{F<x< z<F<>{u= A<u=u=u=y< y<>{ G<F< y<>{ z<F<>{F<x< z<F<>{u= A<u=u=A< >{y<H<H<u=A<y<>{H<A<>{>{u= x<y< x<y< x<>{>{z< x<x<u= x<>{>{ z<F<>{x< >{G<x< y<>{>{ A<F<>{y< A<u=u=A< x<>{>{>{y< >{y<y<>{H<x<x< F<>{>{G< ", ! " R<D.s J w_..r h I I I I I h r ..w_:.s D.]%k<-<`+-:z_(%k{_%l<R(!,-^S<T(/<m<T< z<>{F<x<x< u=G<y<>{y<y<x< G<F<z<z<u= x<A<U<F<G< F<y<U<>{A< F<y<U<>{A< F<y<U<>{z<y<x<z<A<>{ y<>{ u= G<G< F<y<U<>{A< F<y<U<>{z<y<x<z<A<u= z<>{F<x<F<G< G<G<H<x<z<A<>{ G<A< A<u=H<x<A<U<F<G< u=u=y< z<>{ F<y<U<>{z<z<>{x<z< G<G<x< u=G<>{U<y<x<z<A<u= x<A<H<z<F<U<G<G<H<u=z<z<G<U<F<x< ", ! " V<@.K D.+.s s :.:.:.:.:.s s W<D.]%@.n:-<>~k.z_2<.@*^,~X<__Y<-^d<T(Z<m<f< y<x< >{ y<>{H<y<x< x<y<H<H<>{A<>{x<x<u=x<F<A<H<H<>{y<F<A<H<H<>{y<F<u=x<x<>{G<u=U<H<y<>{ y<>{ F<A< x<y<F<A<H<H<>{y<F<u=x<x<>{G<u=U<H<y<>{ y<x< x<y<H<A<>{>{x< y<x< u=A<A<>{x<x<u=x< >{ y<>{ F<A<H<H<>{y<y<x< x<y<x<y<G<G<y<>{z<u=U<H<y<>{ u=A<H<H<y<x<H<x<y<H<>{H<H<F<>{>{y< ", ! " ^%j.E.@.@.]%]%K K K ]%@.@.k<^<-<m#>~k. @j{n#k{A&D<`< [.!C_o{T(.[m<+[ x<y< y<x< x<x<H<>{y< >{H<H<F<G<x<F<y<y<y< >{y<H<z<>{ >{y<H<z<>{ >{G<y<y<y<y<>{H<H<G<F< >{y<u= >{ >{y<H<z<>{ >{G<y<y<y<y<>{H<H<G<F< x<y< >{ A<x<z<x<x< u=A<F< x<F<y<y<y< y<x< x<y< >{y<H<z<>{U<x<y< >{ G<G<u= x<y<y<>{H<H<G<F< x<A<H<H<H<x<y<H<>{ y<x<U<x<A<U<>{y< ", ! " @[>~m#m#<.-<<.<.<.-<#[`+>~i{-: @$[2<Z)k{%[`)l< !r:&[S(v<E< <m<*[ z<u= F<A< u=z<z<>{ A<>{z<A<>{ z<u=H<F<G< G<G<z<u=F< G<G<z<u=F< G<G<z<u=z< F<z<A<>{A< >{>{z< A<F< G<G<z<u=F< G<G<z<u=z< F<z<A<F< z<u= A<F< >{y<x<>{ F<>{ z<u=H<F<G< F<A< u= G<G<z<u=z<z<u= A<F< y<>{y< u= F<z<A<F< u=A<H<H<H<z<u= A<F< F<A<y<>{z<F<x< ", ! " =[z_1</%-:-:-:-:-:y& @z_G.2<(%.@>:A&,~-= !=^.!-^S<r/<_ <-[ z<x<x<x<x<x< x<z< x< z<x< A<G<x<x< A<x<A< G<x<G<A< G<x<G<A< G<x<z< z<x<G<x<z< x<A< A<A< G<x<G<A< G<x<z< z<x<G< z<x< A<A< A<x<y<x< x<F< A<x<A< x<z< x< G<x<z< z<x< A<A< z<x< x< z<x<G< x<x<x<x<z<z<x< A<A< x<z< G<G<A<A< ", ! " ;[z&(%2<2<2<z&>[n#Z)b<>:,[c<D<-='~ [r'n{'[:_)[E_![~[ z<F< ", ! " *^*^*^*^*^A&_%`),~l{-= !R(r:.!n{q/o{`:<_ <{[ ", ! " l<l<l<-=q'`<'~__=^][':-^S(o{r/E<.[^[ ", ! " /[!,.!)~n{-^S(S<([`:<__[ ", ! " "}; |
From: <kde...@us...> - 2004-02-05 20:48:43
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in/pixmaps In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24162 Added Files: pause_down_small.xpm pause_down.xpm pause_up_small.xpm pause_up.xpm play_down_small.xpm play_down.xpm play_up_small.xpm play_up.xpm stop_down_small.xpm stop_down.xpm stop_up_small.xpm stop_up.xpm Log Message: Added button images for UI --- NEW FILE: pause_down_small.xpm --- /* XPM */ static char *pause_down_small[]={ "16 12 6 1", "c c #585858", ". c #b4b4b4", "# c #cfcfcf", "d c #d0d0d0", "a c #d9d9d9", "b c #ffffff", "...............#", ".aaaaaaaaaaaaaab", ".aaaaaaaaaaaaaab", ".aaaaacaacaaaaab", ".aaaaacaacaaaaab", ".aaaaacaacaaaaab", ".aaaaacaacaaaaab", ".aaaaacaacaaaaab", ".aaaaacaacaaaaab", ".aaaaaaaaaaaaaab", ".aaaaaaaaaaaaaab", "dbbbbbbbbbbbbbbb"}; --- NEW FILE: pause_down.xpm --- /* XPM */ static char *pause_down[]={ "32 24 4 1", "b c #585858", ". c #b4b4b4", "# c #d9d9d9", "a c #ffffff", "................................", "..............................#a", "..############################aa", "..############################aa", "..############################aa", "..############################aa", "..##########bbb##bbb##########aa", "..##########bbb##bbb##########aa", "..##########bbb##bbb##########aa", "..##########bbb##bbb##########aa", "..##########bbb##bbb##########aa", "..##########bbb##bbb##########aa", "..##########bbb##bbb##########aa", "..##########bbb##bbb##########aa", "..##########bbb##bbb##########aa", "..##########bbb##bbb##########aa", "..##########bbb##bbb##########aa", "..##########bbb##bbb##########aa", "..############################aa", "..############################aa", "..############################aa", "..############################aa", ".#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", ".aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}; --- NEW FILE: pause_up_small.xpm --- /* XPM */ static char *pause_up_small[]={ "16 12 6 1", "d c #585858", "c c #b4b4b4", "a c #c6c6c6", "b c #d9d9d9", "# c #ececec", ". c #ffffff", ".##############a", ".bbbbbbbbbbbbbbc", ".bbbbbbbbbbbbbbc", ".bbbbbdbbdbbbbbc", ".bbbbbdbbdbbbbbc", ".bbbbbdbbdbbbbbc", ".bbbbbdbbdbbbbbc", ".bbbbbdbbdbbbbbc", ".bbbbbdbbdbbbbbc", ".bbbbbbbbbbbbbbc", ".bbbbbbbbbbbbbbc", "accccccccccccccc"}; --- NEW FILE: pause_up.xpm --- /* XPM */ static char *pause_up[]={ "32 24 4 1", "b c #585858", "# c #b4b4b4", "a c #d9d9d9", ". c #ffffff", "...............................#", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaabbbaabbbaaaaaaaaaa##", "..aaaaaaaaaabbbaabbbaaaaaaaaaa##", "..aaaaaaaaaabbbaabbbaaaaaaaaaa##", "..aaaaaaaaaabbbaabbbaaaaaaaaaa##", "..aaaaaaaaaabbbaabbbaaaaaaaaaa##", "..aaaaaaaaaabbbaabbbaaaaaaaaaa##", "..aaaaaaaaaabbbaabbbaaaaaaaaaa##", "..aaaaaaaaaabbbaabbbaaaaaaaaaa##", "..aaaaaaaaaabbbaabbbaaaaaaaaaa##", "..aaaaaaaaaabbbaabbbaaaaaaaaaa##", "..aaaaaaaaaabbbaabbbaaaaaaaaaa##", "..aaaaaaaaaabbbaabbbaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", ".###############################", "################################"}; --- NEW FILE: play_down_small.xpm --- /* XPM */ static char *play_down_small[]={ "16 12 6 1", "c c #585858", ". c #b4b4b4", "# c #cfcfcf", "d c #d0d0d0", "a c #d9d9d9", "b c #ffffff", "...............#", ".aaaaaaaaaaaaaab", ".aaaaaaaaaaaaaab", ".aaaacacaaaaaaab", ".aaaacaccaaaaaab", ".aaaacacccaaaaab", ".aaaacacccaaaaab", ".aaaacaccaaaaaab", ".aaaacacaaaaaaab", ".aaaaaaaaaaaaaab", ".aaaaaaaaaaaaaab", "dbbbbbbbbbbbbbbb"}; --- NEW FILE: play_down.xpm --- /* XPM */ static char *play_down[]={ "32 24 4 1", "b c #585858", ". c #b4b4b4", "# c #d9d9d9", "a c #ffffff", "................................", "..............................#a", "..############################aa", "..############################aa", "..############################aa", "..############################aa", "..#########bb#bb##############aa", "..#########bb#bbb#############aa", "..#########bb#bbbb############aa", "..#########bb#bbbbb###########aa", "..#########bb#bbbbbb##########aa", "..#########bb#bbbbbbb#########aa", "..#########bb#bbbbbbb#########aa", "..#########bb#bbbbbb##########aa", "..#########bb#bbbbb###########aa", "..#########bb#bbbb############aa", "..#########bb#bbb#############aa", "..#########bb#bb##############aa", "..############################aa", "..############################aa", "..############################aa", "..############################aa", ".#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", ".aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}; --- NEW FILE: play_up_small.xpm --- /* XPM */ static char *play_up_small[]={ "16 12 6 1", "d c #585858", "c c #b4b4b4", "a c #c6c6c6", "b c #d9d9d9", "# c #ececec", ". c #ffffff", ".##############a", ".bbbbbbbbbbbbbbc", ".bbbbbbbbbbbbbbc", ".bbbbdbdbbbbbbbc", ".bbbbdbddbbbbbbc", ".bbbbdbdddbbbbbc", ".bbbbdbdddbbbbbc", ".bbbbdbddbbbbbbc", ".bbbbdbdbbbbbbbc", ".bbbbbbbbbbbbbbc", ".bbbbbbbbbbbbbbc", "accccccccccccccc"}; --- NEW FILE: play_up.xpm --- /* XPM */ static char *play_up[]={ "32 24 4 1", "b c #585858", "# c #b4b4b4", "a c #d9d9d9", ". c #ffffff", "...............................#", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaabbabbaaaaaaaaaaaaaaa##", "..aaaaaaaabbabbbaaaaaaaaaaaaaa##", "..aaaaaaaabbabbbbaaaaaaaaaaaaa##", "..aaaaaaaabbabbbbbaaaaaaaaaaaa##", "..aaaaaaaabbabbbbbbaaaaaaaaaaa##", "..aaaaaaaabbabbbbbbbaaaaaaaaaa##", "..aaaaaaaabbabbbbbbbaaaaaaaaaa##", "..aaaaaaaabbabbbbbbaaaaaaaaaaa##", "..aaaaaaaabbabbbbbaaaaaaaaaaaa##", "..aaaaaaaabbabbbbaaaaaaaaaaaaa##", "..aaaaaaaabbabbbaaaaaaaaaaaaaa##", "..aaaaaaaabbabbaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", ".###############################", "################################"}; --- NEW FILE: stop_down_small.xpm --- /* XPM */ static char *stop_down_small[]={ "16 12 6 1", "c c #585858", ". c #b4b4b4", "# c #cfcfcf", "d c #d0d0d0", "a c #d9d9d9", "b c #ffffff", "...............#", ".aaaaaaaaaaaaaab", ".aaaaaaaaaaaaaab", ".aaaaaaaaaaaaaab", ".aaaaaccccaaaaab", ".aaaaaccccaaaaab", ".aaaaaccccaaaaab", ".aaaaaccccaaaaab", ".aaaaaaaaaaaaaab", ".aaaaaaaaaaaaaab", ".aaaaaaaaaaaaaab", "dbbbbbbbbbbbbbbb"}; --- NEW FILE: stop_down.xpm --- /* XPM */ static char *stop_down[]={ "32 24 4 1", "b c #585858", ". c #b4b4b4", "# c #d9d9d9", "a c #ffffff", "................................", "..............................#a", "..############################aa", "..############################aa", "..############################aa", "..############################aa", "..############################aa", "..#########bbbbbbbbbb#########aa", "..#########bbbbbbbbbb#########aa", "..#########bbbbbbbbbb#########aa", "..#########bbbbbbbbbb#########aa", "..#########bbbbbbbbbb#########aa", "..#########bbbbbbbbbb#########aa", "..#########bbbbbbbbbb#########aa", "..#########bbbbbbbbbb#########aa", "..#########bbbbbbbbbb#########aa", "..#########bbbbbbbbbb#########aa", "..############################aa", "..############################aa", "..############################aa", "..############################aa", "..############################aa", ".#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", ".aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"}; --- NEW FILE: stop_up_small.xpm --- /* XPM */ static char *stop_up_small[]={ "16 12 6 1", "d c #585858", "c c #b4b4b4", "a c #c6c6c6", "b c #d9d9d9", "# c #ececec", ". c #ffffff", ".##############a", ".bbbbbbbbbbbbbbc", ".bbbbbbbbbbbbbbc", ".bbbbbbbbbbbbbbc", ".bbbbbddddbbbbbc", ".bbbbbddddbbbbbc", ".bbbbbddddbbbbbc", ".bbbbbddddbbbbbc", ".bbbbbbbbbbbbbbc", ".bbbbbbbbbbbbbbc", ".bbbbbbbbbbbbbbc", "accccccccccccccc"}; --- NEW FILE: stop_up.xpm --- /* XPM */ static char *stop_up[]={ "32 24 4 1", "b c #585858", "# c #b4b4b4", "a c #d9d9d9", ". c #ffffff", "...............................#", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaabbbbbbbbbbaaaaaaaaa##", "..aaaaaaaaabbbbbbbbbbaaaaaaaaa##", "..aaaaaaaaabbbbbbbbbbaaaaaaaaa##", "..aaaaaaaaabbbbbbbbbbaaaaaaaaa##", "..aaaaaaaaabbbbbbbbbbaaaaaaaaa##", "..aaaaaaaaabbbbbbbbbbaaaaaaaaa##", "..aaaaaaaaabbbbbbbbbbaaaaaaaaa##", "..aaaaaaaaabbbbbbbbbbaaaaaaaaa##", "..aaaaaaaaabbbbbbbbbbaaaaaaaaa##", "..aaaaaaaaabbbbbbbbbbaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", "..aaaaaaaaaaaaaaaaaaaaaaaaaaaa##", ".###############################", "################################"}; |
From: <kde...@pr...> - 2004-01-30 23:49:18
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in/Source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21001/Source Modified Files: mplayerplug-in.c mplayerplug-in.h support.c Log Message: Applied Alexandre Pereira da Silva's player manager work. Should help those with "ps" issues. Index: mplayerplug-in.c =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/mplayerplug-in.c,v retrieving revision 1.150 retrieving revision 1.151 diff -C2 -d -r1.150 -r1.151 *** mplayerplug-in.c 26 Jan 2004 17:16:34 -0000 1.150 --- mplayerplug-in.c 29 Jan 2004 14:28:40 -0000 1.151 *************** *** 288,291 **** --- 288,294 ---- return NPERR_INVALID_INSTANCE_ERROR; + //Get rid of zombie processes + signal(SIGCHLD, SIG_IGN); + instance->pdata = NPN_MemAlloc(sizeof(PluginInstance)); This = (PluginInstance *) instance->pdata; *************** *** 403,408 **** NPError NPP_Destroy(NPP instance, NPSavedData ** save) { ! ! char cmd[1024]; PluginInstance *This; int ret; --- 406,410 ---- NPError NPP_Destroy(NPP instance, NPSavedData ** save) { ! int count, status; PluginInstance *This; int ret; *************** *** 426,429 **** --- 428,452 ---- if (DEBUG) ret = fclose(This->logfp); + + if(!This->height && !This->width && This->pid) { + if(DEBUG) + printf("Trying to kill mplayer process(%d), if it still exists\n", This->pid); + + sendCommand(This->control, "quit"); + + count = 0; + status = 1; + while(status && count<10) { + status = kill(This->pid, 15); + usleep(10); + count++; + } + + if(status) + kill(This->pid, 9); + + if(This->control) + fclose(This->control); + } } /* cleanup streams and files */ *************** *** 433,457 **** pthread_cond_destroy(&(This->playlist_complete_cond)); ! if (This != NULL) { ! if (DEBUG) ! printf("Freeing memory\n"); ! if (This->td != NULL) { ! if (DEBUG) ! printf("This->td = %p\n", This->td); ! NPN_MemFree(This->td); ! This->td = NULL; ! if (DEBUG) ! printf("This->td freed\n"); ! } ! NPN_MemFree(instance->pdata); ! This = NULL; ! instance->pdata = NULL; if (DEBUG) ! printf("This freed\n"); } return NPERR_NO_ERROR; - } --- 456,478 ---- pthread_cond_destroy(&(This->playlist_complete_cond)); ! if (DEBUG) ! printf("Freeing memory\n"); ! if (This->td != NULL) { if (DEBUG) ! printf("This->td = %p\n", This->td); ! NPN_MemFree(This->td); ! This->td = NULL; ! if (DEBUG) ! printf("This->td freed\n"); } + NPN_MemFree(instance->pdata); + This = NULL; + instance->pdata = NULL; + if (DEBUG) + printf("This freed\n"); + return NPERR_NO_ERROR; } *************** *** 1100,1105 **** { PluginInstance *This = (PluginInstance *) client_data; ! char cmd[2048], buffer[1024]; ! int count, tries; FILE *ps; Node *n; --- 1121,1125 ---- { PluginInstance *This = (PluginInstance *) client_data; ! int count, status; FILE *ps; Node *n; *************** *** 1107,1117 **** if (DEBUG) printf("window destroy callback\n"); if (widget == This->netscape_widget) { - if (This == NULL) - return; DESTROYED = 1; ! sendCommand(This->fifoname, "quit"); if (DEBUG) ! printf("sent quit\n"); pthread_mutex_lock(&(This->playlist_mutex)); --- 1127,1138 ---- if (DEBUG) printf("window destroy callback\n"); + if(This == NULL) + return; if (widget == This->netscape_widget) { DESTROYED = 1; ! if (DEBUG) ! printf("sending quit\n"); ! sendCommand(This->control, "quit"); pthread_mutex_lock(&(This->playlist_mutex)); *************** *** 1128,1182 **** printf("starting wait loop\n"); ! n = This->td->list; ! while (n != NULL) { ! if (n->play == 1) { ! tries = 0; ! do { ! if (n->mmsstream == 1) ! snprintf(cmd, 2000, ! "ps -eaf | grep mplayer | grep %s | wc -l", ! n->url); ! else ! snprintf(cmd, 2000, ! "ps -eaf | grep mplayer | grep %s | wc -l", ! n->fname); ! if (DEBUG) ! printf("issuing command:%s\n", cmd); ! ps = popen(cmd, "r"); ! if (ps != NULL) { ! while (fgets(buffer, 1024, ps) != NULL) { ! if (DEBUG) ! printf("buffer %s\n", buffer); ! sscanf(buffer, "%i", &count); ! if (DEBUG) ! printf ! ("waiting for mplayer to close count = %i\n", ! count); ! } ! pclose(ps); ! } ! // if mplayer has not shutdown after 10 tries... kill it ! tries++; ! if (tries > 10) { ! if (n->mmsstream == 1) ! snprintf(cmd, 2000, ! "ps -eaf | grep mplayer | grep %s | grep -v grep | awk '{print $2}' | xargs kill -9", ! n->url); ! else ! snprintf(cmd, 2000, ! "ps -eaf | grep mplayer | grep %s | grep -v grep | awk '{print $2}' | xargs kill -9", ! n->fname); ! ps = popen(cmd, "r"); ! if (ps != NULL) { ! pclose(ps); ! } ! } ! } while (count > 1); } ! n = n->next; } ! remove(This->fifoname); deleteList(This->td->list); This->td->list == NULL; --- 1149,1172 ---- printf("starting wait loop\n"); ! //Try to kill mplayer process ! if(This->pid) ! { ! sendCommand(This->control, "quit"); ! count = 0; ! status = 1; ! while(status && count<10) { ! status = kill(This->pid, 15); ! usleep(10); ! count++; ! } ! if(status) { ! printf("terminating mplayer\n"); ! kill(This->pid, 9); } ! This->pid=0; } ! deleteList(This->td->list); This->td->list == NULL; *************** *** 1203,1207 **** } - This->td = (ThreadData *) NPN_MemAlloc(sizeof(ThreadData)); This->td->list = newNode(); --- 1193,1196 ---- Index: mplayerplug-in.h =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/mplayerplug-in.h,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** mplayerplug-in.h 26 Jan 2004 17:16:35 -0000 1.40 --- mplayerplug-in.h 29 Jan 2004 14:28:40 -0000 1.41 *************** *** 23,26 **** --- 23,27 ---- #include <X11/StringDefs.h> #include <sys/stat.h> + #include <sys/types.h> #include "../config.h" *************** *** 102,105 **** --- 103,108 ---- uint32 embed_height; FILE *logfp; + FILE *control; + pid_t pid; char *logfile; char *output_display; *************** *** 140,144 **** pthread_cond_t playlist_complete_cond; pthread_mutex_t playlist_mutex; - char *fifoname; int noredraw; } PluginInstance; --- 143,146 ---- *************** *** 170,173 **** extern char *getURLFilename(char *url); extern int isMms(char *url); ! extern void sendCommand(char *fname, char *command); extern int URLcmp(const char *url1, const char *url2); --- 172,175 ---- extern char *getURLFilename(char *url); extern int isMms(char *url); ! extern void sendCommand(FILE *control, char *command); extern int URLcmp(const char *url1, const char *url2); Index: support.c =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/support.c,v retrieving revision 1.78 retrieving revision 1.79 diff -C2 -d -r1.78 -r1.79 *** support.c 26 Jan 2004 19:34:36 -0000 1.78 --- support.c 29 Jan 2004 14:28:40 -0000 1.79 *************** *** 81,88 **** This->threadsignaled = 0; This->hrefrequested = 0; This->lastmessage = (char *) NPN_MemAlloc(sizeof(char) * 1024); snprintf(This->lastmessage,1,""); pthread_mutex_init(&(This->playlist_mutex), NULL); - This->fifoname = tempnam("/tmp", "fifoXXXXXX"); This->noredraw = 0; } --- 81,89 ---- This->threadsignaled = 0; This->hrefrequested = 0; + This->control = NULL; + This->pid = 0; This->lastmessage = (char *) NPN_MemAlloc(sizeof(char) * 1024); snprintf(This->lastmessage,1,""); pthread_mutex_init(&(This->playlist_mutex), NULL); This->noredraw = 0; } *************** *** 448,459 **** } ! void sendCommand(char *fname, char *command) { ! FILE *fifo; ! ! fifo = fopen(fname, "w"); ! if (fifo != NULL) { ! fprintf(fifo, "%s\n", command); ! fclose(fifo); } } --- 449,457 ---- } ! void sendCommand(FILE *control, char *command) { ! if(control != NULL) { ! fprintf(control, "%s\n", command); ! fflush(control); } } *************** *** 1147,1150 **** --- 1145,1183 ---- } + FILE *mypopen(char **argv, pid_t *pid, FILE **control) + { + int filedesr[2], filedesw[2]; + pid_t child; + + pipe(filedesr); + pipe(filedesw); + child = fork(); + + if(!child) { + if(DEBUG) { + char **tmp; + tmp = argv; + printf("Starting: "); + while(*tmp) + printf("%s ", *(tmp++)); + printf("\n"); + } + + dup2(filedesw[0], 0); + dup2(filedesr[1], 1); + dup2(filedesr[1], 2); + setsid(); + setpgid(0, 0); + + if(execvp(argv[0], argv)<0) + perror("execv"); + _exit(0); + } else { + *pid=child; + *control=fdopen(filedesw[1], "w"); + return fdopen(filedesr[0], "r"); + } + } + void *playPlaylist(void *td) { *************** *** 1159,1162 **** --- 1192,1197 ---- char mmsplaylist[1024]; char *eos; + char *argv[256]; + int argc=0; ThreadData *local_td; Node *local_list, *copy; *************** *** 1199,1207 **** if (DEBUG) printf("building command string\n"); while (strcmp(local_td->argv[i], "") != 0) { if (DEBUG) printf("PLAY %i:%s\n", i, local_td->argv[i]); - strlcat(cmd, local_td->argv[i], sizeof(cmd)); - strlcat(cmd, " ", sizeof(cmd)); i++; } --- 1234,1242 ---- if (DEBUG) printf("building command string\n"); + while (strcmp(local_td->argv[i], "") != 0) { + argv[argc++]=local_td->argv[i]; if (DEBUG) printf("PLAY %i:%s\n", i, local_td->argv[i]); i++; } *************** *** 1238,1254 **** DrawUI(This->netscape_widget, local_td->instance, message, 0, -1); if (copy->play) { ! strlcpy(command, cmd, sizeof(command)); // for rtsp streams we need to specify FPS if (strncmp(copy->url, "rtsp", 4) == 0) { ! strlcat(command, " -fps ", sizeof(command)); ! strlcat(command, " 30 ", sizeof(command)); } if (copy->playlist == 1) ! strlcat(command, " -playlist ", sizeof(command)); ! strlcat(command, "\'", sizeof(command)); if (copy->mmsstream) { ! remove_quotes(copy->url); ! strlcat(command, copy->url, sizeof(command)); if (This->keep_download) { snprintf(mmsplaylist, sizeof(mmsplaylist), --- 1273,1287 ---- DrawUI(This->netscape_widget, local_td->instance, message, 0, -1); if (copy->play) { ! // for rtsp streams we need to specify FPS if (strncmp(copy->url, "rtsp", 4) == 0) { ! argv[argc++]="-fps"; ! argv[argc++]="30"; } if (copy->playlist == 1) ! argv[argc++]="-playlist"; if (copy->mmsstream) { ! argv[argc++]=copy->url; if (This->keep_download) { snprintf(mmsplaylist, sizeof(mmsplaylist), *************** *** 1273,1288 **** continue; */ ! strlcat(command, copy->url, sizeof(command)); } else { ! strlcat(command, copy->fname, sizeof(command)); } } - strlcat(command, "\' <> ", sizeof(command)); - mkfifo(This->fifoname, S_IWUSR | S_IRUSR); - strlcat(command, This->fifoname, sizeof(command)); if (DEBUG) { printf("URL: %s\n", copy->url); - printf("CMD: %s\n", command); } --- 1306,1317 ---- continue; */ ! argv[argc++]=copy->url; } else { ! argv[argc++]=copy->fname; } } if (DEBUG) { printf("URL: %s\n", copy->url); } *************** *** 1305,1309 **** } ! player = popen(command, "r"); This->state = STATE_PLAYING; if (player != NULL) { --- 1334,1340 ---- } ! argv[argc++]=NULL; ! player = mypopen(argv, &This->pid, &This->control); ! This->state = STATE_PLAYING; if (player != NULL) { *************** *** 1364,1374 **** } } ! pclose(player); if (DEBUG) printf("pclose done\n"); - // close the fifo - remove(This->fifoname); - if (DEBUG) - printf("fifo removed\n"); This->state = STATE_PLAYLIST_NEXT; } --- 1395,1404 ---- } } ! ! fclose(This->control); ! fclose(player); ! if (DEBUG) printf("pclose done\n"); This->state = STATE_PLAYLIST_NEXT; } |
From: <kde...@pr...> - 2004-01-30 22:30:52
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21001 Modified Files: ChangeLog Makefile.in Log Message: Applied Alexandre Pereira da Silva's player manager work. Should help those with "ps" issues. Index: ChangeLog =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/ChangeLog,v retrieving revision 1.136 retrieving revision 1.137 diff -C2 -d -r1.136 -r1.137 *** ChangeLog 28 Jan 2004 02:45:04 -0000 1.136 --- ChangeLog 29 Jan 2004 14:28:39 -0000 1.137 *************** *** 22,25 **** --- 22,26 ---- Solaris compile issue - change stat.c references to lstat.c Fixed compile issue in lstat.c + Applied Alexandre Pereira da Silva's player manager work. Should help those with "ps" issues. 1.2 QuickTime streaming, speed work Index: Makefile.in =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Makefile.in,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** Makefile.in 26 Jan 2004 20:29:17 -0000 1.14 --- Makefile.in 29 Jan 2004 14:28:39 -0000 1.15 *************** *** 63,66 **** --- 63,69 ---- # $(INSTALL) mplayerplug-in.types $(HOME)/.mplayer + uninstall: + rm $(HOME)/.mozilla/plugins/$(SHAREDTARGET) + sysinstall: $(SHAREDTARGET) if [ ! -d /usr/lib/mozilla/plugins ]; then mkdir /usr/lib/mozilla/plugins; fi |
From: <kde...@pr...> - 2004-01-28 02:46:14
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in/Source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16008/Source Modified Files: lstat.c Log Message: Fixup a few things Index: lstat.c =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/lstat.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** lstat.c 26 Jan 2004 20:29:22 -0000 1.1 --- lstat.c 28 Jan 2004 02:45:04 -0000 1.2 *************** *** 23,27 **** /* written by Jim Meyering */ ! #include <config.h> #include <sys/types.h> --- 23,27 ---- /* written by Jim Meyering */ ! #include <../config.h> #include <sys/types.h> |
From: <kde...@pr...> - 2004-01-28 02:46:12
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16008 Modified Files: ChangeLog Log Message: Fixup a few things Index: ChangeLog =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/ChangeLog,v retrieving revision 1.135 retrieving revision 1.136 diff -C2 -d -r1.135 -r1.136 *** ChangeLog 26 Jan 2004 20:29:03 -0000 1.135 --- ChangeLog 28 Jan 2004 02:45:04 -0000 1.136 *************** *** 21,24 **** --- 21,25 ---- Account for CR and LF instead of just LF in RM playlists Solaris compile issue - change stat.c references to lstat.c + Fixed compile issue in lstat.c 1.2 QuickTime streaming, speed work |
From: <kde...@pr...> - 2004-01-26 20:31:04
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14475 Modified Files: ChangeLog Makefile.in Log Message: Solaris compile issue - change stat.c references to lstat.c Index: ChangeLog =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/ChangeLog,v retrieving revision 1.134 retrieving revision 1.135 diff -C2 -d -r1.134 -r1.135 *** ChangeLog 26 Jan 2004 19:34:35 -0000 1.134 --- ChangeLog 26 Jan 2004 20:29:03 -0000 1.135 *************** *** 20,23 **** --- 20,24 ---- Fixed crash in ASX format handling, should fix http://www.rbcmp3.com Account for CR and LF instead of just LF in RM playlists + Solaris compile issue - change stat.c references to lstat.c 1.2 QuickTime streaming, speed work Index: Makefile.in =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Makefile.in,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Makefile.in 26 Jan 2004 17:16:34 -0000 1.13 --- Makefile.in 26 Jan 2004 20:29:17 -0000 1.14 *************** *** 51,56 **** $(CC) -c $(CFLAGS) Source/strlcpy.c ! stat.o: Source/stat.c $(HEADERS) ! $(CC) -c $(CFLAGS) Source/stat.c clean: --- 51,56 ---- $(CC) -c $(CFLAGS) Source/strlcpy.c ! lstat.o: Source/lstat.c $(HEADERS) ! $(CC) -c $(CFLAGS) Source/lstat.c clean: |
From: <kde...@pr...> - 2004-01-26 20:30:24
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in/Source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14475/Source Added Files: lstat.c Removed Files: stat.c Log Message: Solaris compile issue - change stat.c references to lstat.c --- NEW FILE: lstat.c --- /* Work around the bug in some systems whereby stat/lstat succeeds when given the zero-length file name argument. The stat/lstat from SunOS 4.1.4 has this bug. Also work around a deficiency in Solaris systems (up to at least Solaris 9) regarding the semantics of `lstat ("symlink/", sbuf).' Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* written by Jim Meyering */ #include <config.h> #include <sys/types.h> #include <sys/stat.h> #include <errno.h> #ifndef errno extern int errno; #endif #if defined LSTAT && ! LSTAT_FOLLOWS_SLASHED_SYMLINK # include <stdlib.h> # include <string.h> # ifdef STAT_MACROS_BROKEN # undef S_ISLNK # endif # ifndef S_ISLNK # ifdef S_IFLNK # define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) # else # define S_ISLNK(m) 0 # endif # endif # include "xalloc.h" /* lstat works differently on Linux and Solaris systems. POSIX (see `pathname resolution' in the glossary) requires that programs like `ls' take into consideration the fact that FILE has a trailing slash when FILE is a symbolic link. On Linux systems, the lstat function already has the desired semantics (in treating `lstat("symlink/",sbuf)' just like `lstat("symlink/.",sbuf)', but on Solaris it does not. If FILE has a trailing slash and specifies a symbolic link, then append a `.' to FILE and call lstat a second time. */ static int slash_aware_lstat(const char *file, struct stat *sbuf) { size_t len; char *new_file; int lstat_result = lstat(file, sbuf); if (lstat_result != 0 || !S_ISLNK(sbuf->st_mode)) return lstat_result; len = strlen(file); if (file[len - 1] != '/') return lstat_result; /* FILE refers to a symbolic link and the name ends with a slash. Append a `.' to FILE and repeat the lstat call. */ /* Add one for the `.' we'll append, and one more for the trailing NUL. */ new_file = xmalloc(len + 1 + 1); memcpy(new_file, file, len); new_file[len] = '.'; new_file[len + 1] = 0; lstat_result = lstat(new_file, sbuf); free(new_file); return lstat_result; } #endif /* LSTAT && ! LSTAT_FOLLOWS_SLASHED_SYMLINK */ /* This is a wrapper for stat/lstat. If FILE is the empty string, fail with errno == ENOENT. Otherwise, return the result of calling the real stat/lstat. This works around the bug in some systems whereby stat/lstat succeeds when given the zero-length file name argument. The stat/lstat from SunOS 4.1.4 has this bug. */ /* This function also provides a version of lstat with consistent semantics when FILE specifies a symbolic link and has a trailing slash. */ #ifdef LSTAT # define rpl_xstat rpl_lstat # if ! LSTAT_FOLLOWS_SLASHED_SYMLINK # define xstat_return_val(F, S) slash_aware_lstat (F, S) # else # define xstat_return_val(F, S) lstat (F, S) # endif #else # define rpl_xstat rpl_stat # define xstat_return_val(F, S) stat (F, S) #endif int rpl_xstat(const char *file, struct stat *sbuf) { if (file && *file == 0) { errno = ENOENT; return -1; } return xstat_return_val(file, sbuf); } --- stat.c DELETED --- |
From: <kde...@pr...> - 2004-01-26 19:35:34
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1696 Modified Files: ChangeLog Log Message: Account for CR and LF instead of just LF in RM playlists Index: ChangeLog =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/ChangeLog,v retrieving revision 1.133 retrieving revision 1.134 diff -C2 -d -r1.133 -r1.134 *** ChangeLog 26 Jan 2004 17:16:33 -0000 1.133 --- ChangeLog 26 Jan 2004 19:34:35 -0000 1.134 *************** *** 19,22 **** --- 19,23 ---- Fixed handling of This->baseurl Fixed crash in ASX format handling, should fix http://www.rbcmp3.com + Account for CR and LF instead of just LF in RM playlists 1.2 QuickTime streaming, speed work |
From: <kde...@pr...> - 2004-01-26 19:35:34
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in/Source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1696/Source Modified Files: support.c Log Message: Account for CR and LF instead of just LF in RM playlists Index: support.c =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/support.c,v retrieving revision 1.77 retrieving revision 1.78 diff -C2 -d -r1.77 -r1.78 *** support.c 26 Jan 2004 17:16:35 -0000 1.77 --- support.c 26 Jan 2004 19:34:36 -0000 1.78 *************** *** 1011,1014 **** --- 1011,1017 ---- } else { snprintf(url, 1024, "%s", p); + sub = strchr(url, 0xd); + if (sub != NULL) + sub[0] = '\0'; sub = strchr(url, 0xa); if (sub != NULL) *************** *** 1033,1036 **** --- 1036,1042 ---- } else { snprintf(url, 1024, "%s", p); + sub = strchr(url, 0xd); + if (sub != NULL) + sub[0] = '\0'; sub = strchr(url, 0xa); if (sub != NULL) |
From: <kde...@pr...> - 2004-01-26 19:06:10
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in/Source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25243 Added Files: progress_fill.xpm stat.c Log Message: Add missing files --- NEW FILE: progress_fill.xpm --- /* XPM */ static char * progress_fill_xpm[] = { "1 11 11 1", " c #7BFD79", ". c #5DFF5A", "+ c #30FD2D", "@ c #11FD0D", "# c #06FD02", "$ c #04FF00", "% c #05FD00", "& c #05F300", "* c #05D700", "= c #04B000", "- c #039400", " ", ".", "+", "@", "#", "$", "%", "&", "*", "=", "-"}; --- NEW FILE: stat.c --- /* Work around the bug in some systems whereby stat/lstat succeeds when given the zero-length file name argument. The stat/lstat from SunOS 4.1.4 has this bug. Also work around a deficiency in Solaris systems (up to at least Solaris 9) regarding the semantics of `lstat ("symlink/", sbuf).' Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* written by Jim Meyering */ #include <config.h> #include <sys/types.h> #include <sys/stat.h> #include <errno.h> #ifndef errno extern int errno; #endif #if defined LSTAT && ! LSTAT_FOLLOWS_SLASHED_SYMLINK # include <stdlib.h> # include <string.h> # ifdef STAT_MACROS_BROKEN # undef S_ISLNK # endif # ifndef S_ISLNK # ifdef S_IFLNK # define S_ISLNK(m) (((m) & S_IFMT) == S_IFLNK) # else # define S_ISLNK(m) 0 # endif # endif # include "xalloc.h" /* lstat works differently on Linux and Solaris systems. POSIX (see `pathname resolution' in the glossary) requires that programs like `ls' take into consideration the fact that FILE has a trailing slash when FILE is a symbolic link. On Linux systems, the lstat function already has the desired semantics (in treating `lstat("symlink/",sbuf)' just like `lstat("symlink/.",sbuf)', but on Solaris it does not. If FILE has a trailing slash and specifies a symbolic link, then append a `.' to FILE and call lstat a second time. */ static int slash_aware_lstat(const char *file, struct stat *sbuf) { size_t len; char *new_file; int lstat_result = lstat(file, sbuf); if (lstat_result != 0 || !S_ISLNK(sbuf->st_mode)) return lstat_result; len = strlen(file); if (file[len - 1] != '/') return lstat_result; /* FILE refers to a symbolic link and the name ends with a slash. Append a `.' to FILE and repeat the lstat call. */ /* Add one for the `.' we'll append, and one more for the trailing NUL. */ new_file = xmalloc(len + 1 + 1); memcpy(new_file, file, len); new_file[len] = '.'; new_file[len + 1] = 0; lstat_result = lstat(new_file, sbuf); free(new_file); return lstat_result; } #endif /* LSTAT && ! LSTAT_FOLLOWS_SLASHED_SYMLINK */ /* This is a wrapper for stat/lstat. If FILE is the empty string, fail with errno == ENOENT. Otherwise, return the result of calling the real stat/lstat. This works around the bug in some systems whereby stat/lstat succeeds when given the zero-length file name argument. The stat/lstat from SunOS 4.1.4 has this bug. */ /* This function also provides a version of lstat with consistent semantics when FILE specifies a symbolic link and has a trailing slash. */ #ifdef LSTAT # define rpl_xstat rpl_lstat # if ! LSTAT_FOLLOWS_SLASHED_SYMLINK # define xstat_return_val(F, S) slash_aware_lstat (F, S) # else # define xstat_return_val(F, S) lstat (F, S) # endif #else # define rpl_xstat rpl_stat # define xstat_return_val(F, S) stat (F, S) #endif int rpl_xstat(const char *file, struct stat *sbuf) { if (file && *file == 0) { errno = ENOENT; return -1; } return xstat_return_val(file, sbuf); } |
From: <kde...@pr...> - 2004-01-26 17:17:33
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in/Source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24802/Source Modified Files: mplayerplug-in.c mplayerplug-in.h support.c ui.c Log Message: Fix UI crasher FreeUI was called with uninitialized pointers Parse mplayer output to determine the actual size and play size of the media Support RealMedia with embedded rtsp streams, allows NASA TV to work needs enable-real=1 in mplayerplug-in.conf mplayer with RealMedia codecs and support Fix possible crash in NPP_Destroy Change buildPlaylist to be called from NPP_DestroyStream rather than after a magic value in NPP_Write This way we are sure we have the entire playlist downloaded. Found possible crash in smil format decode Added stat.c to make Solaris compile work Fixed bug in getURLBase Fixed handling of This->baseurl Fixed crash in ASX format handling, should fix http://www.rbcmp3.com Index: mplayerplug-in.c =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/mplayerplug-in.c,v retrieving revision 1.149 retrieving revision 1.150 diff -C2 -d -r1.149 -r1.150 *** mplayerplug-in.c 22 Jan 2004 01:55:00 -0000 1.149 --- mplayerplug-in.c 26 Jan 2004 17:16:34 -0000 1.150 *************** *** 415,418 **** --- 415,421 ---- This = (PluginInstance *) instance->pdata; + if (This == NULL) + return NPERR_NO_ERROR; // localdata already destroyed + pthread_mutex_lock(&(This->playlist_mutex)); DESTROYED = 1; *************** *** 624,627 **** --- 627,633 ---- } + if (This->baseurl == NULL) + This->baseurl = getURLBase((char *) stream->url); + if (This->mode == NP_FULL) { This->url = strdup(stream->url); *************** *** 718,722 **** } ! if (n->totalbytes != stream->end) n->totalbytes = stream->end; pthread_mutex_unlock(&(This->playlist_mutex)); return STREAMBUFSIZE; --- 724,729 ---- } ! if (n->totalbytes != stream->end) ! n->totalbytes = stream->end; pthread_mutex_unlock(&(This->playlist_mutex)); return STREAMBUFSIZE; *************** *** 735,739 **** // } addToEnd(This->td->list, n); ! if (n->totalbytes != stream->end) n->totalbytes = stream->end; pthread_mutex_unlock(&(This->playlist_mutex)); return STREAMBUFSIZE; --- 742,747 ---- // } addToEnd(This->td->list, n); ! if (n->totalbytes != stream->end) ! n->totalbytes = stream->end; pthread_mutex_unlock(&(This->playlist_mutex)); return STREAMBUFSIZE; *************** *** 753,756 **** --- 761,765 ---- Node *n, *hrefnode; char message[1024]; + char *baseurl; if (instance == NULL) *************** *** 774,778 **** if (This->td == NULL) return -1; - pthread_mutex_lock(&(This->playlist_mutex)); // find the node that matches the URL and open the file name in it. --- 783,786 ---- *************** *** 781,789 **** currdownload = 0; maxdownload = 0; ! for(n = This->td->list;n != NULL;n = n->next) { //if (URLcmp(n->url, stream->url) == 0) continue; //if (strstr(stream->url, n->url) == NULL) continue; ! if (n->play == 0) continue; ! if (n->cancelled) continue; currdownload += n->bytes; maxdownload += n->totalbytes; --- 789,799 ---- currdownload = 0; maxdownload = 0; ! for (n = This->td->list; n != NULL; n = n->next) { //if (URLcmp(n->url, stream->url) == 0) continue; //if (strstr(stream->url, n->url) == NULL) continue; ! if (n->play == 0) ! continue; ! if (n->cancelled) ! continue; currdownload += n->bytes; maxdownload += n->totalbytes; *************** *** 801,812 **** } ! if (n == NULL || n->cancelled) { pthread_mutex_unlock(&(This->playlist_mutex)); return -1; } else { if (n->status != STATE_CANCELLED) { fp = fopen(n->fname, "a+"); ! fflush(stdout); fseek(fp, offset, SEEK_SET); ret = fwrite(buffer, 1, len, fp); --- 811,829 ---- } ! if (n == NULL) { pthread_mutex_unlock(&(This->playlist_mutex)); return -1; } else { + if (n->cancelled == 1) { + pthread_mutex_unlock(&(This->playlist_mutex)); + return -1; + } if (n->status != STATE_CANCELLED) { fp = fopen(n->fname, "a+"); ! if (fp == NULL) { ! pthread_mutex_unlock(&(This->playlist_mutex)); ! return -1; ! } fseek(fp, offset, SEEK_SET); ret = fwrite(buffer, 1, len, fp); *************** *** 852,866 **** } - if (n->status != STATE_DOWNLOADED_ENOUGH) { ! if (This->baseurl == NULL) ! This->baseurl = getURLBase(n->url); ! if (DEBUG) ! printf("calling buildPlaylist with filename %s\n", ! n->fname); ! if (!isMms(n->url)) { ! buildPlaylist(instance, n->fname, n); ! } else { n->mmsstream = 1; } --- 869,888 ---- } if (n->status != STATE_DOWNLOADED_ENOUGH) { ! baseurl = getURLBase(n->url); ! if (baseurl != NULL) { ! if (This->baseurl == NULL) { ! This->baseurl = baseurl; ! } else { ! if (strcmp(This->baseurl, baseurl) != 0) { ! NPN_MemFree(This->baseurl); ! This->baseurl = baseurl; ! } else { ! NPN_MemFree(baseurl); ! } ! } ! } ! if (isMms(n->url)) { n->mmsstream = 1; } *************** *** 894,897 **** --- 916,920 ---- n->status = STATE_DOWNLOADED_ENOUGH; pthread_mutex_unlock(&(This->playlist_mutex)); + return ret; } *************** *** 944,947 **** --- 967,979 ---- n->retrieved = 1; + if (!isMms(n->url)) { + if (DEBUG) + printf("calling buildPlaylist with filename %s\n", + n->fname); + buildPlaylist(instance, n->fname, n); + } else { + n->mmsstream = 1; + } + // test for all retrieved if (This->threadsignaled == 0) { *************** *** 1084,1087 **** --- 1116,1121 ---- pthread_mutex_lock(&(This->playlist_mutex)); + // Free any UI data necessary + FreeUI((Display *) This->display); XtRemoveCallback(This->netscape_widget, XtNdestroyCallback, DestroyCB, (XtPointer) This); *************** *** 1129,1137 **** if (n->mmsstream == 1) snprintf(cmd, 2000, ! "ps -eaf | grep mplayer | grep %s | awk '{print $2}' | xargs kill -9", n->url); else snprintf(cmd, 2000, ! "ps -eaf | grep mplayer | grep %s | awk '{print $2}' | xargs kill -9", n->fname); ps = popen(cmd, "r"); --- 1163,1171 ---- if (n->mmsstream == 1) snprintf(cmd, 2000, ! "ps -eaf | grep mplayer | grep %s | grep -v grep | awk '{print $2}' | xargs kill -9", n->url); else snprintf(cmd, 2000, ! "ps -eaf | grep mplayer | grep %s | grep -v grep | awk '{print $2}' | xargs kill -9", n->fname); ps = popen(cmd, "r"); *************** *** 1174,1179 **** This->td->instance = NULL; pthread_mutex_unlock(&(This->playlist_mutex)); - // Free any UI data necessary - FreeUI((Display *) This->display); } else { if (DEBUG) --- 1208,1211 ---- *************** *** 1219,1222 **** --- 1251,1255 ---- char xval[32], yval[32], yval2[32]; char *filename; + char *baseurl; if (DEBUG) *************** *** 1264,1269 **** } ! This->baseurl = getURLBase(This->td->list->url); ! This->hostname = getURLHostname(This->td->list->url); if (This->keep_download == 1) { This->td->list->delete = 0; --- 1297,1317 ---- } ! baseurl = getURLBase(This->td->list->url); ! if (baseurl != NULL) { ! if (This->baseurl == NULL) { ! This->baseurl = baseurl; ! } else { ! if (strcmp(This->baseurl, baseurl) != 0) { ! NPN_MemFree(This->baseurl); ! This->baseurl = baseurl; ! } else { ! NPN_MemFree(baseurl); ! } ! } ! } ! ! if (This->hostname == NULL) ! This->hostname = getURLHostname(This->td->list->url); ! if (This->keep_download == 1) { This->td->list->delete = 0; Index: mplayerplug-in.h =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/mplayerplug-in.h,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** mplayerplug-in.h 22 Jan 2004 01:55:00 -0000 1.39 --- mplayerplug-in.h 26 Jan 2004 17:16:35 -0000 1.40 *************** *** 76,79 **** --- 76,81 ---- long int bytes; long int totalbytes; + int actual_x, actual_y; + int play_x, play_y; struct lnode *next; } Node; Index: support.c =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/support.c,v retrieving revision 1.76 retrieving revision 1.77 diff -C2 -d -r1.76 -r1.77 *** support.c 22 Jan 2004 05:03:42 -0000 1.76 --- support.c 26 Jan 2004 17:16:35 -0000 1.77 *************** *** 82,85 **** --- 82,86 ---- This->hrefrequested = 0; This->lastmessage = (char *) NPN_MemAlloc(sizeof(char) * 1024); + snprintf(This->lastmessage,1,""); pthread_mutex_init(&(This->playlist_mutex), NULL); This->fifoname = tempnam("/tmp", "fifoXXXXXX"); *************** *** 395,399 **** if (DEBUG) ! printf("in getURLBase\n"); if (url == NULL) return NULL; --- 396,400 ---- if (DEBUG) ! printf("in getURLBase url: %s\n", url); if (url == NULL) return NULL; *************** *** 402,407 **** base = NPN_MemAlloc(sizeof(char) * (strlen(url) + 1)); strcpy(base, url); ! for (i = strlen(url) - 1; i > 0; i--) { if (base[i] != '/') { base[i] = '\0'; --- 403,410 ---- base = NPN_MemAlloc(sizeof(char) * (strlen(url) + 1)); strcpy(base, url); + if (DEBUG) + printf("in getURLBase base: %s\n", base); ! for (i = strlen(url) - 1; i >= 0; i--) { if (base[i] != '/') { base[i] = '\0'; *************** *** 522,525 **** --- 525,534 ---- n->retrieved = 0; n->cancelled = 0; + n->bytes = 0; + n->totalbytes = 0; + n->actual_x = 0; + n->actual_y = 0; + n->play_x = 0; + n->play_y = 0; n->next = NULL; return n; *************** *** 554,557 **** --- 563,567 ---- dest->delete = src->delete; dest->cancelled = src->cancelled; + dest->retrieved = dest->retrieved; } } *************** *** 576,579 **** --- 586,592 ---- printf("retrieved: %i\n", l->retrieved); printf("mms stream: %i\n", l->mmsstream); + printf("Actual Size: %ix%i\n", l->actual_x, l->actual_y); + printf("Play Size: %ix%i\n", l->play_x, l->play_y); + } if ((l->delete == 1) || (l->delete == 0 && l->play == 0)) { *************** *** 645,650 **** if (item[0] != '/') { strlcpy(tmpdir, item, sizeof(tmpdir)); // reuse the buffer ! if (This->baseurl != NULL) strlcpy(localitem, This->baseurl, 1024); strlcat(localitem, tmpdir, 1024); } else { --- 658,670 ---- if (item[0] != '/') { strlcpy(tmpdir, item, sizeof(tmpdir)); // reuse the buffer ! if (This->baseurl != NULL) { strlcpy(localitem, This->baseurl, 1024); + } else { + // if (This->url != NULL) + // This->baseurl = getURLBase(This->url); + // if (This->href != NULL) + // This->baseurl = getURLBase(This->href); + // strlcpy(localitem, This->baseurl, 1024); + } strlcat(localitem, tmpdir, 1024); } else { *************** *** 676,680 **** if (URLcmp(n->url, localitem) == 0) { if (DEBUG) ! printf("found a match, possible self reference steam\n"); break; } --- 696,700 ---- if (URLcmp(n->url, localitem) == 0) { if (DEBUG) ! printf("found a match, possible self reference stream\n"); break; } *************** *** 694,698 **** node->mmsstream = 1; } else { ! filename = getURLFilename(item); if (This->keep_download == 1 && filename != NULL) { snprintf(node->fname, sizeof(node->fname), "%s/%s", --- 714,718 ---- node->mmsstream = 1; } else { ! filename = getURLFilename(localitem); if (This->keep_download == 1 && filename != NULL) { snprintf(node->fname, sizeof(node->fname), "%s/%s", *************** *** 838,841 **** --- 858,863 ---- if (remainder < 1) break; + // seq tags are optional, but if we do have + // one see if it has a speed and if so, find it seqtag = memmem(p, remainder, "<seq", 4); if (seqtag != NULL) { *************** *** 856,865 **** speed); } else { speed = -1; } } else { seqtag = p; } ! // we have a speed now, lets fine the src videotag = memmem(seqtag, remainder, "<video", 6); while (videotag != NULL) { --- 878,891 ---- speed); } else { + // if we don't fine a speed, then set the speed to -1 speed = -1; } } else { + // if we didn't find a seqtag, then set seqtag equal to p + // so that the next block will work seqtag = p; } ! // we have a speed now, lets find all the src ! // files in the seq block videotag = memmem(seqtag, remainder, "<video", 6); while (videotag != NULL) { *************** *** 871,874 **** --- 897,902 ---- if (videosrc != NULL) { videosrc = strchr(videosrc, '\"'); + if (videosrc == NULL) + break; i = (long) videosrc - (long) buffer_lower; sscanf(buffer + i, "\"%1023[^\"]\"", url); *************** *** 877,880 **** --- 905,909 ---- parent->playlist = 1; addToList(instance, url, parent, speed); + found = 1; } videotag = *************** *** 917,920 **** --- 946,951 ---- if (p != NULL) { i = (long) p - (long) buffer_lower; + if (i >= size) + break; snprintf(url, 1024, "%s", buffer + i); } *************** *** 927,930 **** --- 958,963 ---- p = p + strlen(url) + 1; found = 1; + } else { + break; } } *************** *** 969,972 **** --- 1002,1050 ---- } + if (strncasecmp(buffer, "rtsp://", 7) == 0) { + p = buffer; + while (p != NULL) { + i = size - ((long) p - (long) buffer); + p = memmem(p, i, "rtsp://", 7); + if (p == NULL) { + break; + } else { + snprintf(url, 1024, "%s", p); + sub = strchr(url, 0xa); + if (sub != NULL) + sub[0] = '\0'; + if (DEBUG) + printf("URL: %s\n", url); + parent->playlist = 1; + addToList(instance, url, parent, -1); + p = p + strlen(url) + 1; + found = 1; + } + } + } + + if (strncasecmp(buffer, "http://", 7) == 0) { + p = buffer; + while (p != NULL) { + i = size - ((long) p - (long) buffer); + p = memmem(p, i, "http://", 7); + if (p == NULL) { + break; + } else { + snprintf(url, 1024, "%s", p); + sub = strchr(url, 0xa); + if (sub != NULL) + sub[0] = '\0'; + if (DEBUG) + printf("URL: %s\n", url); + parent->playlist = 1; + addToList(instance, url, parent, -1); + p = p + strlen(url) + 1; + found = 1; + } + } + } + + if (!found) break; *************** *** 1085,1088 **** --- 1163,1170 ---- long int filesize; int ready, notfound; + char *vo; + char vm[10]; + char *cf; + int cfpercent; local_td = (ThreadData *) td; *************** *** 1200,1215 **** if (!copy->mmsstream) { ! stat(copy->fname, &dload_stat); ! do { ! filesize = dload_stat.st_size; ! sleep(1); stat(copy->fname, &dload_stat); ! if (DEBUG) ! printf("sleeping size:%i\n", dload_stat.st_size); ! // if nothing has been downloaded then maybe the file is done and we should play ! if (filesize == dload_stat.st_size) ! break; } - while (dload_stat.st_size < (This->cachesize * 1024)); } --- 1282,1300 ---- if (!copy->mmsstream) { ! if ((copy->bytes < (This->cachesize * 1024)) && (copy->retrieved == 0)) { stat(copy->fname, &dload_stat); ! do { ! filesize = dload_stat.st_size; ! sleep(1); ! stat(copy->fname, &dload_stat); ! if (DEBUG) ! printf("sleeping size:%i\n", ! dload_stat.st_size); ! // if nothing has been downloaded then maybe the file is done and we should play ! if (filesize == dload_stat.st_size) ! break; ! } ! while (dload_stat.st_size < (This->cachesize * 1024)); } } *************** *** 1242,1248 **** } // Only update the display if there is something worth displaying ! if (strstr(eos, "Cache fill:") != NULL) DrawUI(This->netscape_widget, ! local_td->instance, eos, 0, -1); } if (strstr(buffer, "Starting") != NULL) { --- 1327,1338 ---- } // Only update the display if there is something worth displaying ! if (strstr(eos, "Cache fill:") != NULL) { ! cf = strstr(eos, "Cache fill:"); ! sscanf(cf, "Cache fill: %i", &cfpercent); ! strlcpy(message, "Caching ", sizeof(message)); ! strlcat(message, copy->url, sizeof(message)); DrawUI(This->netscape_widget, ! local_td->instance, eos, cfpercent, -1); ! } } if (strstr(buffer, "Starting") != NULL) { *************** *** 1255,1258 **** --- 1345,1354 ---- if (This->mode != NP_FULL) This->noredraw = 1; + vo = strstr(buffer, "VO:"); + sscanf(vo, "VO: [%10[^]]] %ix%i => %ix%i", vm, + &(local_list->actual_x), + &(local_list->actual_y), + &(local_list->play_x), + &(local_list->play_y)); } if (strstr(buffer, "Quit") != NULL) { Index: ui.c =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/ui.c,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** ui.c 22 Jan 2004 01:55:00 -0000 1.37 --- ui.c 26 Jan 2004 17:16:35 -0000 1.38 *************** *** 38,47 **** Cursor guicursor; XSetWindowAttributes attrs; ! XpmCreatePixmapFromData(dpy, d, logo_xpm, &logo, &logomask, NULL); ! XpmCreatePixmapFromData(dpy, d, progress_left_xpm, &progress_left, &progress_leftmask, NULL); ! XpmCreatePixmapFromData(dpy, d, progress_middle_xpm, &progress_middle, &progress_middlemask, NULL); ! XpmCreatePixmapFromData(dpy, d, progress_right_xpm, &progress_right, &progress_rightmask, NULL); ! XpmCreatePixmapFromData(dpy, d, progress_fill_xpm, &progress_fill, &progress_fillmask, NULL); font = XQueryFont(dpy, XGContextFromGC(gc)); guicursor = XCreateFontCursor(dpy, XC_watch); --- 38,51 ---- Cursor guicursor; XSetWindowAttributes attrs; ! XpmCreatePixmapFromData(dpy, d, logo_xpm, &logo, &logomask, NULL); ! XpmCreatePixmapFromData(dpy, d, progress_left_xpm, &progress_left, ! &progress_leftmask, NULL); ! XpmCreatePixmapFromData(dpy, d, progress_middle_xpm, &progress_middle, ! &progress_middlemask, NULL); ! XpmCreatePixmapFromData(dpy, d, progress_right_xpm, &progress_right, ! &progress_rightmask, NULL); ! XpmCreatePixmapFromData(dpy, d, progress_fill_xpm, &progress_fill, ! &progress_fillmask, NULL); font = XQueryFont(dpy, XGContextFromGC(gc)); guicursor = XCreateFontCursor(dpy, XC_watch); *************** *** 67,71 **** void DrawProgressBG(Display * dpy, Window w, int x, int y, int width, ! int height) { XGCValues values; --- 71,75 ---- void DrawProgressBG(Display * dpy, Window w, int x, int y, int width, ! int height) { XGCValues values; *************** *** 80,84 **** XChangeGC(dpy, border_gc, GCClipMask | GCClipXOrigin | GCClipYOrigin, &values); ! XCopyArea(dpy, progress_left, (Drawable) w, border_gc, 0, 0, 10, 31, x - 10, y - 10); values.clip_mask = (int) NULL; XChangeGC(dpy, border_gc, GCClipMask | GCClipXOrigin | GCClipYOrigin, --- 84,89 ---- XChangeGC(dpy, border_gc, GCClipMask | GCClipXOrigin | GCClipYOrigin, &values); ! XCopyArea(dpy, progress_left, (Drawable) w, border_gc, 0, 0, 10, 31, ! x - 10, y - 10); values.clip_mask = (int) NULL; XChangeGC(dpy, border_gc, GCClipMask | GCClipXOrigin | GCClipYOrigin, *************** *** 96,100 **** XChangeGC(dpy, border_gc, GCClipMask | GCClipXOrigin | GCClipYOrigin, &values); ! XCopyArea(dpy, progress_right, (Drawable) w, border_gc, 0, 0, 10, 31, x + width, y - 10); values.clip_mask = (int) NULL; XChangeGC(dpy, border_gc, GCClipMask | GCClipXOrigin | GCClipYOrigin, --- 101,106 ---- XChangeGC(dpy, border_gc, GCClipMask | GCClipXOrigin | GCClipYOrigin, &values); ! XCopyArea(dpy, progress_right, (Drawable) w, border_gc, 0, 0, 10, 31, ! x + width, y - 10); values.clip_mask = (int) NULL; XChangeGC(dpy, border_gc, GCClipMask | GCClipXOrigin | GCClipYOrigin, *************** *** 111,115 **** XGCValues values; ! if (percent > 100) percent = 100; progress_gc = XCreateGC(dpy, w, GCForeground, &values); XSetTile(dpy, progress_gc, progress_fill); --- 117,122 ---- XGCValues values; ! if (percent > 100) ! percent = 100; progress_gc = XCreateGC(dpy, w, GCForeground, &values); XSetTile(dpy, progress_gc, progress_fill); *************** *** 117,122 **** XSetTSOrigin(dpy, progress_gc, x, y); pixelpercent = (width - x) * (percent / 100.); ! XFillRectangle(dpy, w, progress_gc, x, y, pixelpercent, ! height); XSetFillStyle(dpy, progress_gc, FillSolid); XFreeGC(dpy, progress_gc); --- 124,128 ---- XSetTSOrigin(dpy, progress_gc, x, y); pixelpercent = (width - x) * (percent / 100.); ! XFillRectangle(dpy, w, progress_gc, x, y, pixelpercent, height); XSetFillStyle(dpy, progress_gc, FillSolid); XFreeGC(dpy, progress_gc); *************** *** 185,189 **** XFillRectangle((Display *) This->display, This->window, white_gc, BORDER, LOGO_HEIGHT, This->width - BORDER * 2, ! This->height - font_height - LOGO_HEIGHT - BORDER - 10); } if (This->height > 80 && This->width > id_width + BORDER * 2) { --- 191,196 ---- XFillRectangle((Display *) This->display, This->window, white_gc, BORDER, LOGO_HEIGHT, This->width - BORDER * 2, ! This->height - font_height - LOGO_HEIGHT - BORDER - ! 10); } if (This->height > 80 && This->width > id_width + BORDER * 2) { *************** *** 195,205 **** This->width - id_width - BORDER, This->height - font_height, id, strlen(id)); ! } ! if ((FullRedraw || PercentRedraw) && This->width > id_width + BORDER * 3 + 100) // The height is set to 11 (my value for font_height) // since the progress image only has 11 pixels of space DrawProgressBG((Display *) This->display, This->window, BORDER, ! This->height - font_height - BORDER, ! This->width - id_width - BORDER * 3, 11); // Loop a max of 10 times in case of problems (like too small of a width) while (strlen(message) != 0 && loops < 10) { --- 202,213 ---- This->width - id_width - BORDER, This->height - font_height, id, strlen(id)); ! } ! if ((FullRedraw || PercentRedraw) ! && This->width > id_width + BORDER * 3 + 100) // The height is set to 11 (my value for font_height) // since the progress image only has 11 pixels of space DrawProgressBG((Display *) This->display, This->window, BORDER, ! This->height - font_height - BORDER, ! This->width - id_width - BORDER * 3, 11); // Loop a max of 10 times in case of problems (like too small of a width) while (strlen(message) != 0 && loops < 10) { *************** *** 226,232 **** DrawProgress((Display *) This->display, This->window, BORDER, This->height - font_height - BORDER, ! This->width - id_width - BORDER * 3, 11, ! percent); ! else if (FullRedraw && lastpercent != -1 && This->width > id_width + BORDER * 3 + 100) DrawProgress((Display *) This->display, This->window, BORDER, This->height - font_height - BORDER, --- 234,240 ---- DrawProgress((Display *) This->display, This->window, BORDER, This->height - font_height - BORDER, ! This->width - id_width - BORDER * 3, 11, percent); ! else if (FullRedraw && lastpercent != -1 ! && This->width > id_width + BORDER * 3 + 100) DrawProgress((Display *) This->display, This->window, BORDER, This->height - font_height - BORDER, *************** *** 252,263 **** font = NULL; // Free all the pixmaps used by the GUI ! if (progress_left) XFreePixmap(dpy, progress_left); ! if (progress_leftmask) XFreePixmap(dpy, progress_leftmask); ! if (progress_middle) XFreePixmap(dpy, progress_middle); ! if (progress_middlemask) XFreePixmap(dpy, progress_middlemask); ! if (progress_right) XFreePixmap(dpy, progress_right); ! if (progress_rightmask) XFreePixmap(dpy, progress_rightmask); ! if (progress_fill) XFreePixmap(dpy, progress_fill); ! if (progress_fillmask) XFreePixmap(dpy, progress_fillmask); // Don't free the font since we didn't create it } --- 260,279 ---- font = NULL; // Free all the pixmaps used by the GUI ! if (progress_left) ! XFreePixmap(dpy, progress_left); ! if (progress_leftmask) ! XFreePixmap(dpy, progress_leftmask); ! if (progress_middle) ! XFreePixmap(dpy, progress_middle); ! if (progress_middlemask) ! XFreePixmap(dpy, progress_middlemask); ! if (progress_right) ! XFreePixmap(dpy, progress_right); ! if (progress_rightmask) ! XFreePixmap(dpy, progress_rightmask); ! if (progress_fill) ! XFreePixmap(dpy, progress_fill); ! if (progress_fillmask) ! XFreePixmap(dpy, progress_fillmask); // Don't free the font since we didn't create it } |
From: <kde...@pr...> - 2004-01-26 17:17:28
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24802 Modified Files: ChangeLog Makefile.in config.h.in configure configure.in Log Message: Fix UI crasher FreeUI was called with uninitialized pointers Parse mplayer output to determine the actual size and play size of the media Support RealMedia with embedded rtsp streams, allows NASA TV to work needs enable-real=1 in mplayerplug-in.conf mplayer with RealMedia codecs and support Fix possible crash in NPP_Destroy Change buildPlaylist to be called from NPP_DestroyStream rather than after a magic value in NPP_Write This way we are sure we have the entire playlist downloaded. Found possible crash in smil format decode Added stat.c to make Solaris compile work Fixed bug in getURLBase Fixed handling of This->baseurl Fixed crash in ASX format handling, should fix http://www.rbcmp3.com Index: ChangeLog =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/ChangeLog,v retrieving revision 1.132 retrieving revision 1.133 diff -C2 -d -r1.132 -r1.133 *** ChangeLog 22 Jan 2004 05:03:42 -0000 1.132 --- ChangeLog 26 Jan 2004 17:16:33 -0000 1.133 *************** *** 6,9 **** --- 6,22 ---- Fix XML parse error on smil files that don't have seq tags. Which DTD does SMIL use? Fix videotag not found omission + Fix UI crasher FreeUI was called with uninitialized pointers + Parse mplayer output to determine the actual size and play size of the media + Support RealMedia with embedded rtsp streams, allows NASA TV to work + needs enable-real=1 in mplayerplug-in.conf + mplayer with RealMedia codecs and support + Fix possible crash in NPP_Destroy + Change buildPlaylist to be called from NPP_DestroyStream rather than after a magic value in NPP_Write + This way we are sure we have the entire playlist downloaded. + Found possible crash in smil format decode + Added stat.c to make Solaris compile work + Fixed bug in getURLBase + Fixed handling of This->baseurl + Fixed crash in ASX format handling, should fix http://www.rbcmp3.com 1.2 QuickTime streaming, speed work Index: Makefile.in =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Makefile.in,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Makefile.in 12 Jan 2004 21:51:32 -0000 1.12 --- Makefile.in 26 Jan 2004 17:16:34 -0000 1.13 *************** *** 48,54 **** $(CC) -c $(CFLAGS) Source/strlcat.c ! strlcpy.o: Source/strlcpy.c $(HEADERS) $(CC) -c $(CFLAGS) Source/strlcpy.c clean: $(RM) $(OBJ) $(SHAREDTARGET) --- 48,57 ---- $(CC) -c $(CFLAGS) Source/strlcat.c ! strlcpy.o: Source/strlcpy.c $(HEADERS) $(CC) -c $(CFLAGS) Source/strlcpy.c + stat.o: Source/stat.c $(HEADERS) + $(CC) -c $(CFLAGS) Source/stat.c + clean: $(RM) $(OBJ) $(SHAREDTARGET) Index: config.h.in =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/config.h.in,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** config.h.in 21 Jan 2004 00:56:52 -0000 1.8 --- config.h.in 26 Jan 2004 17:16:34 -0000 1.9 *************** *** 23,26 **** --- 23,29 ---- #undef HAVE_SNPRINTF + /* Define to 1 if you have the `stat' function. */ + #undef HAVE_STAT + /* Define to 1 if `stat' has the bug that it succeeds when given the zero-length file name argument. */ Index: configure =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/configure,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** configure 21 Jan 2004 00:56:53 -0000 1.13 --- configure 26 Jan 2004 17:16:34 -0000 1.14 *************** *** 5067,5071 **** ! for ac_func in memmem strlcat strlcpy do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` --- 5067,5072 ---- ! ! for ac_func in memmem strlcat strlcpy stat do as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` Index: configure.in =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/configure.in,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** configure.in 21 Jan 2004 00:56:53 -0000 1.11 --- configure.in 26 Jan 2004 17:16:34 -0000 1.12 *************** *** 31,35 **** AC_FUNC_STAT AC_CHECK_FUNCS([memset strcasecmp strchr strdup strncasecmp strstr strrchr snprintf mkfifo]) ! AC_REPLACE_FUNCS([memmem strlcat strlcpy]) AC_CHECK_HEADER([X11/xpm.h],[AC_DEFINE([HAVE_X11_XPM],[1],[Define to 1 if you have the <X11/xpm.h> header file.]) LIBS="$LIBS -lXpm"]) --- 31,35 ---- AC_FUNC_STAT AC_CHECK_FUNCS([memset strcasecmp strchr strdup strncasecmp strstr strrchr snprintf mkfifo]) ! AC_REPLACE_FUNCS([memmem strlcat strlcpy stat]) AC_CHECK_HEADER([X11/xpm.h],[AC_DEFINE([HAVE_X11_XPM],[1],[Define to 1 if you have the <X11/xpm.h> header file.]) LIBS="$LIBS -lXpm"]) |
From: <kde...@us...> - 2004-01-22 05:03:45
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in/Source In directory sc8-pr-cvs1:/tmp/cvs-serv10836/Source Modified Files: support.c Log Message: Fix videotag not found omission Index: support.c =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/support.c,v retrieving revision 1.75 retrieving revision 1.76 diff -C2 -d -r1.75 -r1.76 *** support.c 22 Jan 2004 04:56:28 -0000 1.75 --- support.c 22 Jan 2004 05:03:42 -0000 1.76 *************** *** 861,893 **** seqtag = p; } ! // we have a speed now, lets fine the src ! videotag = memmem(seqtag, remainder, "<video", 6); ! while (videotag != NULL) { if (DEBUG) ! printf("[smil] found video tag\n"); ! remainder = ! size - ((long) videotag - ! (long) buffer_lower); ! videosrc = ! memmem(videotag, remainder, "src", 3); ! if (videosrc != NULL) { ! videosrc = strchr(videosrc, '\"'); ! i = (long) videosrc - (long) buffer_lower; ! sscanf(buffer + i, "\"%1023[^\"]\"", url); ! if (DEBUG) ! printf("[smil] found url %s\n", url); ! parent->playlist = 1; ! addToList(instance, url, parent, speed); ! } ! videotag = ! memmem(videosrc, remainder, "<video", 6); ! seqtag = ! memmem(videosrc, remainder, "<seq", 4); ! if (videotag == NULL) ! break; ! if ((long) videotag > (long) seqtag) ! videotag = NULL; } ! p = seqtag; } } --- 861,892 ---- seqtag = p; } ! // we have a speed now, lets fine the src ! videotag = memmem(seqtag, remainder, "<video", 6); ! while (videotag != NULL) { ! if (DEBUG) ! printf("[smil] found video tag\n"); ! remainder = ! size - ((long) videotag - (long) buffer_lower); ! videosrc = memmem(videotag, remainder, "src", 3); ! if (videosrc != NULL) { ! videosrc = strchr(videosrc, '\"'); ! i = (long) videosrc - (long) buffer_lower; ! sscanf(buffer + i, "\"%1023[^\"]\"", url); if (DEBUG) ! printf("[smil] found url %s\n", url); ! parent->playlist = 1; ! addToList(instance, url, parent, speed); } ! videotag = ! memmem(videosrc, remainder, "<video", 6); ! seqtag = memmem(videosrc, remainder, "<seq", 4); ! if (videotag == NULL) ! break; ! if (seqtag == NULL && videotag != NULL) ! continue; ! if ((long) videotag > (long) seqtag) ! videotag = NULL; ! } ! p = seqtag; } } |
From: <kde...@us...> - 2004-01-22 05:03:45
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in In directory sc8-pr-cvs1:/tmp/cvs-serv10836 Modified Files: ChangeLog Log Message: Fix videotag not found omission Index: ChangeLog =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/ChangeLog,v retrieving revision 1.131 retrieving revision 1.132 diff -C2 -d -r1.131 -r1.132 *** ChangeLog 22 Jan 2004 04:56:28 -0000 1.131 --- ChangeLog 22 Jan 2004 05:03:42 -0000 1.132 *************** *** 5,8 **** --- 5,9 ---- Even more UI enhancements Fix XML parse error on smil files that don't have seq tags. Which DTD does SMIL use? + Fix videotag not found omission 1.2 QuickTime streaming, speed work |