Domanda

Lavoro su un importatore audio in Java (usato in un sequencer di batteria) e ho il seguente problema con l'importazione di file AIFF:

Ho 2 file AIFF dello stesso tipo (24 bit, 44100khz, mono), uno è creato su un Mac, l'altro è creato con Wavelab su un computer Windows. Entrambi i file sono PCM non compressi, entrambi sono form == AIFF.

L'AIFF del Mac è Bigendian (come dovrebbe essere), l'AIFF di Wavelab (Windows) è LittleEndian.

Entrambi i file possono essere riprodotti correttamente in Wavelab (Windows) e in QuickTime (Windows). In che modo questi strumenti possono rilevare l'endianness di questi file? In qualsiasi modo deve essere possibile, altrimenti almeno uno dei file sembrerebbe proprio come il rumore (ecco cosa succede nella mia applicazione).

Esistono alcune informazioni nascoste all'interno dell'intestazione del file o in qualsiasi altro modo per determinare l'endianness del file AIFF? Eventuali suggerimenti?

Molte grazie

È stato utile?

Soluzione

Un rapido googling dice che i file AIFF lo sono grande endian.

Tuttavia, secondo Wikipedia C'è un altro formato chiamato AIFF-C che comprime i dati. Apple usa Little Endian in questi giorni e ha creato un metodo di compressione falso chiamato Sowt Ciò significa essenzialmente "nessuna compressione ma poco endian". Potrebbe essere necessario verificarlo.

A parte questo, Plain Aiff non fornisce alcun modo per verificare l'endianness. Un AIFP standard che è codificato in Little Endian sembra violare le specifiche.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top