diff options
| -rw-r--r-- | modules/theora/video_stream_theora.cpp | 10 | 
1 files changed, 8 insertions, 2 deletions
diff --git a/modules/theora/video_stream_theora.cpp b/modules/theora/video_stream_theora.cpp index b38f7225a2..6c961813b4 100644 --- a/modules/theora/video_stream_theora.cpp +++ b/modules/theora/video_stream_theora.cpp @@ -251,8 +251,12 @@ void VideoStreamPlaybackTheora::set_file(const String &p_file) {  	/* we're expecting more header packets. */  	while ((theora_p && theora_p < 3) || (vorbis_p && vorbis_p < 3)) { +		int ret = 0; +  		/* look for further theora headers */ -		int ret = ogg_stream_packetout(&to, &op); +		if (theora_p && theora_p < 3) { +			ret = ogg_stream_packetout(&to, &op); +		}  		while (theora_p && theora_p < 3 && ret) {  			if (ret < 0) {  				fprintf(stderr, "Error parsing Theora stream headers; corrupt stream?\n"); @@ -269,7 +273,9 @@ void VideoStreamPlaybackTheora::set_file(const String &p_file) {  		}  		/* look for more vorbis header packets */ -		ret = ogg_stream_packetout(&vo, &op); +		if (vorbis_p && vorbis_p < 3) { +			ret = ogg_stream_packetout(&vo, &op); +		}  		while (vorbis_p && vorbis_p < 3 && ret) {  			if (ret < 0) {  				fprintf(stderr, "Error parsing Vorbis stream headers; corrupt stream?\n");  |