You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	lavd/openal: don't return zero sized packet if no samples are available
Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
		| @@ -187,9 +187,16 @@ static int read_packet(AVFormatContext* ctx, AVPacket *pkt) | ||||
|     const char *error_msg; | ||||
|     ALCint nb_samples; | ||||
|  | ||||
|     /* Get number of samples available */ | ||||
|     alcGetIntegerv(ad->device, ALC_CAPTURE_SAMPLES, (ALCsizei) sizeof(ALCint), &nb_samples); | ||||
|     if (error = al_get_error(ad->device, &error_msg)) goto fail; | ||||
|     for (;;) { | ||||
|         /* Get number of samples available */ | ||||
|         alcGetIntegerv(ad->device, ALC_CAPTURE_SAMPLES, (ALCsizei) sizeof(ALCint), &nb_samples); | ||||
|         if (error = al_get_error(ad->device, &error_msg)) goto fail; | ||||
|         if (nb_samples > 0) | ||||
|             break; | ||||
|         if (ctx->flags & AVFMT_FLAG_NONBLOCK) | ||||
|             return AVERROR(EAGAIN); | ||||
|         av_usleep(1000); | ||||
|     } | ||||
|  | ||||
|     /* Create a packet of appropriate size */ | ||||
|     if ((error = av_new_packet(pkt, nb_samples*ad->sample_step)) < 0) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user