[FFmpeg-devel] [PATCH] WAV file length (writing to stdout)
Cyril B.
cbay
Fri Oct 19 10:31:45 CEST 2007
Michael Niedermayer wrote:
> Hi
>
> On Tue, Oct 16, 2007 at 05:02:39PM +0200, Cyril B. wrote:
>> Hi,
>>
>> As reported recently on this mailing list [1], ffmpeg sets 0 as file
>> length in the WAV header if output is streamed (for instance, when
>> outputting to stdout). Nero AAC encoder does not accept such streams
>> ('could not parse WAV file' error).
>>
>> The WAV file specs [2] say the file length (ChunkSize) must be 36 + data
>> length. The included patch writes 36 instead of 0, which satisfies Nero
>> encoder.
> [...]
>> [2] http://ccrma.stanford.edu/courses/422/projects/WaveFormat/
>
> no this is not the wav file spec
> parts of the wav file spec can be found if you search for
> "multimedia programming interface and data specification"
>
> [...]
Sorry, I was not clear. The [2] actually pointed to a page that clearly said
that the file length was at least 36, based on the (real) specs. I just
pointed to that page as a quick way for you reviewers to check my patch was
not totally nonsense.
Of course, you can get to the same conclusion by reading the specs [1]
(which I did): a WAVE file has mandatory fmt-ck and wave-data chunks. If
you add up the space needed by these chunks (with the Pulse Code Modulation
as format specific fields), you get 36. Thus, a valid WAV file should
probably have a file length larger (or equal) than 36.
By the way, Nero AAC Encoder specifically checks for 36 or more. I tested
with 35, it fails. 36 or more, it passes.
[1] http://www.tactilemedia.com/info/MCI_Control_Info.html
--
Cyril B.
More information about the ffmpeg-devel
mailing list