blob: 201a75b96fac965acea3e8c266901a4df6241178 [file] [log] [blame]
Tristan Matthews0a329cc2013-07-17 13:20:14 -04001/* $Id$ */
2/*
3 * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
4 * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20#include <pjmedia/wave.h>
21
22/*
23 * Change the endianness of WAVE header fields.
24 */
25static void wave_hdr_swap_bytes( pjmedia_wave_hdr *hdr )
26{
27#if defined(PJ_IS_BIG_ENDIAN) && PJ_IS_BIG_ENDIAN!=0
28 hdr->riff_hdr.riff = pj_swap32(hdr->riff_hdr.riff);
29 hdr->riff_hdr.file_len = pj_swap32(hdr->riff_hdr.file_len);
30 hdr->riff_hdr.wave = pj_swap32(hdr->riff_hdr.wave);
31
32 hdr->fmt_hdr.fmt = pj_swap32(hdr->fmt_hdr.fmt);
33 hdr->fmt_hdr.len = pj_swap32(hdr->fmt_hdr.len);
34 hdr->fmt_hdr.fmt_tag = pj_swap16(hdr->fmt_hdr.fmt_tag);
35 hdr->fmt_hdr.nchan = pj_swap16(hdr->fmt_hdr.nchan);
36 hdr->fmt_hdr.sample_rate = pj_swap32(hdr->fmt_hdr.sample_rate);
37 hdr->fmt_hdr.bytes_per_sec = pj_swap32(hdr->fmt_hdr.bytes_per_sec);
38 hdr->fmt_hdr.block_align = pj_swap16(hdr->fmt_hdr.block_align);
39 hdr->fmt_hdr.bits_per_sample = pj_swap16(hdr->fmt_hdr.bits_per_sample);
40
41 hdr->data_hdr.data = pj_swap32(hdr->data_hdr.data);
42 hdr->data_hdr.len = pj_swap32(hdr->data_hdr.len);
43#else
44 PJ_UNUSED_ARG(hdr);
45#endif
46}
47
48
49PJ_DEF(void) pjmedia_wave_hdr_file_to_host( pjmedia_wave_hdr *hdr )
50{
51 wave_hdr_swap_bytes(hdr);
52}
53
54PJ_DEF(void) pjmedia_wave_hdr_host_to_file( pjmedia_wave_hdr *hdr )
55{
56 wave_hdr_swap_bytes(hdr);
57}
58