HydrogenAudio

Lossless Audio Compression => WavPack => Topic started by: azaqiel on 2013-03-18 03:06:12

Title: testing wavpack (4.70.0), especially with regard to transcoding
Post by: azaqiel on 2013-03-18 03:06:12
I compiled r295 of WavPack, on 64-bit Windows.  I used pretty much vanilla Visual C++ 2010 Express on Windows 8 (just got this machine March 8).  I used the included solution from Visual Studio 9, which was automatically converted.  the first problem was my system was lacking afxres.h (included in wavpackdll.rc). fixed that by changing:
Code: [Select]
#include "afxres.h"
to
Code: [Select]
#include <windows.h>

of more importance to (some) end-users, the transcoding feature is less than working, and the documentation on this lacks.

here's the command line used:
Code: [Select]
>"wavpack\wavpack.exe" -hh -i -m -x6 "Z:\audio\wavpack\cake; b-sides and rarities\01 war pigs.wv" "C:\Users\Christopher\Music\wavpack\cake; b-sides and rarities\01 war pigs.wv"

the error was:
Code: [Select]
illegal option: h !
illegal option: h !
illegal option: 6 !

I know, transcoding wavpack to wavpack is probably pointless.  I just got bored.
also, this transcode was not hybrid to lossless; just plain lossless to lossless.
Title: testing wavpack (4.70.0), especially with regard to transcoding
Post by: bryant on 2013-03-18 06:41:21
I certainly can't explain the errors you're getting because it doesn't look like you even get past parsing the command-line...it certainly doesn't have anything to do with the new transcoding feature. Does your compiled version do anything right?

In any event, the transcoding feature is less than a week old (which explains the lack of documentation) and I haven't even tried compiling it for Windows myself (I do my development on Linux). I should get to that in the next week or so, and maybe I'll figure out what's going on.

As for the transcoding feature, it is only for transcoding WavPack to WavPack, and once it's working (well, it's working great on Linux) it should be very handy because it uses temp files (so it can work safely "in-place") and copies all the tags over (and even supports adding/deleting/chaging the tags).

David


Title: testing wavpack (4.70.0), especially with regard to transcoding
Post by: GenjuroXL on 2013-03-18 08:29:35
I've just tried building the latest SVN in MingW-w64 and everything seems to be working, except for an error when trying to build the manual (the .1 files appear to be missing).
I ran some preliminary tests with the resulting wavpack binary and it seems to work, at least the files it produces bit-compare fine against 4.60.1 encodes (using the official win32 binary).

Edit: Forgot to mention that there are no problems parsing the commandline options either, so that might be a problem with the MSVC project files or MSVC itself?

If anyone else wants to test, I've uploaded the binaries here: http://negju.musepack.net/wavpack-SVN-win64.7z (http://negju.musepack.net/wavpack-SVN-win64.7z)
Title: testing wavpack (4.70.0), especially with regard to transcoding
Post by: azaqiel on 2013-03-18 13:40:44
the binary encodes wav to wavpack just fine, but not wavpack to wavpack.

EDIT: just tried GenjuroXL's build, it does transcode.  must just be MSVC, or maybe because my system lacks the "afxres.h" file.  I have no idea what that's even for...

EDIT 2: forgot to mention that I've been using the exact same arguments each time.  for wav to wavpack and wavpack to wavpack.
Title: testing wavpack (4.70.0), especially with regard to transcoding
Post by: azaqiel on 2013-03-18 15:34:29
I apologize, Mr. Bryant.  it seems my above bug report is invalid.  transcoding works.  operator error.

however, there are still two (actually reproducible) problems.

wavpackdll.dll still doesn't compile.  apparently, the entire point of "afxres.h" (which was still not found after I installed Microsoft Windows SDK) is to include <windows.h>.  so my substitution in the first post makes sense...
lastly, with regard to the new temp file feature:
Code: [Select]
>"C:\Users\Christopher\Desktop\multimedia\utils\wavpack debug\wavpack.exe" -d -hh -i -m -x6 -y "C:\Users\Christopher\Desktop\multimedia\encodes\wavpack\soul coughing; studio b-sides\*.wv"

WAVPACK  Hybrid Lossless Audio Compressor  Win32 Version 4.70.0-alpha
Copyright (c) 1998 - 2013 Conifer Software.  All Rights Reserved.

can not rename temp file C:\Users\Christopher\Desktop\multimedia\encodes\wavpack\soul coughing; studio b-sides\04 the brooklynites.tmp.wv to C:\Users\Christopher\Desktop\multimedia\encodes\wavpack\soul coughing; studio b-sides\04 the brooklynites.wv!
there was only one file in the folder (04 the brooklynites.wv), which is why there is only one error.
Title: testing wavpack (4.70.0), especially with regard to transcoding
Post by: Mr_Rabid_Teddybear on 2013-03-18 21:59:23
I've just tried building the latest SVN in MingW-w64 and everything seems to be working, except for an error when trying to build the manual (the .1 files appear to be missing).


The manpage *.1 files are buildt from the *.xml files in man directory and buildt for me after installing packages docbook, docbook-xml and docbook-xsl on Debian. Probably not all of them required, maybe only docbook-xsl, I don't know....?

I guess you could try --disable-man to configure to silence errors if that works...? (I have no experience with MinGW.)


EDIT: Typo.

Title: testing wavpack (4.70.0), especially with regard to transcoding
Post by: kode54 on 2013-03-18 22:46:32
wavpackdll.dll still doesn't compile.  apparently, the entire point of "afxres.h" (which was still not found after I installed Microsoft Windows SDK) is to include <windows.h>.

MSVC resource compiler probably defines all of that internally, as the only place I can find an afxres.h is with MinGW, which only serves to include windows.h and define IDC_STATIC to -1.
Title: testing wavpack (4.70.0), especially with regard to transcoding
Post by: azaqiel on 2013-03-19 16:33:46
MSVC resource compiler probably defines all of that internally
actually, I tried commenting out the #include "afxres.h" first, and the dll didn't compile at all (a bunch of errors), which is why I changed it to #include <windows.h>.

I think I read that trick somewhere on msdn's social something-or-other.
Title: testing wavpack (4.70.0), especially with regard to transcoding
Post by: bryant on 2013-03-20 03:06:15
Thanks for the bug reports!

I am not very concerned about the DLL build problem because none of the supplied programs or plugins use it (it's basically for 3rd party developers) and I'm sure I'll figure it out once I try to build it (with VS 2008).

The rename issue is simply that the win32 rename() function will fail if the target already exists whereas on Linux rename() does an atomic delete and rename in that case (which is obviously what I want). For Windows I'll have to use another solution, but I'll attend to that once I move over to Windows.

David