IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
Flac Decoding Errors
madah
post Oct 25 2002, 16:25
Post #1





Group: Developer
Posts: 202
Joined: 13-February 02
From: Sweden
Member No.: 1318



I have a .flac file which refuses to decode.

This happened after I fiddled with metaflac trying to add vorbis-comments, not sure about the error it gave me, but it was something of that below (FLAC__METADATA_CHAIN_STATUS_BAD_METADATA).

flac -d file.flac

CODE
file.flac: ERROR while decoding data
          state = 4:FLAC__STREAM_DECODER_END_OF_STREAM


flac -d --decode-through-errors file.flac
CODE
file.flac: ERROR while decoding data
          state = 4:FLAC__STREAM_DECODER_END_OF_STREAM


metaflac --list file.flac
CODE
file.flac: ERROR: reading metadata, status = "FLAC__METADATA_CHAIN_STATUS_BAD_METADATA"


If I play the file in Winamp it first pops out:
CODE
ERROR: invalid/missing FLAC metadata

then
CODE
ERROR processing metadata
FLAC__FILE_DECODER_SEEKABLE_STREAM_DECODER_ERROR


Looking at the file in a hex-editor it seems fine... The id "fLaC" is there, a seeking block and a padding-block then comes the audio data...

Is there anyway to restore my file? It was perfectly fine before I used metaflac, at least it played fine in winamp. But the file could have corrupt metadata-headers and because of that metaflac trashed the flac-header?

Using flac & metaflac 1.0.4 but the file was encoded with an older version.

Edit:

Did some more testing, did a basic flac-metadata-reader according to the specs

CODE
Block nr 0
Offset: 4
BLOCK_TYPE: 0 (STREAMINFO)
Size: 34
-------------
Block nr 1
Offset: 42
BLOCK_TYPE: 3 (SEEKTABLE)
Size: 236
-------------
Block nr 2
Offset: 282
BLOCK_TYPE: 0 (STREAMINFO)
Size: 27
-------------
Block nr 3
Offset: 313
BLOCK_TYPE: 5
Size: 1179648


Because there can only be one STREAMINFO block, and BLOCK_TYPE 5 is undefined, and no block has "Last-metadata-block flag" set, I know what's wrong here. Hmm let's see if I can hex-edit those blocks out or something...

Edit2:

Noticed that the size of the SEEKTABLE-block was always 1800 bytes, so when I changed it in file.flac, it worked!

CODE
Block nr 0
Offset: 4
BLOCK_TYPE: 0 (STREAMINFO)
Size: 34
-------------
Block nr 1
Offset: 42
BLOCK_TYPE: 3 (SEEKTABLE)
Size: 1800
-------------
Block nr 2
Offset: 1846
BLOCK_TYPE: 1 (PADDING)
Last Block
Size: 1560
-------------


flac -d --decode-through-errors file.flac

CODE
file.flac: *** Got error code 0:FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC
file.flac: WARNING, MD5 signature mismatch


The file plays fine! There is no audible pop or anything, looked at the file in cool edit and it was perfectly fine!

Now I willl do some testing to see if there was a bug in metaflac...

Hopefully this thread will be useful if someone else is having problems!

Edit3:

Ok it was a confirmed bug... I did use --import-vc-from=- to add comments...
QUOTE
*   metaflac has a bug where, if --import-vc-from is used on a FLAC file that has no Vorbis comment block, the FLAC file can be corrupted. All FLAC files generated by 1.0.4 have a Vorbis comment block added automatically but files from 1.0.3 and before do not. This is fixed in CVS.
Go to the top of the page
+Quote Post
jcoalson
post Oct 25 2002, 19:03
Post #2


FLAC Developer


Group: Developer
Posts: 1526
Joined: 27-February 02
Member No.: 1408



Sorry about that. If you don't mind compiling, you can get the flac 1.0.4 sources and replace src/metaflac/main.c with

http://cvs.sourceforge.net/cgi-bin/viewcvs...main.c?rev=1.47

You can see the diffs here:

http://cvs.sourceforge.net/cgi-bin/viewcvs...r1=1.45&r2=1.47

CVS is slightly unstable while I add the ReplayGain and cuesheet stuff but I plan to have a 1.0.5 with the fixes soon (maybe 3 weeks).

Josh
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 18th September 2014 - 14:04