dizzy611 / schaltervox Goto Github PK
View Code? Open in Web Editor NEWA (currently WORKING, but horribly unfinished) media player for the Nintendo Switch
License: GNU General Public License v3.0
A (currently WORKING, but horribly unfinished) media player for the Nintendo Switch
License: GNU General Public License v3.0
From PR description:
'playout' is what causes the audio thread to play out it's last few buffers after the decode
thread has terminated. This is a maximum of about 300ms (usually 200ms or much lower) of audio
that may still potentially be in the audio transfer buffer once the decode has completed.
However, when 'playing out' resampled audio, there are issues due to the amount of buffer consumed
on each pass being less than a factor of the buffer size. As the value of atbUsed (the amount
of buffer in use) decreases on each pass, it eventually reaches an amount smaller than the
amount needed to be consumed to create one burst of resampled audio. This causes various
undefined behaviors, mostly crashes. As such, 'playout' has been disabled automatically
for resampled audio, even on a natural track change to avoid these problems for now,
until I can come up with a fix.
This has something to do with the metadata updating, as it happened a lot more before I changed that to do the minimum amount possible while the decoder is running. Don't know why it's going screwy, I've got mutexes around everything...
I have no idea what's going on here, as it's completely intermittent. Will freeze roughly at the beginning of the vorbisdecode constructor, presumably during ov_fopen
This is probably an ID3 problem. Log follows.
[3:45 AM] jakibaki: @Insidious611 [5.1.0] SchalterVox is crashing for me with this as soon as it opens an mp3 D: Do you happen to have an idea what could cause this?
[3:46 AM] Insidious611 [5.1.0]: hmm
[3:46 AM] Insidious611 [5.1.0]: I'm not sure
[3:46 AM] Insidious611 [5.1.0]: it might be something weird with your id3 tags
[3:47 AM] Insidious611 [5.1.0]: that's the bit I'm least confident is ready atm :stuck_out_tongue:
[3:48 AM] jakibaki: I tried https://archive.org/details/testmp3testfile this mp3
Internet Archive
mp3 test file : test : Free Download, Borrow, and Streaming : Inte...
test of an mp3 file upload
[3:51 AM] Insidious611 [5.1.0]: I'll test it out and see if I can get to the bottom of it. Thanks.```
On mp3-decoding branch
As much as I like dr_mp3, I'm unable to figure out the bitrate of my mp3 files. bit_rate under frameInfo under drmp3 is reading as 0, and even when I tried to modify dr_mp3.h to make sure it set a variable on the drmp3 object referring to the bitrate, it came up 0. Because of this I'm having a hard time calculating length as well.
It may be preferrable to write something to scan for MP3 headers and average the "bitrate" values from those.
This appears to me to be an issue in playback.cpp, inasmuch as it seems like the switch audio buffers (not the transfer buffer, which actually overflows on occasion) are being underrun, but I'm not sure what I'm doing wrong there.
As vorbisdecoder::stop() does a threadWaitForExit(), this hangs the entire program. The while loop should terminate once vorbisdecoder::decodeRunning is set to false by vorbisdecoder::stop(), so I'm assuming this is a thread safety problem.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.