[DirectX] interne Fehler bei XACT / XAudio2 abfangen ?

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
ponx
Establishment
Beiträge: 217
Registriert: 04.05.2008, 12:52
Echter Name: Andy Ponx
Wohnort: Hamburg
Kontaktdaten:

[DirectX] interne Fehler bei XACT / XAudio2 abfangen ?

Beitrag von ponx »

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
simbad
Establishment
Beiträge: 132
Registriert: 14.12.2011, 14:30

Re: [DirectX] interne Fehler bei XACT / XAudio2 abfangen ?

Beitrag von simbad »

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.
Benutzeravatar
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 ?

Beitrag von ponx »

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.. :-/
simbad
Establishment
Beiträge: 132
Registriert: 14.12.2011, 14:30

Re: [DirectX] interne Fehler bei XACT / XAudio2 abfangen ?

Beitrag von simbad »

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.
Benutzeravatar
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 ?

Beitrag von ponx »

ok ich fürchte auch.. danke dir, simbad !
Antworten