Thread: [Mplayerplug-in-devel] Issue with premature threads exit
Brought to you by:
kdekorte
From: Rob C. <rob...@sw...> - 2006-11-14 23:07:35
|
I have encountered an issue with the mplayerplug-in package for Firefox within the Ubuntu Dapper environment. After a period of playback (controlled by way of Javascript actions embedded within the HTML page), mplayerplug-in will become trapped in the following loop within Source/plugin.cpp where the value of state is STATE_GETTING_PLAYLIST (110): =20 1986 while (state < STATE_WAITING_FOR_SIGNAL) { 1987 printf("sleeping state =3D %i\n", state); 1988 usleep(100); 1989 } It would appear that this state occurs where the player thread has been launched and then prematurely exited - See copied debug logs (below) for comparison of an operational and non-operational instance. =20 It would appear that the difference in operation is that in the non-operational instance, that the function playPlaylist is exiting due to local_td equalling NULL, although, from the copied debug logs (below) there is no apparent cause for this state. =20 1391 void *playPlaylist(void *td) 1392 { 1393 1394 PlayResult *result =3D NULL; 1395 FILE *playlist; 1396 char cmd[2048]; 1397 char message[1024]; 1398 char mmsplaylist[1024]; 1399 char buffer[1024]; // scratch pad 1400 char *p; // pointer to find the ( in the callback 1401 1402 int argc =3D 0, base_argc =3D 0; 1403 ThreadData *local_td; 1404 Node *local_list; 1405 char local_url[1024]; 1406 int local_mmsstream; 1407 int i; 1408 int loop_single =3D 0; 1409 int loop_count; 1410 Node *node; 1411 1412 int tryagain; 1413 int usefps; 1414 int nomouseinput; 1415 int maybeplaylist; 1416 int listempty; 1417 int lasterror =3D -1; 1418 1419 local_td =3D (ThreadData *) td; 1420 local_list =3D local_td->list; 1421 1422 if (local_td =3D=3D NULL) 1423 pthread_exit(0); 1424 1425 if (DEBUG) 1426 printf("----player thread: in playPlaylist\n"); Firstly, is this a known issue? And secondly, is there any known fix or workaround which I should implement (short of simply monitoring the debug log file and killing firefox-bin where this state occurs)? =20 Regards, Rob =20 =20 Rob Casey Swish Interactive a division of The Swish Group Limited 170 Dorcas Street South Melbourne, Victoria 3205 Australia [P] +61 3 9686 6640 [F] +61 3 9686 6680 [M] +61 401 460 490 [E] rob...@sw... =20 =20 =20 Debug log for operational playback: =20 JS filename issued ***************** SetFilename called http://127.0.0.1/content/TRL_DukesOfHazzard_HD1_43T.mpg threadsetup =3D 0, threadsignaled =3D 0 Entering deleteList DELETE http://127.0.0.1/content/TRL_CharlieAndChocFactory_HD1_43T.mpg File to delete=20 size: 0 remove: 1 play: 1 playlist: 0 speed: -1 cancelled: 0 retrieved: 0 mms stream: 0 cache bytes: 0 Actual Size: 352x576 Play Size: 768x576 in fullyQualifyURL item: http://127.0.0.1/content/TRL_DukesOfHazzard_HD1_43T.mpg baseurl: (null) hostname: (null) in fexists isMms =3D true fqu result: http://127.0.0.1/content/TRL_DukesOfHazzard_HD1_43T.mpg SetFilename getting http://127.0.0.1/content/TRL_DukesOfHazzard_HD1_43T.mpg in fexists isMms =3D true **********SetFilename Exit*************** JS Play issued *****Play Called Play: resetting playlist Play: setupplayer Entering SetupPlayer using url for url in getURLBase in getURLBase base: http://127.0.0.1/content/TRL_DukesOfHazzard_HD1_43T.mpg exiting URL base with http://127.0.0.1/content/ entering getURLHostname exiting getURLHostname with 127.0.0.1 in fullyQualifyURL item: http://127.0.0.1/content/TRL_DukesOfHazzard_HD1_43T.mpg baseurl: http://127.0.0.1/content/ hostname: 127.0.0.1 in fexists isMms =3D true fqu result: http://127.0.0.1/content/TRL_DukesOfHazzard_HD1_43T.mpg url http://127.0.0.1/content/TRL_DukesOfHazzard_HD1_43T.mpg buffer http://127.0.0.1/content/TRL_DukesOfHazzard_HD1_43T.mpg ready to setup threads creating thread - NP_EMBED creating player thread In launchPlayerThread, state =3D 110 launchPlayerThread - creating new thread ----player thread: in playPlaylist ----player thread: about to go to sleep, js_state =3D 6, state =3D 110 MAIN THREAD DONE Play: ready to signal Play: signalling thread Signalling Player thread, state =3D 112, js_state =3D 6 play clickd ***********Exiting Play************* local_td =3D 0x8373f68 local_td->instance =3D 0x87bd538 ---player thread: got wakeup signal, js_state =3D 6, state =3D 115 ----player thread: playPlayList - waiting complete ----player thread: building command string . . =20 =20 =20 Debug log for non-operational playback: =20 JS filename issued ***************** SetFilename called http://127.0.0.1/content/TRL_WeddingCrashers_HD1_43T.mpg threadsetup =3D 0, threadsignaled =3D 0 Entering deleteList DELETE http://127.0.0.1/content/TRL_DukesOfHazzard_HD1_43T.mpg File to delete=20 size: 0 remove: 1 play: 1 playlist: 0 speed: -1 cancelled: 0 retrieved: 0 mms stream: 0 cache bytes: 0 Actual Size: 352x576 Play Size: 768x576 in fullyQualifyURL item: http://127.0.0.1/content/TRL_WeddingCrashers_HD1_43T.mpg baseurl: (null) hostname: (null) in fexists isMms =3D true fqu result: http://127.0.0.1/content/TRL_WeddingCrashers_HD1_43T.mpg SetFilename getting http://127.0.0.1/content/TRL_WeddingCrashers_HD1_43T.mpg in fexists isMms =3D true **********SetFilename Exit*************** JS Play issued *****Play Called Play: resetting playlist Play: setupplayer Entering SetupPlayer using url for url in getURLBase in getURLBase base: http://127.0.0.1/content/TRL_WeddingCrashers_HD1_43T.mpg exiting URL base with http://127.0.0.1/content/ entering getURLHostname exiting getURLHostname with 127.0.0.1 in fullyQualifyURL item: http://127.0.0.1/content/TRL_WeddingCrashers_HD1_43T.mpg baseurl: http://127.0.0.1/content/ hostname: 127.0.0.1 in fexists isMms =3D true fqu result: http://127.0.0.1/content/TRL_WeddingCrashers_HD1_43T.mpg url http://127.0.0.1/content/TRL_WeddingCrashers_HD1_43T.mpg buffer http://127.0.0.1/content/TRL_WeddingCrashers_HD1_43T.mpg ready to setup threads creating thread - NP_EMBED creating player thread In launchPlayerThread, state =3D 110 launchPlayerThread - creating new thread MAIN THREAD DONE Play: ready to signal sleeping state =3D 110 sleeping state =3D 110 sleeping state =3D 110 sleeping state =3D 110 sleeping state =3D 110 . . . (Continues ad-infinitum) |
From: Kevin D. <kde...@gm...> - 2006-11-14 23:21:12
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Rob Casey wrote: > I have encountered an issue with the mplayerplug-in package for Firefox > within the Ubuntu Dapper environment. After a period of playback > (controlled by way of Javascript actions embedded within the HTML page), > mplayerplug-in will become trapped in the following loop within > Source/plugin.cpp where the value of state is STATE_GETTING_PLAYLIST (110): > > 1986 while (state < STATE_WAITING_FOR_SIGNAL) { > 1987 printf("sleeping state = %i\n", state); > 1988 usleep(100); > 1989 } > It would appear that this state occurs where the player thread has been > launched and then prematurely exited - See copied debug logs (below) for > comparison of an operational and non-operational instance. > Regards, > Rob > Rob, What version are you using? In current CVS the code you are quoting is about 250 lines further down. Even in the current version 3.31 this code is not where you say it is. So you probably need to upgrade anyway. And I would guess this problem is probably fixed. If it is not I'll need the following info. You say the player thread has been prematurely exited? What causes it? Your logs, while they show a problem, they don't show how you got there. So I guess I'm gonna need more detail before I look into this. Kevin - -- Get my public GnuPG key from http://keyserver.veridis.com:11371/export?id=-1509369771935935023 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org iD8DBQFFWk9j6w2kMH0L1dERAiXBAJ9neaCM4//AKrlw88LDM1cCdZKG9gCfW5Vr 61R6Y6y7HQOb5XJ72I/aM90= =nT1S -----END PGP SIGNATURE----- |