xref: /third_party/libsnd/src/ogg_vcomment.h (revision b815c7f3)
1/*
2** Copyright (C) 2008-2018 Erik de Castro Lopo <erikd@mega-nerd.com>
3** Copyright (C) 2018 Arthur Taylor <art@ified.ca>
4**
5** This program is free software ; you can redistribute it and/or modify
6** it under the terms of the GNU Lesser General Public License as published by
7** the Free Software Foundation ; either version 2.1 of the License, or
8** (at your option) any later version.
9**
10** This program is distributed in the hope that it will be useful,
11** but WITHOUT ANY WARRANTY ; without even the implied warranty of
12** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
13** GNU Lesser General Public License for more details.
14**
15** You should have received a copy of the GNU Lesser General Public License
16** along with this program ; if not, write to the Free Software
17** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18*/
19
20#ifndef SF_SRC_OGG_VCOMMENT_H
21#define SF_SRC_OGG_VCOMMENT_H
22
23/*
24** Voriscomment identifier. Some Ogg stream embedding schemes require it.
25*/
26typedef struct
27{	const char *ident ;
28	int length ;
29} vorbiscomment_ident ;
30
31/*
32** Read all vorbiscomment tags from *packet. Tags which match ones used
33** by libsndfile strings are loaded into *psf. Ogg streams which require an
34** identifier for the tags packet should pass it in *ident.
35*/
36int vorbiscomment_read_tags (SF_PRIVATE *psf, ogg_packet *packet, vorbiscomment_ident *ident) ;
37
38/*
39** Write metadata strings stored in *psf to *packet. The packet is optionally
40** prefixed with *ident. The always-present vendor field should be the library
41** used for encoding the audio data.
42*/
43int vorbiscomment_write_tags (SF_PRIVATE *psf, ogg_packet *packet, vorbiscomment_ident *ident, const char *vendor, int targetsize) ;
44
45#endif /* SF_SRC_OGG_VCOMMENT_H */
46