ソースを参照

drivers and theora

Ariel Manzur 9 年 前
コミット
906c6374dc
2 ファイル変更16 行追加9 行削除
  1. 1 1
      drivers/SCsub
  2. 15 8
      drivers/theora/video_stream_theora.cpp

+ 1 - 1
drivers/SCsub

@@ -71,7 +71,7 @@ for f in env.drivers_sources:
 		fname = env.File(f)[0].path
 		fname = env.File(f)[0].path
 	fname = fname.replace("\\", "/")
 	fname = fname.replace("\\", "/")
 	base = string.join(fname.split("/")[:2], "/")
 	base = string.join(fname.split("/")[:2], "/")
-	if base != cur_base or len(list) > max_src:
+	if base != cur_base and len(list) > max_src:
 		if num > 0:
 		if num > 0:
 			lib = env.Library("drivers"+str(num), list)
 			lib = env.Library("drivers"+str(num), list)
 			lib_list.append(lib)
 			lib_list.append(lib)

+ 15 - 8
drivers/theora/video_stream_theora.cpp

@@ -269,15 +269,22 @@ void VideoStreamPlaybackTheora::set_file(const String& p_file) {
 				copymem(&to,&test,sizeof(test));
 				copymem(&to,&test,sizeof(test));
 				theora_p=1;
 				theora_p=1;
 			}else if(!vorbis_p && vorbis_synthesis_headerin(&vi,&vc,&op)>=0){
 			}else if(!vorbis_p && vorbis_synthesis_headerin(&vi,&vc,&op)>=0){
+
+
 				/* it is vorbis */
 				/* it is vorbis */
-		if (audio_track_skip) {
-		    vorbis_info_clear(&vi);
-		    vorbis_comment_clear(&vc);
-		    audio_track_skip--;
-		} else {
-		    copymem(&vo,&test,sizeof(test));
-		    vorbis_p=1;
-		}
+				if (audio_track_skip) {
+					vorbis_info_clear(&vi);
+					vorbis_comment_clear(&vc);
+					ogg_stream_clear(&test);
+					vorbis_info_init(&vi);
+					vorbis_comment_init(&vc);
+
+					audio_track_skip--;
+
+                } else {
+                    copymem(&vo,&test,sizeof(test));
+					vorbis_p=1;
+                }
 			}else{
 			}else{
 				/* whatever it is, we don't care about it */
 				/* whatever it is, we don't care about it */
 				ogg_stream_clear(&test);
 				ogg_stream_clear(&test);