{"action":"opened","issue":{"url":"https://api.github.com/repos/mono/MonoGame/issues/4440","labels_url":"https://api.github.com/repos/mono/MonoGame/issues/4440/labels{/name}","comments_url":"https://api.github.com/repos/mono/MonoGame/issues/4440/comments","events_url":"https://api.github.com/repos/mono/MonoGame/issues/4440/events","html_url":"https://github.com/mono/MonoGame/issues/4440","id":127448177,"number":4440,"title":"[OpenAL] Occasionnal OggStreamer crash","user":{"login":"mrhelmut","id":3427451,"avatar_url":"https://avatars.githubusercontent.com/u/3427451?v=3","gravatar_id":"","url":"https://api.github.com/users/mrhelmut","html_url":"https://github.com/mrhelmut","followers_url":"https://api.github.com/users/mrhelmut/followers","following_url":"https://api.github.com/users/mrhelmut/following{/other_user}","gists_url":"https://api.github.com/users/mrhelmut/gists{/gist_id}","starred_url":"https://api.github.com/users/mrhelmut/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrhelmut/subscriptions","organizations_url":"https://api.github.com/users/mrhelmut/orgs","repos_url":"https://api.github.com/users/mrhelmut/repos","events_url":"https://api.github.com/users/mrhelmut/events{/privacy}","received_events_url":"https://api.github.com/users/mrhelmut/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2016-01-19T13:37:19Z","updated_at":"2016-01-19T13:37:19Z","closed_at":null,"body":"I've only seen this happening on OS X, but given the nature of the problem, I'm pretty sure it can happen on any OS depending on the decoding performance.\r\n\r\nA crash can occur in ```OggStreamer.FillBuffer()``` on the ```AL.BufferData()``` call with an ```Invalid Value``` AL error.\r\n\r\nAL documentation about this error:\r\n> The size parameter is not valid for the format specified, the buffer is in use, or the data is a NULL pointer. \r\n\r\nI haven't managed to reproduce it in a debug environment yet, but I'm pretty certain that ```size``` and ```format``` are always correct, and that ```data``` can't be NULL because ```CastBuffer()``` would throw an exception before the ```ALHelper.Check()```. Hence, it most probably mean that a buffer is still in use, though it shouldn't if ```AL.SourceUnqueueBuffers()``` returned it..."}}