// expects data already loaded, filename arg is for error printing only // // returns unpacked length, or 0 for errors (which will be printed internally) // int MP3_GetUnpackedSize( const char *psLocalFilename, void *pvData, int iDataLen, qboolean qbIgnoreID3Tag /* = qfalse */ , qboolean bStereoDesired /* = qfalse */ ) { int iUnpackedSize = 0; if (qbIgnoreID3Tag || !MP3_ReadSpecialTagInfo((byte *)pvData, iDataLen, NULL, &iUnpackedSize)) { char *psError = C_MP3_GetUnpackedSize( pvData, iDataLen, &iUnpackedSize, bStereoDesired); if (psError) { Com_Printf(va(S_COLOR_RED"%s\n(File: %s)\n",psError, psLocalFilename)); return 0; } } return iUnpackedSize; }
// expects data already loaded, filename arg is for error printing only // // returns unpacked length, or 0 for errors (which will be printed internally) // int MP3_GetUnpackedSize( const char *psLocalFilename, void *pvData, int iDataLen, sboolean qbIgnoreID3Tag /* = qfalse */ , sboolean bStereoDesired /* = qfalse */ ) { int iUnpackedSize = 0; // always do this now that we have fast-unpack code for measuring output size... (much safer than relying on tags that may have been edited, or if MP3 has been re-saved with same tag) // if (1)//qbIgnoreID3Tag || !MP3_ReadSpecialTagInfo((byte *)pvData, iDataLen, NULL, &iUnpackedSize)) { char *psError = C_MP3_GetUnpackedSize( pvData, iDataLen, &iUnpackedSize, bStereoDesired); if (psError) { Com_Printf(va(S_COLOR_RED"%s\n(File: %s)\n",psError, psLocalFilename)); return 0; } } return iUnpackedSize; }