FFmpegfs Fuse Multi Media Filesystem 2.16
aiff.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2017-2024 by Norbert Schlia (nschlia@oblivion-software.de)
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
17 *
18 * On Debian systems, the complete text of the GNU General Public License
19 * Version 3 can be found in `/usr/share/common-licenses/GPL-3'.
20 */
21
33#ifndef AIFF_H
34#define AIFF_H
35
36#pragma once
37
38#include <stdint.h>
39#include <array>
40
41#pragma pack(push, 1)
42
43typedef std::array<uint8_t, 4> AIFF_ID;
45#define AIFF_FORMID "FORM"
49typedef struct
50{
52 uint32_t m_ckSize;
54 //uint8_t chunks[];
56
60typedef struct
61{
63 uint32_t m_ckSize;
64 //uint8_t data[];
66
67#define AIFF_COMMONID "COMM"
71typedef struct
72{
74 uint32_t m_ckSize;
75 uint8_t m_numChannels;
77 uint8_t m_sampleSize;
78 //extended sampleRate;
80
81#define AIFF_SOUNDATAID "SSND"
85typedef struct
86{
88 uint32_t m_ckSize;
89 uint32_t m_offset;
90 uint32_t m_blockSize;
91 //uint8_t soundData[];
93
94#define AIFF_NAMEID "NAME"
95#define AIFF_AUTHORID "AUTH"
96#define AIFF_COPYRIGHTID "(c) "
97#define AIFF_ANNOTATIONID "ANNO"
101typedef struct
102{
104 uint32_t m_ckSize;
105 //uint8_t text[];
107
108#pragma pack(pop)
109
110#endif // AIFF_H
std::array< uint8_t, 4 > AIFF_ID
AIFF fourcc ID.
Definition: aiff.h:43
uint32_t m_ckSize
Size of this chunk - 8.
Definition: aiff.h:63
AIFF_ID m_ckID
Chunk ID.
Definition: aiff.h:62
AIFF_ID m_ckID
Chunk ID, always "COMM".
Definition: aiff.h:73
uint8_t m_sampleSize
Number of bits in each sample point.
Definition: aiff.h:77
uint32_t m_ckSize
Size of this chunk - 8.
Definition: aiff.h:74
uint8_t m_numChannels
Number of audio channels for the sound.
Definition: aiff.h:75
uint32_t m_numSampleFrames
Number of sample frames in the sound data chunk.
Definition: aiff.h:76
uint32_t m_ckSize
Total file size - 8.
Definition: aiff.h:52
AIFF_ID m_ckID
Chunk ID, always "FORM".
Definition: aiff.h:51
AIFF_ID formType
Definition: aiff.h:53
uint32_t m_blockSize
Contains the size in bytes of the blocks that sound data is aligned to.
Definition: aiff.h:90
AIFF_ID m_ckID
Chunk ID, always "SSND".
Definition: aiff.h:87
uint32_t m_offset
Determines where the first sample frame in the soundData starts.
Definition: aiff.h:89
uint32_t m_ckSize
Total size of sound data chunk - 8.
Definition: aiff.h:88
uint32_t m_ckSize
Size of this chunk - 8.
Definition: aiff.h:104
AIFF_ID m_ckID
Chunk ID, one of "NAME", "AUTH", "(c) ", "ANNO".
Definition: aiff.h:103