GSM a AU file

Robert Vojta robert na v0jta.net
Úterý Únor 24 11:35:56 CET 2004


  Pro archív - řešení problému. Hlavička .au souboru, kterou akceptuje
Cisco vypadá následovně.

struct au_file_header
{
    unsigned long magic;
    unsigned long data_offset;
    unsigned long data_size;
    unsigned long encoding;
    unsigned long sample_rate;
    unsigned long channels;
    char comment[4];
};

  Defaultní hodnoty jsou ...

    header->magic = 0x2e736e64;     /* .snd - magic          */
    header->data_offset  = 24 + 4;  /* 28 - header size      */
    header->encoding = 44;          /* Cisco proprietary GSM */
    header->sample_rate = 8000;     /* 8000 Hz               */
    header->channels = 1;           /* Mono                  */
    header->comment[0] = 'G';
    header->comment[1] = 'S';
    header->comment[2] = 'M';
    header->comment[3] = 0;
    header->data_size = velikost raw GSM dat;

  Pokud to konvertujete na x86, je třeba před zápisem provést konverzi
všech 'unsigned long' do Big Endianu. Výsledný .au soubor se vytvoří
tak, že se na začátek zapíše hlavička (se správnou velikostí dat) a za
ní se nasypou raw GSM data.

  Kontrola výsledného souboru by měla být taková, že od celkové
velikosti odečteme 28 (hlavičku) a výsledné číslo musí být
dělitelné 33 (1 GSM frame).

-- 
Robert Vojta


Další informace o konferenci Linux