Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: FLAC 1.3.0 has been released (Read 193271 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

FLAC 1.3.0 has been released

Reply #200
FLAC stores the MD5 hash of the original stream in its STREAMINFO block, so a broken encoder will manifest as a file that passes all the frame checksum verifications but has an MD5 mismatch at the end.


Not if the error is implementing the wrong algorithm. For both encoding and decoding.  Then it will consistently decode its own files to the original signal even though it by specification should mean something else.

Suppose you "encode" your language to contemporary American English, not knowing that you were supposed to encode to some older specification of British English. You translate "homosexual" to "gay", and when you translate it back, it will be ... "homosexual". Fine, it verifies! But now you send your encoded file to someone who uses the Reference Decoder, to which "gay" means "happy". There is no way you can detect that error from within your own algorithm, because you have - effectively - written a perfectly working encoder-decoder for a different codec.

FLAC 1.3.0 has been released

Reply #201
Not if the error is implementing the wrong algorithm. For both encoding and decoding.  Then it will consistently decode its own files to the original signal even though it by specification should mean something else.

Since the specification hasn't changed in some time, just verify your files encoded by 1.3.0 against an earlier FLAC version such as 1.2.1.

FLAC 1.3.0 has been released

Reply #202
Is that necessary?

The encoder and decoder share quite some code, for example, calculating the residual from the LP coefficients is done with the same functions for both encoding and decoding. If something is wrong with these functions, encoding and decoding will indeed make the same error. For this reason, during the testing period for FLAC 1.3.0, I ran the test suite with FLAC as an encoder and ffmpeg and older versions of FLAC as a decoder. This had the added benefit of catching some cornercases in which the ffmpeg decoder didn't work properly.

If you want to do this yourself to verify your build, change the file test_streams.sh in the directory test. There is a subroutine called test_file().

Quote
echo -n "decode..."
cmd="run_flac --silent --force --endian=little --sign=signed --decode --force-raw-format --output-name=$name.cmp $name.flac"

You can change that run_flac command to use a different binary or even ffmpeg.

In general, I would just disencourage using unstable code in production.
Music: sounds arranged such that they construct feelings.


FLAC 1.3.0 has been released

Reply #204
What would be the fastest available Windows compile of flac.exe for FLAC file testing (flac.exe -t) purposes? This would be run on a 64-bit Windows system.


FLAC 1.3.0 has been released

Reply #206
If you want to test the new presets with improved compression you should get a fresh build as the patch for that only just landed.

https://git.xiph.org/?p=flac.git;a=commit;h...a0e1270b850b0a9
Every night with my star friends / We eat caviar and drink champagne
Sniffing in the VIP area / We talk about Frank Sinatra
Do you know Frank Sinatra? / He's dead


FLAC 1.3.0 has been released

Reply #208
Not quite the latest git (I changed its vendor string, etc), but... here it is.

FLAC 1.3.0 has been released

Reply #209
Not quite the latest git (I changed its vendor string, etc), but... here it is.

Thanks but I'll skip the alpha-pre tag  I have OCD for these kind of things, I know your last build is not the "reference libFLAC 1.3.0 20130526" but you forgot to change it and it's FAST so I am going to keep that one for now. All my files have that string, I will wait for the new "reference libFLAC 1.3.1 ...".

Maybe if you do something like "libFLAC-git date" ...maybe.

FLAC 1.3.0 has been released

Reply #210
32- and 64-bit exe files built from the current code (15 Oct 2014):
http://www.hydrogenaud.io/forums/index.php...ost&id=8051


I seem to be getting a lot of errors reported when I use the above 32 bit and 64 bit versions. Has anyone else encountered error reports? For example, see my recent post in the uploads section:
[On another matter, I seem to be getting errors on some flac downloads. The error manifested itself in the decoded waveform for 15_Haydn__String_Quartet_In_D__Op__76__No__5_-_Finale_-_Presto___cues_section_17.flac by way of silence for a short segment of about 21mS commencing 1.834mS into the file. Probably an error at my end. I am querying this at post #211 of the FLAC 1.3.0 has been released thread.]


The error reported as follows (this is copied from the command prompt window for two files that were checked using a 32-bit pc running Windows 7):-

C:\newflac>flac -t *.flac

flac 1.3.0, Copyright © 2000-2009, 2011-2013  Josh Coalson & Xiph.Org Foundati
on
flac comes with ABSOLUTELY NO WARRANTY.  This is free software, and you are
welcome to redistribute it under certain conditions.  Type `flac' for details.

15_Haydn__String_Quartet_In_D__Op__76__No__5_-_Finale_-_Presto___cues_section_17
.flac: *** Got error code 2:FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCH



15_Haydn__String_Quartet_In_D__Op__76__No__5_-_Finale_-_Presto___cues_section_17
.flac: ERROR while decoding data

      state = FLAC__STREAM_DECODER_READ_FRAME
15_Haydn__String_Quartet_In_D__Op__76__No__5_-_Finale_-_Presto___cues_section_2.
flac: *** Got error code 0:FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
*** Got error code 0:FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC


15_Haydn__String_Quartet_In_D__Op__76__No__5_-_Finale_-_Presto___cues_section_2.
flac: ERROR while decoding data

      state = FLAC__STREAM_DECODER_READ_FRAME



Perhaps flac.exe accesses some library that on my PCs is out of date.  Or is it a self-contained executable?

FLAC 1.3.0 has been released

Reply #211
Which CPU do you have? It's possible that new optimizations have a bug somewhere but it's also possible your CPU or memory has a fault causing miscalculations. lvqcl's compiles work fine for those files here. The flac.exe binary has no extra dll dependencies.

FLAC 1.3.0 has been released

Reply #212
Also no problem here with decoding these Haydn files (tried 32-bit version @ Intel Core2 Quad Q9500).

@eahm:
Quote
I will wait for the new "reference libFLAC 1.3.1 ...

The binaries supplied by lvqcl (flac-new-20141115.7z) report this vendor string: "libFLAC 1.3.1 (UTC 2014-11-15)"

FLAC 1.3.0 has been released

Reply #213
The error reported as follows (this is copied from the command prompt window for two files that were checked using a 32-bit pc running Windows 7):-
[...]
Perhaps flac.exe accesses some library that on my PCs is out of date.  Or is it a self-contained executable?

This flac.exe is indeed self-contained. Can you check the MD5 of the files?

Code: [Select]
7fc463c74ccbe471ed3d307ec23a2e0c  15_Haydn__String_Quartet_In_D__Op__76__No__5_-_Finale_-_Presto___cues_section_2.flac
0415967ee313fc202c53ac652834983b  15_Haydn__String_Quartet_In_D__Op__76__No__5_-_Finale_-_Presto___cues_section_6.flac
e891c704fa107a0f7f4ef412d10c0a63  15_Haydn__String_Quartet_In_D__Op__76__No__5_-_Finale_-_Presto___cues_section_17.flac


If these check out, there might be a serious bug somewhere that we didn't notice yet.

edit: oh, and by the way, if you repeat the process of testing, do the same errors pop up in the same place every time you run it?
Music: sounds arranged such that they construct feelings.

FLAC 1.3.0 has been released

Reply #214
Can you check the MD5 of the files?

Code: [Select]
7fc463c74ccbe471ed3d307ec23a2e0c  15_Haydn__String_Quartet_In_D__Op__76__No__5_-_Finale_-_Presto___cues_section_2.flac
0415967ee313fc202c53ac652834983b  15_Haydn__String_Quartet_In_D__Op__76__No__5_-_Finale_-_Presto___cues_section_6.flac
e891c704fa107a0f7f4ef412d10c0a63  15_Haydn__String_Quartet_In_D__Op__76__No__5_-_Finale_-_Presto___cues_section_17.flac

The MD5s were very different. The files had been downloaded with a 64 bit pc.  I then downloaded again, this time using a 32 bit pc, and the MD5s were as you have shown them, ktf, above. These files checked out ok using flac.exe -t on both the 32 bit and 64 bit pcs.

So I am sorry to have raised this issue. There must be some integrity issue with how my 64 bit pc downloads files. (It's odd though as I do not ordinarily seem to have a problem with file downloads using that pc.)

Thanks to everyone for their advice! Much appreciated.

FLAC 1.3.0 has been released

Reply #215
Could it be that you are running faulty hardware (like bad RAM or something)?

FLAC 1.3.0 has been released

Reply #216
There must be some integrity issue with how my 64 bit pc downloads files. (It's odd though as I do not ordinarily seem to have a problem with file downloads using that pc.)
Highly likely you have a RAM stick going bad. Especially if the checksums change every few times you calculate them. I had this behavior and it simply started happening out of nowhere, so even if you don't usually have problems like these, try running some memory diagnostic (the windows built-in one should do the trick, or there is also memtest86+)

FLAC 1.3.0 has been released

Reply #217
Highly likely you have a RAM stick going bad. Especially if the checksums change every few times you calculate them. I had this behavior and it simply started happening out of nowhere, so even if you don't usually have problems like these, try running some memory diagnostic (the windows built-in one should do the trick, or there is also memtest86+)


I ran the Windows memory tool on my 64-bit pc. It reported no error.

The MD5 checksums stay constant. For the three files I downloaded using my 64-bit Windows 7 pc [which uses a wi-fi connection to my router] the MD5 ckecksums are:

9b71e529534bf27cea1652eb45053f10      ...2.flac
c8c3910c5b64f94e2b66b31f68a61d3c        ...6.flac
47d81d2ce9a1e966bd52b232e42a903e    ...17.flac

These files all report errors when I run the flac.exe test. They all load into an audio editor, such as Audacity, but examination can reveal corruption (e.g. the patch of silence in the last file, 15_Haydn__String_Quartet_In_D__Op__76__No__5_-_Finale_-_Presto___cues_section_17.flac). 

On the other hand, for the three files I downloaded using my 32-bit Windows 7 pc [which uses an ethernet connection to my router] the MD5 checksums are as supplied by ktf above. And flac.exe (on either pc) reports all three files as ok.

So the error appears to have occurred at the time of the file downloads. A bit of a mystery, but I think I'll use my 32-bit pc for critical downloads in the future.

Cheers.

P.S. I tried a download of the three files again a moment ago with my 64-bit pc. The first file, ...2.flac, was fine, but the other two had totally new MD5's! I think I'll run the RAM check a few more times on separate occasions, in case there's an intermittent issue with the RAM.

FLAC 1.3.0 has been released

Reply #218
Whether your PC is 64-bit or 32-bit makes no difference to downloading files.

FLAC 1.3.0 has been released

Reply #219
P.S. I tried a download of the three files again a moment ago with my 64-bit pc. The first file, ...2.flac, was fine, but the other two had totally new MD5's! I think I'll run the RAM check a few more times on separate occasions, in case there's an intermittent issue with the RAM.


I would:
- check the file system!
- try different RAM-testing software.
- download to a different physical drive as well, and see if you can reproduce that. I've had Windows writing file segments all over the place due to errors in the file system.
- download to a different computer, and "download" from that one to the potential troublemaker. Use your browser?

I would likely also have run the files through a binary diff tool to see if they differ "at random" or somewhere specific. But frankly I have no clue what information to extract from that :-o

FLAC 1.3.0 has been released

Reply #220
I would likely also have run the files through a binary diff tool to see if they differ "at random" or somewhere specific. But frankly I have no clue what information to extract from that :-o
Single-bit errors can most easily be attributed to bad RAM. Large blocks of bad data with lengths that are a power-of-two multiple of 512 are filesystem corruption, though you can't rule out bad RAM as the cause. Insertions, deletions, and large block differences that aren't a multiple of 512 are most likely to be a network issue.

FLAC 1.3.0 has been released

Reply #221
where do you put this version of 64bit flac?


FLAC 1.3.0 has been released

Reply #223
If I could figure out how to compile (win7 x64), I'd build a GCC x64 FLAC version.
One that doesn't depend on VC dll's.

It'd also be nice to see benchmarks for x64 GCC as well.
I like to use "HD audio" in PaulStretch. "HD audio", lol.