buffer size tweaks
							parent
							
								
									c5b9ff1677
								
							
						
					
					
						commit
						3e0fcdedb1
					
				| 
						 | 
				
			
			@ -14,7 +14,7 @@ namespace MoonWorks.Audio
 | 
			
		|||
		private readonly IntPtr[] buffers;
 | 
			
		||||
		private int nextBufferIndex = 0;
 | 
			
		||||
		private uint queuedBufferCount = 0;
 | 
			
		||||
		public abstract int BUFFER_SIZE { get; }
 | 
			
		||||
		protected abstract int BUFFER_SIZE { get; }
 | 
			
		||||
 | 
			
		||||
		public unsafe StreamingSound(
 | 
			
		||||
			AudioDevice device,
 | 
			
		||||
| 
						 | 
				
			
			@ -147,8 +147,8 @@ namespace MoonWorks.Audio
 | 
			
		|||
 | 
			
		||||
		protected unsafe abstract void FillBuffer(
 | 
			
		||||
			void* buffer,
 | 
			
		||||
			int bufferLength, /* in bytes */
 | 
			
		||||
			out int filledLength, /* in bytes */
 | 
			
		||||
			int bufferLengthInBytes, /* in bytes */
 | 
			
		||||
			out int filledLengthInBytes, /* in bytes */
 | 
			
		||||
			out bool reachedEnd
 | 
			
		||||
		);
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,20 +1,16 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using System.Runtime.CompilerServices;
 | 
			
		||||
using System.Runtime.InteropServices;
 | 
			
		||||
 | 
			
		||||
namespace MoonWorks.Audio
 | 
			
		||||
{
 | 
			
		||||
	public class StreamingSoundOgg : StreamingSoundSeekable
 | 
			
		||||
	{
 | 
			
		||||
		// FIXME: what should this value be?
 | 
			
		||||
		public override int BUFFER_SIZE => 1024 * 128;
 | 
			
		||||
 | 
			
		||||
		private IntPtr VorbisHandle;
 | 
			
		||||
		private IntPtr FileDataPtr;
 | 
			
		||||
		private FAudio.stb_vorbis_info Info;
 | 
			
		||||
 | 
			
		||||
		private readonly float[] buffer; // currently decoded bytes
 | 
			
		||||
		protected override int BUFFER_SIZE => 32768;
 | 
			
		||||
 | 
			
		||||
		public unsafe static StreamingSoundOgg Load(AudioDevice device, string filePath)
 | 
			
		||||
		{
 | 
			
		||||
| 
						 | 
				
			
			@ -56,7 +52,6 @@ namespace MoonWorks.Audio
 | 
			
		|||
			FileDataPtr = fileDataPtr;
 | 
			
		||||
			VorbisHandle = vorbisHandle;
 | 
			
		||||
			Info = info;
 | 
			
		||||
			buffer = new float[BUFFER_SIZE];
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public override void Seek(uint sampleFrame)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System;
 | 
			
		||||
using MoonWorks.Audio;
 | 
			
		||||
 | 
			
		||||
namespace MoonWorks.Video
 | 
			
		||||
| 
						 | 
				
			
			@ -6,8 +6,7 @@ namespace MoonWorks.Video
 | 
			
		|||
	public unsafe class StreamingSoundTheora : StreamingSound
 | 
			
		||||
	{
 | 
			
		||||
		private IntPtr VideoHandle;
 | 
			
		||||
 | 
			
		||||
		public override int BUFFER_SIZE => 4096 * 2;
 | 
			
		||||
		protected override int BUFFER_SIZE => 8192;
 | 
			
		||||
 | 
			
		||||
		internal StreamingSoundTheora(
 | 
			
		||||
			AudioDevice device,
 | 
			
		||||
| 
						 | 
				
			
			@ -27,17 +26,19 @@ namespace MoonWorks.Video
 | 
			
		|||
 | 
			
		||||
		protected override unsafe void FillBuffer(
 | 
			
		||||
			void* buffer,
 | 
			
		||||
			int bufferLength,
 | 
			
		||||
			out int filledLength,
 | 
			
		||||
			int bufferLengthInBytes,
 | 
			
		||||
			out int filledLengthInBytes,
 | 
			
		||||
			out bool reachedEnd
 | 
			
		||||
		) {
 | 
			
		||||
			var lengthInFloats = bufferLengthInBytes / sizeof(float);
 | 
			
		||||
 | 
			
		||||
			int samples = Theorafile.tf_readaudio(
 | 
			
		||||
				VideoHandle,
 | 
			
		||||
				(IntPtr) buffer,
 | 
			
		||||
				bufferLength
 | 
			
		||||
				lengthInFloats
 | 
			
		||||
			);
 | 
			
		||||
 | 
			
		||||
			filledLength = samples * sizeof(float);
 | 
			
		||||
			filledLengthInBytes = samples * sizeof(float);
 | 
			
		||||
			reachedEnd = Theorafile.tf_eos(VideoHandle) == 1;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue