music debug stuff
This commit is contained in:
parent
9bb72d9976
commit
42658355b1
@ -48,7 +48,7 @@ namespace NadekoBot.DataStructures
|
||||
|
||||
private readonly SemaphoreSlim _locker = new SemaphoreSlim(1, 1);
|
||||
|
||||
public PoopyRingBuffer(int capacity = 3640 * 200)
|
||||
public PoopyRingBuffer(int capacity = 3840 * 300)
|
||||
{
|
||||
this.Capacity = capacity + 1;
|
||||
this.buffer = new byte[this.Capacity];
|
||||
@ -59,7 +59,6 @@ namespace NadekoBot.DataStructures
|
||||
await _locker.WaitAsync(cancelToken);
|
||||
try
|
||||
{
|
||||
Console.WriteLine("Reading {0}", toRead);
|
||||
if (WritePos == ReadPos)
|
||||
return 0;
|
||||
|
||||
@ -129,7 +128,7 @@ namespace NadekoBot.DataStructures
|
||||
WritePos = 0;
|
||||
}
|
||||
}
|
||||
Console.WriteLine("Readpos: {0} WritePos: {1}", ReadPos, WritePos);
|
||||
Console.WriteLine("Readpos: {0} WritePos: {1} ({2})", ReadPos, WritePos, ReadPos - WritePos);
|
||||
return toWrite;
|
||||
}
|
||||
finally
|
||||
|
@ -165,6 +165,7 @@ namespace NadekoBot.Modules.Music
|
||||
}
|
||||
}
|
||||
|
||||
//todo, page should default to the page the current song is on
|
||||
[NadekoCommand, Usage, Description, Aliases]
|
||||
[RequireContext(ContextType.Guild)]
|
||||
public async Task ListQueue(int page = 1)
|
||||
|
@ -117,6 +117,7 @@ namespace NadekoBot.Services.Music
|
||||
|
||||
await (pauseTaskSource?.Task ?? Task.CompletedTask);
|
||||
}
|
||||
_log.Info(">>>>>>>>>READ 0<<<<<<<<<<");
|
||||
}
|
||||
catch (OperationCanceledException)
|
||||
{
|
||||
|
@ -42,17 +42,36 @@ namespace NadekoBot.Services.Music
|
||||
byte[] buffer = new byte[3840];
|
||||
while (!this.p.HasExited || cancelToken.IsCancellationRequested)
|
||||
{
|
||||
int bytesRead = await p.StandardOutput.BaseStream.ReadAsync(buffer, 0, buffer.Length, cancelToken).ConfigureAwait(false);
|
||||
|
||||
var toRead = buffer.Length;
|
||||
var remCap = _outStream.RemainingCapacity;
|
||||
if (remCap < 3840)
|
||||
{
|
||||
if (_outStream.RemainingCapacity == 0)
|
||||
{
|
||||
Console.WriteLine("Buffer full, not gonnna read from ffmpeg");
|
||||
await Task.Delay(10);
|
||||
continue;
|
||||
}
|
||||
toRead = remCap;
|
||||
}
|
||||
int bytesRead = await p.StandardOutput.BaseStream.ReadAsync(buffer, 0, toRead, cancelToken).ConfigureAwait(false);
|
||||
if (bytesRead == 0)
|
||||
{
|
||||
Console.WriteLine("I'm not reading anything from ffmpeg");
|
||||
await Task.Delay(50);
|
||||
}
|
||||
await _outStream.WriteAsync(buffer, 0, bytesRead, cancelToken);
|
||||
|
||||
if (_outStream.RemainingCapacity < _outStream.Capacity * 0.9f)
|
||||
toReturn.TrySetResult(true);
|
||||
if(toReturn.TrySetResult(true))
|
||||
Console.WriteLine("Prebuffering finished");
|
||||
}
|
||||
Console.WriteLine("FFMPEG killed or song canceled");
|
||||
}
|
||||
catch
|
||||
{
|
||||
toReturn.TrySetResult(false);
|
||||
if(toReturn.TrySetResult(false))
|
||||
Console.WriteLine("Prebuffering failed");
|
||||
//ignored
|
||||
}
|
||||
}, cancelToken);
|
||||
|
Loading…
Reference in New Issue
Block a user