1 /*
2 * IRCAM demuxer
3 * Copyright (c) 2012 Paul B Mahol
4 *
5 * This file is part of FFmpeg.
6 *
7 * FFmpeg is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * FFmpeg is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with FFmpeg; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 */
21
27
29 {
30 if ((p->
buf[0] == 0x64 && p->
buf[1] == 0xA3 && p->
buf[3] == 0x00 &&
31 p->
buf[2] >= 1 && p->
buf[2] <= 4) ||
32 (p->
buf[3] == 0x64 && p->
buf[2] == 0xA3 && p->
buf[0] == 0x00 &&
33 p->
buf[1] >= 1 && p->
buf[1] <= 3) &&
36 return 0;
37 }
38
43 { 0x64A30100, 0 },
44 { 0x64A30200, 1 },
45 { 0x64A30300, 0 },
46 { 0x64A30400, 1 },
47 { 0x0001A364, 1 },
48 { 0x0002A364, 0 },
49 { 0x0003A364, 1 },
50 };
51
53 {
58
60 for (i = 0; i < 7; i++) {
61 if (magic ==
table[i].magic) {
63 break;
64 }
65 }
66
67 if (le == 1) {
72 } else if (le == 0) {
77 } else {
79 }
80
81 if (!channels || !sample_rate)
83
85 if (!st)
87
91
96 }
97
102
103 return 0;
104 }
105
113 .extensions = "sf,ircam",
115 };