/* * Copyright (C) 2003-2011 The Music Player Daemon Project * http://www.musicpd.org * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #include "config.h" #include "chunk.h" #include "audio_format.h" #include "tag.h" #include #include #include #include void music_chunk_init(struct music_chunk *chunk) { chunk->other = NULL; chunk->frame = NULL; chunk->tag = NULL; chunk->replay_gain_serial = 0; #ifndef NDEBUG chunk->audio_format.format = AV_SAMPLE_FMT_NONE; #endif } struct music_chunk *music_chunk_alloc(void) { struct music_chunk *ret = av_mallocz(sizeof(*ret)); if (!ret) return NULL; music_chunk_init(ret); return ret; } void music_chunk_free(struct music_chunk *chunk) { if (!chunk) return; if (chunk->tag != NULL) tag_free(chunk->tag); av_frame_free(&chunk->frame); av_freep(&chunk); } #ifndef NDEBUG bool music_chunk_check_format(const struct music_chunk *chunk, const struct audio_format *audio_format) { assert(chunk != NULL); assert(audio_format != NULL); assert(audio_format_valid(audio_format)); return !chunk->frame || audio_format_equals(&chunk->audio_format, audio_format); } #endif