Thread: [Mplayerplug-in-cvs] mplayerplug-in/Source plugin-threads.cpp,1.21,1.22
Brought to you by:
kdekorte
From: <kde...@us...> - 2004-02-27 18:19:31
|
Update of /cvsroot/mplayerplug-in/mplayerplug-in/Source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6679/Source Modified Files: plugin-threads.cpp Log Message: Fix playing of old encoder QT files that are not streamable Index: plugin-threads.cpp =================================================================== RCS file: /cvsroot/mplayerplug-in/mplayerplug-in/Source/plugin-threads.cpp,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** plugin-threads.cpp 27 Feb 2004 16:40:58 -0000 1.21 --- plugin-threads.cpp 27 Feb 2004 18:02:49 -0000 1.22 *************** *** 311,314 **** --- 311,315 ---- char *cf; int cfpercent; + int tryagain; local_td = (ThreadData *) td; *************** *** 387,390 **** --- 388,392 ---- pthread_mutex_unlock(&(local_td->instance->playlist_mutex)); while (copy != NULL) { + tryagain = 0; argc = base_argc; if (DEBUG) *************** *** 455,459 **** local_td->instance->js_state = JS_STATE_PLAYING; while ( !feof(local_td->instance->player)) { ! if (local_td != NULL) { if (local_td->instance != NULL) { --- 457,461 ---- local_td->instance->js_state = JS_STATE_PLAYING; while ( !feof(local_td->instance->player)) { ! if (DESTROYED) break; if (local_td != NULL) { if (local_td->instance != NULL) { *************** *** 472,481 **** break; } ! if (fgets(buffer, sizeof(buffer),local_td->instance->player) == NULL) { //usleep(500); continue; } ! if (DEBUG) { printf("READ: %s \n", buffer); --- 474,483 ---- break; } ! if (DESTROYED) break; if (fgets(buffer, sizeof(buffer),local_td->instance->player) == NULL) { //usleep(500); continue; } ! if (DESTROYED) break; if (DEBUG) { printf("READ: %s \n", buffer); *************** *** 533,536 **** --- 535,539 ---- if (strstr(buffer, "Starting") != NULL) { + if (DESTROYED) break; strlcpy(message, "Playing ", sizeof(message)); strlcat(message, copy->url, sizeof(message)); *************** *** 620,624 **** break; } ! if (strstr(buffer, "Exiting") != NULL) { if (DEBUG) --- 623,637 ---- break; } ! ! // detect Quicktime file with old codec ! if (strstr(buffer,"MOV: missing header (moov/cmov) chunk!") != NULL) { ! tryagain = 1; ! while (!DESTROYED) { ! usleep(500); ! if (!DESTROYED) ! if (local_list->retrieved == 1) break; ! } ! } ! if (strstr(buffer, "Exiting") != NULL) { if (DEBUG) *************** *** 652,656 **** --- 665,671 ---- } } + if (local_list != NULL) { local_list->cancelled = 1; + if (local_td->instance != NULL) { if (local_td->instance->control != NULL) { fclose(local_td->instance->control); *************** *** 661,670 **** --- 676,688 ---- local_td->instance->player = NULL; } + } if (DEBUG) printf("close done\n"); local_td->instance->state = STATE_PLAYLIST_NEXT; + } } } + if (tryagain == 0) { if (DESTROYED) { local_td->instance->js_state = JS_STATE_UNDEFINED; *************** *** 708,714 **** } } } - if (local_td->instance != NULL) - local_td->instance->js_state = JS_STATE_UNDEFINED; pthread_exit(0); return NULL; --- 726,735 ---- } } + } + } + if (local_td != NULL) { + if (local_td->instance != NULL) + local_td->instance->js_state = JS_STATE_UNDEFINED; } pthread_exit(0); return NULL; |