X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=wma_afh.c;h=63e49677b0f1b85c13c17160a7b249531c1fbcd4;hp=7394bf91768276b92884e1548f61ed791946540d;hb=b3c68fd8519a426d6b6285dcb5a865670285e99a;hpb=869fa1d76e7f88470120552792ca71068b49a747 diff --git a/wma_afh.c b/wma_afh.c index 7394bf91..63e49677 100644 --- a/wma_afh.c +++ b/wma_afh.c @@ -1,8 +1,4 @@ -/* - * Copyright (C) 2009 Andre Noll - * - * Licensed under the GPL v2. For licencing details see COPYING. - */ +/* Copyright (C) 2009 Andre Noll , see file COPYING. */ /** \file wma_afh.c The audio format handler for WMA files. */ @@ -365,8 +361,7 @@ static int make_cdo(struct taginfo *tags, const struct asf_object *cdo, struct asf_object *result) { const char *cr, *rating; /* orig data */ - uint16_t orig_title_bytes, orig_artist_bytes, orig_cr_bytes, - orig_comment_bytes, orig_rating_bytes; + uint16_t orig_cr_bytes, orig_rating_bytes; /* pointers to new UTF-16 tags */ char *artist = NULL, *title = NULL, *comment = NULL; /* number of bytes in UTF-16 for the new tags */ @@ -378,17 +373,21 @@ static int make_cdo(struct taginfo *tags, const struct asf_object *cdo, ret = convert_utf8_to_utf16(tags->artist, &artist); if (ret < 0) return ret; + assert(artist); artist_bytes = ret; ret = convert_utf8_to_utf16(tags->title, &title); if (ret < 0) goto out; + assert(title); title_bytes = ret; ret = convert_utf8_to_utf16(tags->comment, &comment); if (ret < 0) goto out; + assert(comment); comment_bytes = ret; if (cdo) { + uint16_t orig_title_bytes, orig_artist_bytes, orig_comment_bytes; /* * Sizes of the five fields (stored as 16-bit numbers) are * located after the header (16 bytes) and the cdo size (8 @@ -402,10 +401,7 @@ static int make_cdo(struct taginfo *tags, const struct asf_object *cdo, cr = cdo->ptr + 34 + orig_title_bytes + orig_artist_bytes; rating = cr + orig_cr_bytes + orig_comment_bytes; } else { - orig_title_bytes = 2; - orig_artist_bytes = 2; orig_cr_bytes = 2; - orig_comment_bytes = 2; orig_rating_bytes = 2; cr = null; rating = null; @@ -461,10 +457,12 @@ static int make_ecdo(struct taginfo *tags, struct asf_object *result) ret = convert_utf8_to_utf16(tags->album, &album); if (ret < 0) return ret; + assert(album); album_bytes = ret; ret = convert_utf8_to_utf16(tags->year, &year); if (ret < 0) goto out; + assert(year); year_bytes = ret; result->size = 16 + 8 + 2; /* GUID, size, count */ /* name_length + name + null + data type + val length + val */ @@ -648,13 +646,13 @@ out: static const char * const wma_suffixes[] = {"wma", NULL}; /** - * The init function of the wma audio format handler. + * The audio format handler for Windows Media Audio. * - * \param afh Pointer to the struct to initialize. + * Only WMA version 2 is supported. This audio format handler does not depend + * on any third party libraries and is therefore always compiled in. */ -void wma_afh_init(struct audio_format_handler *afh) -{ - afh->get_file_info = wma_get_file_info; - afh->suffixes = wma_suffixes; - afh->rewrite_tags = wma_rewrite_tags; -} +const struct audio_format_handler wma_afh = { + .get_file_info = wma_get_file_info, + .suffixes = wma_suffixes, + .rewrite_tags = wma_rewrite_tags, +};