X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=ogg_afh_common.h;h=7b9d1313af4816b79d1177c7898b94a70ee24775;hp=01f8d6c532fb93a37231286ed66da7cf09eb5530;hb=ce9e297eb91a932a11f81890c800d0380b5bc9c9;hpb=7584638594109184f329bead008f1dcdd9030767 diff --git a/ogg_afh_common.h b/ogg_afh_common.h index 01f8d6c5..7b9d1313 100644 --- a/ogg_afh_common.h +++ b/ogg_afh_common.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2011 Andre Noll + * Copyright (C) 2010 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -10,24 +10,30 @@ */ /** - * Callback structure provided by vorbis/speex audio format handlers. + * Callback structure provided by audio format handlers. * - * Both audio formats utilize the ogg container format. Meta info about - * the audio file is contained in the first three ogg packets. + * All audio formats which utilize the ogg container format define a callback + * function whose purpose is to extract the meta information about the audio + * file from the first few ogg packets of the bitstream. */ struct ogg_afh_callback_info { /** - * ogg_get_file_info() calls this function for each of the three - * header packets. If this callback returns a negative value, the - * audio file is considered invalid and the chunk table is not - * created. If it returns zero, the end of the header has been - * reached and no further ogg packets should be processed. - */ + * ogg_get_file_info() calls this function for the first three ogg + * packets, or until the callback returns a non-positive value. If it + * returns negative, the audio file was not recognized by the audio + * format handler. If it returns zero, the audio file is considered + * valid, and no further processing by the callback is needed. In this + * case the header chunk, i.e. chunk number zero, is defined as the + * concatenation of all packets that have been processed by the + * callback. + */ int (*packet_callback)(ogg_packet *packet, int packet_num, - struct afh_info *afhi, void *private_data); - /** Vorbis/speex specific data. */ + int serial, struct afh_info *afhi, void *private_data); + /** Data specific to the audio format handler. */ void *private_data; }; int ogg_get_file_info(char *map, size_t numbytes, struct afh_info *afhi, struct ogg_afh_callback_info *ci); +int ogg_rewrite_tags(const char *map, size_t mapsize, int fd, + char *meta_packet, size_t meta_sz);