annotate libgsm.c @ 6920:d02af7474bff libavcodec

Prevent 128*1<<trellis from becoming 0 and creating 0 sized arrays. fixes CID84 RUN2 CID85 RUN2 CID86 RUN2 CID87 RUN2 CID88 RUN2 CID89 RUN2 CID90 RUN2 CID91 RUN2 CID92 RUN2 CID93 RUN2 CID94 RUN2 CID95 RUN2 CID96 RUN2 CID97 RUN2 CID98 RUN2 CID99 RUN2 CID100 RUN2 CID101 RUN2 CID102 RUN2 CID103 RUN2 CID104 RUN2 CID105 RUN2 CID106 RUN2
author michael
date Wed, 28 May 2008 11:59:41 +0000
parents 1c3bcb60bed4
children e943e1409077
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;
2c540dc9ca2c Fix decoding of:
michael
parents: 6717
diff changeset
51 }else{
6721
michael
parents: 6720
diff changeset
52 if (avctx->sample_rate != 8000) {
michael
parents: 6720
diff changeset
53 av_log(avctx, AV_LOG_ERROR, "Sample rate 8000Hz required for GSM, got %dHz\n",
michael
parents: 6720
diff changeset
54 avctx->sample_rate);
michael
parents: 6720
diff changeset
55 if(avctx->strict_std_compliance > FF_COMPLIANCE_INOFFICIAL)
michael
parents: 6720
diff changeset
56 return -1;
michael
parents: 6720
diff changeset
57 }
michael
parents: 6720
diff changeset
58 if (avctx->bit_rate != 13000 /* Official */ &&
michael
parents: 6720
diff changeset
59 avctx->bit_rate != 13200 /* Very common */ &&
michael
parents: 6720
diff changeset
60 avctx->bit_rate != 0 /* Unknown; a.o. mov does not set bitrate when decoding */ ) {
michael
parents: 6720
diff changeset
61 av_log(avctx, AV_LOG_ERROR, "Bitrate 13000bps required for GSM, got %dbps\n",
michael
parents: 6720
diff changeset
62 avctx->bit_rate);
michael
parents: 6720
diff changeset
63 if(avctx->strict_std_compliance > FF_COMPLIANCE_INOFFICIAL)
michael
parents: 6720
diff changeset
64 return -1;
michael
parents: 6720
diff changeset
65 }
6720
2c540dc9ca2c Fix decoding of:
michael
parents: 6717
diff changeset
66 }
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
67
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
68 avctx->priv_data = gsm_create();
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 switch(avctx->codec_id) {
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
71 case CODEC_ID_GSM:
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
72 avctx->frame_size = GSM_FRAME_SIZE;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
73 avctx->block_align = GSM_BLOCK_SIZE;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
74 break;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
75 case CODEC_ID_GSM_MS: {
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
76 int one = 1;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
77 gsm_option(avctx->priv_data, GSM_OPT_WAV49, &one);
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
78 avctx->frame_size = 2*GSM_FRAME_SIZE;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
79 avctx->block_align = GSM_MS_BLOCK_SIZE;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
80 }
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
81 }
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2729
diff changeset
82
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
83 avctx->coded_frame= avcodec_alloc_frame();
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
84 avctx->coded_frame->key_frame= 1;
2967
ef2149182f1c COSMETICS: Remove all trailing whitespace.
diego
parents: 2729
diff changeset
85
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
86 return 0;
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
87 }
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
88
6517
48759bfbd073 Apply 'cold' attribute to init/uninit functions in libavcodec
zuxy
parents: 5408
diff changeset
89 static av_cold int libgsm_close(AVCodecContext *avctx) {
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
90 gsm_destroy(avctx->priv_data);
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
91 avctx->priv_data = NULL;
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
92 return 0;
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
93 }
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
94
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
95 static int libgsm_encode_frame(AVCodecContext *avctx,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
96 unsigned char *frame, int buf_size, void *data) {
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
97 // we need a full block
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
98 if(buf_size < avctx->block_align) return 0;
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
99
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
100 switch(avctx->codec_id) {
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
101 case CODEC_ID_GSM:
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
102 gsm_encode(avctx->priv_data,data,frame);
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
103 break;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
104 case CODEC_ID_GSM_MS:
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
105 gsm_encode(avctx->priv_data,data,frame);
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
106 gsm_encode(avctx->priv_data,((short*)data)+GSM_FRAME_SIZE,frame+32);
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
107 }
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
108 return avctx->block_align;
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
109 }
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
110
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 AVCodec libgsm_encoder = {
5102
4323e587708d Give names of external library decoders/encoders a lib prefix
diego
parents: 4551
diff changeset
113 "libgsm",
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
114 CODEC_TYPE_AUDIO,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
115 CODEC_ID_GSM,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
116 0,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
117 libgsm_init,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
118 libgsm_encode_frame,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
119 libgsm_close,
6717
5df0c730234d Add some long names to AVCodec declarations.
diego
parents: 6673
diff changeset
120 .long_name = "libgsm GSM",
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
121 };
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
122
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
123 AVCodec libgsm_ms_encoder = {
5102
4323e587708d Give names of external library decoders/encoders a lib prefix
diego
parents: 4551
diff changeset
124 "libgsm_ms",
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
125 CODEC_TYPE_AUDIO,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
126 CODEC_ID_GSM_MS,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
127 0,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
128 libgsm_init,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
129 libgsm_encode_frame,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
130 libgsm_close,
6717
5df0c730234d Add some long names to AVCodec declarations.
diego
parents: 6673
diff changeset
131 .long_name = "libgsm GSM Microsoft variant",
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
132 };
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
133
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
134 static int libgsm_decode_frame(AVCodecContext *avctx,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
135 void *data, int *data_size,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
136 uint8_t *buf, int buf_size) {
6673
679b9ef6f5f3 Make sure some value is always returned via data_size
mbardiaux
parents: 6672
diff changeset
137 *data_size = 0; /* In case of error */
679b9ef6f5f3 Make sure some value is always returned via data_size
mbardiaux
parents: 6672
diff changeset
138 if(buf_size < avctx->block_align) return -1;
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
139 switch(avctx->codec_id) {
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
140 case CODEC_ID_GSM:
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
141 if(gsm_decode(avctx->priv_data,buf,data)) return -1;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
142 *data_size = GSM_FRAME_SIZE*sizeof(int16_t);
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
143 break;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
144 case CODEC_ID_GSM_MS:
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
145 if(gsm_decode(avctx->priv_data,buf,data) ||
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
146 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
147 *data_size = GSM_FRAME_SIZE*sizeof(int16_t)*2;
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
148 }
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
149 return avctx->block_align;
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
150 }
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
151
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
152 AVCodec libgsm_decoder = {
5102
4323e587708d Give names of external library decoders/encoders a lib prefix
diego
parents: 4551
diff changeset
153 "libgsm",
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
154 CODEC_TYPE_AUDIO,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
155 CODEC_ID_GSM,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
156 0,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
157 libgsm_init,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
158 NULL,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
159 libgsm_close,
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
160 libgsm_decode_frame,
6717
5df0c730234d Add some long names to AVCodec declarations.
diego
parents: 6673
diff changeset
161 .long_name = "libgsm GSM",
2729
26bf6f4e9945 libgsm warper by (Alban Bedel: albeu, free fr)
michael
parents:
diff changeset
162 };
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
163
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
164 AVCodec libgsm_ms_decoder = {
5102
4323e587708d Give names of external library decoders/encoders a lib prefix
diego
parents: 4551
diff changeset
165 "libgsm_ms",
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
166 CODEC_TYPE_AUDIO,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
167 CODEC_ID_GSM_MS,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
168 0,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
169 libgsm_init,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
170 NULL,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
171 libgsm_close,
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
172 libgsm_decode_frame,
6717
5df0c730234d Add some long names to AVCodec declarations.
diego
parents: 6673
diff changeset
173 .long_name = "libgsm GSM Microsoft variant",
4551
c0bf618fbe7e Add support for MS-GSM codec
mbardiaux
parents: 3947
diff changeset
174 };