diff options
| -rw-r--r-- | src/player.c | 18 | 
1 files changed, 8 insertions, 10 deletions
| diff --git a/src/player.c b/src/player.c index 0476a6b..8d325ea 100644 --- a/src/player.c +++ b/src/player.c @@ -319,18 +319,16 @@ static int play (player_t * const player) {  		/* pausing */  		pthread_mutex_lock (&player->pauseMutex); -		while (true) { -			if (!player->doPause) { -				av_read_play (player->fctx); -				break; -			} else { -				av_read_pause (player->fctx); -			} -			pthread_cond_wait (&player->pauseCond, &player->pauseMutex); +		if (player->doPause) { +			av_read_pause (player->fctx); +			do { +				pthread_cond_wait (&player->pauseCond, &player->pauseMutex); +			} while (player->doPause); +			av_read_play (player->fctx);  		}  		pthread_mutex_unlock (&player->pauseMutex); -		do { +		while (pkt.size > 0 && !player->doQuit) {  			int got_frame = 0;  			const int decoded = avcodec_decode_audio4 (player->st->codec, @@ -376,7 +374,7 @@ static int play (player_t * const player) {  			pkt.data += decoded;  			pkt.size -= decoded; -		} while (pkt.size > 0); +		};  		av_free_packet (&pkt_orig); | 
