[FFmpeg-devel] aptX codec in RIFF wave container
Pali Rohár
pali.rohar at gmail.com
Tue Dec 18 13:12:07 EET 2018
Hello,
it looks like that audio encoded by aptX (non-hd) codec can be stored in
RIFF wave container. Look into old Microsoft Multimedia document named
"New Multimedia Data Types and Data Techniques" from April 15, 1994.
http://web.archive.org/web/20120917060438/http://download.microsoft.com/download/9/8/6/9863C72A-A3AA-4DDB-B1BA-CA8D17EFD2D4/RIFFNEW.pdf
It was available on Microsoft website, but now is only in webarchive.
At page 45 is described WAVE format header with allocated id for aptX.
#define WAVE_FORMAT_APTX (0x0025)
Description of compression on that page really matches aptX (non-hd)
codec which is already supported by ffmpeg.
So... could you add support for storing aptX encoded audio to RIFF wave
container? Currently ffmpeg can store aptX only into "raw" container, so
there is no information about frequency or channels. And above document
describe that frequency and number of channels can be stored in RIFF
wave also for aptX payload.
Below is copy of page 45 from that PDF document:
========================================================================
Audio Processing Technology Wave Type
Added: 06/22/93
Author: Calypso Software Limited
Fact Chunk
This chunk is required for all WAVE formats other than WAVE_FORMAT_PCM. It stores file dependent
information about the contents of the WAVE data. It currently specifies the length of the data in samples.
WAVE Format Header
#define WAVE_FORMAT_APTX (0x0025)
wFormatTag This must be set to WAVE_FORMAT_APTX.
nChannels Number of channels in the wave, always 1 for mono, 2 for stereo.
nSamplesPerSec Frequency of the sample rate of the wave file. (8000, 11025, 22050, 44100,
48000)
nAvgBytesPerSec Average data rate..= nChannels * nSamplesPerSec/2. (16bit audio)
Playback software can estimate the buffer size using the <nAvgBytesPerSec>
value.
nBlockAlign Should be set to 2 (bytes) for mono data or 4 (bytes) for stereo.
For mono data 4 sixteen bit samples will be compressed into 1 sixteen bit
word
For stereo data 4 sizteen bit left channel samples will be compressed into the
first 16bit word and 4 sixteen bit right channel samples will be cmpressed into
the next 16 bit word.
Playback software needs to process a multiple of <nBlockAlign> bytes of data
at a time, so that the value of <nBlockAlign> can be used for buffer
alignment.
wBitsPerSample This is the number of bits per sample. Not used; set to four.
cbSize The size in bytes of the extra information in the extended WAVE 'fmt'
header. This should be 0.(zero)
The definition of the data contained in the APTX format is considered proprietary information of Audio
Processing Technology Limited. They can be contacted at:
Audio Processing Technology Limited
Edgewater Road
Belfast, Northern Ireland, BT3 9QJ
Tel 44 232 371110
Fax 44 232 371137
This format is proprietary audio format using 4:1 compression i.c. 16 bits of audio are compressed to 4
bits. It is only encoded/decoded by dedicated hardware from MM_APT
Multimedia Data Standards Update April 15, 1994 Page 45 of 73
========================================================================
--
Pali Rohár
pali.rohar at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20181218/a29d4cec/attachment.sig>
More information about the ffmpeg-devel
mailing list