annotate libgsm.c @ 7855:9a135b6a1dc7 libavcodec

Correct order of parsing for pulse scalefactor band and offset to match the specification. Patch by Alex Converse (alex converse gmail com)
author superdump
date Sat, 13 Sep 2008 18:47:43 +0000
parents 85ab7655ad4d
children 4070139042c7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
1 /*
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
2 * Interface to libgsm for gsm encoding/decoding
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
3 * Copyright (c) 2005 Alban Bedel <albeu@free.fr>
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
4 * Copyright (c) 2006, 2007 Michel Bardiaux <mbardiaux@mediaxim.be>
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
5 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3036
diff changeset
6 * This file is part of FFmpeg.
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3036
diff changeset
7 *
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3036
diff changeset
8 * FFmpeg is free software; you can redistribute it and/or
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
9 * modify it under the terms of the GNU Lesser General Public
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
10 * License as published by the Free Software Foundation; either
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3036
diff changeset
11 * version 2.1 of the License, or (at your option) any later version.
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
12 *
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3036
diff changeset
13 * FFmpeg is distributed in the hope that it will be useful,
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
16 * Lesser General Public License for more details.
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
17 *
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
18 * You should have received a copy of the GNU Lesser General Public
3947
c8c591fe26f8 Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 3036
diff changeset
19 * License along with FFmpeg; if not, write to the Free Software
3036
0b546eab515d Update licensing information: The FSF changed postal address.
diego
parents: 2967
diff changeset
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
21 */
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2729
diff changeset
22
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
23 /**
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
24 * @file libgsm.c
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
25 * Interface to libgsm for gsm encoding/decoding
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
26 */
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
27
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
28 // The idiosyncrasies of GSM-in-WAV are explained at http://kbs.cs.tu-berlin.de/~jutta/toast.html
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
29
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
30 #include "avcodec.h"
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
31 #include <gsm.h>
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
32
5408
20bea6a9950c cosmetics: misc typo fixes
diego
parents: 5102
diff changeset
33 // gsm.h misses some essential constants
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
34 #define GSM_BLOCK_SIZE 33
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
35 #define GSM_MS_BLOCK_SIZE 65
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
36 #define GSM_FRAME_SIZE 160
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
37
6517
48759bfbd073 Apply 'cold' attribute to init/uninit functions in libavcodec
zuxy
parents: 5408
diff changeset
38 static av_cold int libgsm_init(AVCodecContext *avctx) {
6672
79984fdb1203 Allow bitrates zero and 13200 (needed for decoding mov and aiff)
mbardiaux
parents: 6517
diff changeset
39 if (avctx->channels > 1) {
79984fdb1203 Allow bitrates zero and 13200 (needed for decoding mov and aiff)
mbardiaux
parents: 6517
diff changeset
40 av_log(avctx, AV_LOG_ERROR, "Mono required for GSM, got %d channels\n",
79984fdb1203 Allow bitrates zero and 13200 (needed for decoding mov and aiff)
mbardiaux
parents: 6517
diff changeset
41 avctx->channels);
79984fdb1203 Allow bitrates zero and 13200 (needed for decoding mov and aiff)
mbardiaux
parents: 6517
diff changeset
42 return -1;
79984fdb1203 Allow bitrates zero and 13200 (needed for decoding mov and aiff)
mbardiaux
parents: 6517
diff changeset
43 }
6720
2c540dc9ca2c Fix decoding of:
michael
parents: 6717
diff changeset
44
2c540dc9ca2c Fix decoding of:
michael
parents: 6717
diff changeset
45 if(avctx->codec->decode){
2c540dc9ca2c Fix decoding of:
michael
parents: 6717
diff changeset
46 if(!avctx->channels)
2c540dc9ca2c Fix decoding of:
michael
parents: 6717
diff changeset
47 avctx->channels= 1;
2c540dc9ca2c Fix decoding of:
michael
parents: 6717
diff changeset
48
2c540dc9ca2c Fix decoding of:
michael
parents: 6717
diff changeset
49 if(!avctx->sample_rate)
2c540dc9ca2c Fix decoding of:
michael
parents: 6717
diff changeset
50 avctx->sample_rate= 8000;
7451
85ab7655ad4d Modify all codecs to report their supported input and output sample format(s).
pross
parents: 7040
diff changeset
51
85ab7655ad4d Modify all codecs to report their supported input and output sample format(s).
pross
parents: 7040
diff changeset
52 avctx->sample_fmt = SAMPLE_FMT_S16;
6720
2c540dc9ca2c Fix decoding of:
michael
parents: 6717
diff changeset
53 }else{
6721
michael
parents: 6720
diff changeset
54 if (avctx->sample_rate != 8000) {
michael
parents: 6720
diff changeset
55 av_log(avctx, AV_LOG_ERROR, "Sample rate 8000Hz required for GSM, got %dHz\n",
michael
parents: 6720
diff changeset
56 avctx->sample_rate);
michael
parents: 6720
diff changeset
57 if(avctx->strict_std_compliance > FF_COMPLIANCE_INOFFICIAL)
michael
parents: 6720
diff changeset
58 return -1;
michael
parents: 6720
diff changeset
59 }
michael
parents: 6720
diff changeset
60 if (avctx->bit_rate != 13000 /* Official */ &&
michael
parents: 6720
diff changeset
61 avctx->bit_rate != 13200 /* Very common */ &&
michael
parents: 6720
diff changeset
62 avctx->bit_rate != 0 /* Unknown; a.o. mov does not set bitrate when decoding */ ) {
michael
parents: 6720
diff changeset
63 av_log(avctx, AV_LOG_ERROR, "Bitrate 13000bps required for GSM, got %dbps\n",
michael
parents: 6720
diff changeset
64 avctx->bit_rate);
michael
parents: 6720
diff changeset
65 if(avctx->strict_std_compliance > FF_COMPLIANCE_INOFFICIAL)
michael
parents: 6720
diff changeset
66 return -1;
michael
parents: 6720
diff changeset
67 }
6720
2c540dc9ca2c Fix decoding of:
michael
parents: 6717
diff changeset
68 }
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
69
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
70 avctx->priv_data = gsm_create();
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
71
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
72 switch(avctx->codec_id) {
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
73 case CODEC_ID_GSM:
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
74 avctx->frame_size = GSM_FRAME_SIZE;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
75 avctx->block_align = GSM_BLOCK_SIZE;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
76 break;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
77 case CODEC_ID_GSM_MS: {
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
78 int one = 1;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
79 gsm_option(avctx->priv_data, GSM_OPT_WAV49, &one);
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
80 avctx->frame_size = 2*GSM_FRAME_SIZE;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
81 avctx->block_align = GSM_MS_BLOCK_SIZE;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
82 }
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
83 }
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2729
diff changeset
84
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
85 avctx->coded_frame= avcodec_alloc_frame();
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
86 avctx->coded_frame->key_frame= 1;
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2729
diff changeset
87
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
88 return 0;
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
89 }
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
90
6517
48759bfbd073 Apply 'cold' attribute to init/uninit functions in libavcodec
zuxy
parents: 5408
diff changeset
91 static av_cold int libgsm_close(AVCodecContext *avctx) {
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
92 gsm_destroy(avctx->priv_data);
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
93 avctx->priv_data = NULL;
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
94 return 0;
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
95 }
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
96
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
97 static int libgsm_encode_frame(AVCodecContext *avctx,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
98 unsigned char *frame, int buf_size, void *data) {
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
99 // we need a full block
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
100 if(buf_size < avctx->block_align) return 0;
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
101
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
102 switch(avctx->codec_id) {
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
103 case CODEC_ID_GSM:
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
104 gsm_encode(avctx->priv_data,data,frame);
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
105 break;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
106 case CODEC_ID_GSM_MS:
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
107 gsm_encode(avctx->priv_data,data,frame);
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
108 gsm_encode(avctx->priv_data,((short*)data)+GSM_FRAME_SIZE,frame+32);
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
109 }
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
110 return avctx->block_align;
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
111 }
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
112
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
113
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
114 AVCodec libgsm_encoder = {
5102
4323e587708d Give names of external library decoders/encoders a lib prefix
diego
parents: 4551
diff changeset
115 "libgsm",
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
116 CODEC_TYPE_AUDIO,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
117 CODEC_ID_GSM,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
118 0,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
119 libgsm_init,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
120 libgsm_encode_frame,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
121 libgsm_close,
7451
85ab7655ad4d Modify all codecs to report their supported input and output sample format(s).
pross
parents: 7040
diff changeset
122 .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
7040
e943e1409077 Make AVCodec long_names definition conditional depending on CONFIG_SMALL.
stefano
parents: 6721
diff changeset
123 .long_name = NULL_IF_CONFIG_SMALL("libgsm GSM"),
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
124 };
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
125
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
126 AVCodec libgsm_ms_encoder = {
5102
4323e587708d Give names of external library decoders/encoders a lib prefix
diego
parents: 4551
diff changeset
127 "libgsm_ms",
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
128 CODEC_TYPE_AUDIO,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
129 CODEC_ID_GSM_MS,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
130 0,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
131 libgsm_init,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
132 libgsm_encode_frame,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
133 libgsm_close,
7451
85ab7655ad4d Modify all codecs to report their supported input and output sample format(s).
pross
parents: 7040
diff changeset
134 .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
7040
e943e1409077 Make AVCodec long_names definition conditional depending on CONFIG_SMALL.
stefano
parents: 6721
diff changeset
135 .long_name = NULL_IF_CONFIG_SMALL("libgsm GSM Microsoft variant"),
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
136 };
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
137
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
138 static int libgsm_decode_frame(AVCodecContext *avctx,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
139 void *data, int *data_size,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
140 uint8_t *buf, int buf_size) {
6673
679b9ef6f5f3 Make sure some value is always returned via data_size
mbardiaux
parents: 6672
diff changeset
141 *data_size = 0; /* In case of error */
679b9ef6f5f3 Make sure some value is always returned via data_size
mbardiaux
parents: 6672
diff changeset
142 if(buf_size < avctx->block_align) return -1;
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
143 switch(avctx->codec_id) {
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
144 case CODEC_ID_GSM:
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
145 if(gsm_decode(avctx->priv_data,buf,data)) return -1;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
146 *data_size = GSM_FRAME_SIZE*sizeof(int16_t);
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
147 break;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
148 case CODEC_ID_GSM_MS:
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
149 if(gsm_decode(avctx->priv_data,buf,data) ||
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
150 gsm_decode(avctx->priv_data,buf+33,((int16_t*)data)+GSM_FRAME_SIZE)) return -1;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
151 *data_size = GSM_FRAME_SIZE*sizeof(int16_t)*2;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
152 }
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
153 return avctx->block_align;
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
154 }
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
155
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
156 AVCodec libgsm_decoder = {
5102
4323e587708d Give names of external library decoders/encoders a lib prefix
diego
parents: 4551
diff changeset
157 "libgsm",
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
158 CODEC_TYPE_AUDIO,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
159 CODEC_ID_GSM,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
160 0,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
161 libgsm_init,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
162 NULL,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
163 libgsm_close,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
164 libgsm_decode_frame,
7040
e943e1409077 Make AVCodec long_names definition conditional depending on CONFIG_SMALL.
stefano
parents: 6721
diff changeset
165 .long_name = NULL_IF_CONFIG_SMALL("libgsm GSM"),
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
166 };
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
167
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
168 AVCodec libgsm_ms_decoder = {
5102
4323e587708d Give names of external library decoders/encoders a lib prefix
diego
parents: 4551
diff changeset
169 "libgsm_ms",
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
170 CODEC_TYPE_AUDIO,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
171 CODEC_ID_GSM_MS,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
172 0,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
173 libgsm_init,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
174 NULL,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
175 libgsm_close,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
176 libgsm_decode_frame,
7040
e943e1409077 Make AVCodec long_names definition conditional depending on CONFIG_SMALL.
stefano
parents: 6721
diff changeset
177 .long_name = NULL_IF_CONFIG_SMALL("libgsm GSM Microsoft variant"),
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
178 };