Alexandre Lision | 7c6f4a6 | 2013-09-05 13:27:01 -0400 | [diff] [blame] | 1 | /* |
| 2 | ** Copyright (C) 2008-2011 Erik de Castro Lopo <erikd@mega-nerd.com> |
| 3 | ** |
| 4 | ** This program is free software ; you can redistribute it and/or modify |
| 5 | ** it under the terms of the GNU Lesser General Public License as published by |
| 6 | ** the Free Software Foundation ; either version 2.1 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 Lesser General Public License for more details. |
| 13 | ** |
| 14 | ** You should have received a copy of the GNU Lesser General Public License |
| 15 | ** along with this program ; if not, write to the Free Software |
| 16 | ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
| 17 | */ |
| 18 | |
| 19 | #ifndef SF_SRC_OGG_H |
| 20 | |
| 21 | enum |
| 22 | { OGG_ANNODEX = 300, |
| 23 | OGG_ANXDATA, |
| 24 | OGG_FLAC, |
| 25 | OGG_FLAC0, |
| 26 | OGG_PCM, |
| 27 | OGG_SPEEX, |
| 28 | OGG_VORBIS, |
| 29 | } ; |
| 30 | |
| 31 | typedef struct |
| 32 | { /* Sync and verify incoming physical bitstream */ |
| 33 | ogg_sync_state osync ; |
| 34 | /* Take physical pages, weld into a logical stream of packets */ |
| 35 | ogg_stream_state ostream ; |
| 36 | /* One Ogg bitstream page. Vorbis packets are inside */ |
| 37 | ogg_page opage ; |
| 38 | /* One raw packet of data for decode */ |
| 39 | ogg_packet opacket ; |
| 40 | int eos ; |
| 41 | int codec ; |
| 42 | } OGG_PRIVATE ; |
| 43 | |
| 44 | |
| 45 | #define readint(buf, base) (((buf [base + 3] << 24) & 0xff000000) | \ |
| 46 | ((buf [base + 2] <<16) & 0xff0000) | \ |
| 47 | ((buf [base + 1] << 8) & 0xff00) | \ |
| 48 | (buf [base] & 0xff)) |
| 49 | |
| 50 | |
| 51 | |
| 52 | #endif /* SF_SRC_OGG_H */ |