hallo Leute,
ich hab wieder ein Problem mit meiner Musik-Engine: Die benutzt intern das XACT von DirectX, und das intern wiederum XAudio2. XACT liest zur Lufzeit mehrere Files ein, und wenn man da beim Umkopieren einen Fehler gemacht hat, passiert folgendes: in der Release-Version gibt's nur die fehlerhafte Audio-Wiedergabe, aber beim Debuggen bliebt man an einem internen Breakpoint hängen, und zwar in Xact->DoWork(). Und im Output-Fenster steht dann z.B. sowas wie folgendes:
XAUDIO2: x2voicewma.cpp:356: ERROR: AudioBytes must be at least the WMA format's block size
XAUDIO2: x2voicewma.cpp:361: ERROR: AudioBytes not aligned to the WMA format's block size
XAUDIO2: x2voicewma.cpp:366: ERROR: AudioBytes must equal number WMA packets submitted multiplied by the WMA format's block size
XAUDIO2: x2voicewma.cpp:465: ERROR: Invalid WMA source buffer
Ich muss da irgendwie drauf reagieren und das in eine vernünftige Fehlermeldung umwandeln. Die HRESULTs aller Xact-Funktionen inklusive DoWork() fang ich aber immer ab, und die sind immer alle gesund.
Jetzt die Frage: Gibt's ne Chance, das trotzdem irgendwie abzufangen ? Wieso wird das nicht nach außen weitergereicht ? Die DoWork()-API Referenz schweigt sich leider aus :/ Oder gibts vielleicht irgendne versteckte DirectX-Fehlerbehandlungs-Technik, um sowas weiterzuleiten ? (ich klammer mich schon an Strohhalme)
Dankbar für jede Idee:
ponx
[DirectX] interne Fehler bei XACT / XAudio2 abfangen ?
Re: [DirectX] interne Fehler bei XACT / XAudio2 abfangen ?
Wenn da was murksig ist solltest du versuchen herauszubekommen, woher das kommt.
Ich denke mal das da ein Buffer schief steht. Wenn du wirklich irgendwo über den Buffer schreibst oder anderweitig im Speicher rum schmierst, also nicht mit Absicht natürlich, dann wird die Software früher oder später abschmieren.
Ich denke mal das da ein Buffer schief steht. Wenn du wirklich irgendwo über den Buffer schreibst oder anderweitig im Speicher rum schmierst, also nicht mit Absicht natürlich, dann wird die Software früher oder später abschmieren.
- ponx
- Establishment
- Beiträge: 217
- Registriert: 04.05.2008, 12:52
- Echter Name: Andy Ponx
- Wohnort: Hamburg
- Kontaktdaten:
Re: [DirectX] interne Fehler bei XACT / XAudio2 abfangen ?
Ich weiß sehr wahrscheinlich woher es kommt: Beim Umkopieren der einzelnen Files hat jemand Mist gebaut. Das würd ich gerne irgendwie ins Logfile meiner Library schreiben.. nur, wie merk ich das, dass der Fehler aufgetreten ist ? Zumal ohne Debug-Config nicht mal mehr der XAudio2-Fehlertext ins stdout geschrieben wird.. :-/
Re: [DirectX] interne Fehler bei XACT / XAudio2 abfangen ?
Eine Plausibilisierungsfunktion bauen, die die Gültigkeit der Daten vor der Verwendung prüft. Das dürfte, wenn du sonst nur OK Meldungen bekommst, die einzige Lösung sein.
- ponx
- Establishment
- Beiträge: 217
- Registriert: 04.05.2008, 12:52
- Echter Name: Andy Ponx
- Wohnort: Hamburg
- Kontaktdaten:
Re: [DirectX] interne Fehler bei XACT / XAudio2 abfangen ?
ok ich fürchte auch.. danke dir, simbad !