HydrogenAudio

Lossy Audio Compression => AAC => AAC - Tech => Topic started by: chrisballinger on 2011-07-26 06:54:01

Title: CoreAudio AAC missing packet table
Post by: chrisballinger on 2011-07-26 06:54:01
Hi, I've been developing the iPhone version of Cop Recorder (http://www.openwatch.net/) but we have been getting some corrupted .caf (Core Audio container) files that are missing a valid packet table. I assume this is because we aren't properly stopping the recording when a device is multitasking, but I haven't been able to isolate the bug and we have a few corrupted recordings now. I'd like to salvage as many recordings as we can, because the only thing we seem to be missing is the packet table.

Ffmpeg reports the following:

[caf @ 0x7fbee284ac00] Missing packet table. It is required when block size or frame size are variable.

"Variable bit rate, constant number of frames per packet (such as AAC and variable-bit-rate MP3): mBytesPerPacket is zero, mFramesPerPacket is nonzero.
The Packet Table chunk data section contains single-number entries that describe the size, in bytes, of each packet in the Audio Data chunk."CAF specificiation (http://developer.apple.com/library/mac/#documentation/MusicAudio/Reference/CAFSpec/CAF_spec/CAF_spec.html#//apple_ref/doc/uid/TP40001862-CH210-DontLinkElementID_64)

Valid CAF file containing AAC (http://chrisballinger.info/files/1309554492.caf)
Corrupted CAF file missing packet table at end of file (http://chrisballinger.info/files/1310362242.caf)

Do you guys have any ideas? It seems that these are CBR AAC files so hopefully there might be a way to generate the packet table afterwards?

Thanks!