annotate amr.c @ 1960:c0289552590f libavformat

Change the vhook code to send real timestamps to the filters instead of the current time of day, which is useless, and which the filters could just as easily query for themselves. patch by Bobby Bingham, uhmmmm gmail com
author diego
date Thu, 29 Mar 2007 05:24:35 +0000
parents 6f00a1374023
children 1a3c9056982a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 820
diff changeset
1 /*
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
2 * amr file format
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
3 * Copyright (c) 2001 ffmpeg project
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
4 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
5 * This file is part of FFmpeg.
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
6 *
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
7 * FFmpeg is free software; you can redistribute it and/or
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
8 * modify it under the terms of the GNU Lesser General Public
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
9 * License as published by the Free Software Foundation; either
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
10 * version 2.1 of the License, or (at your option) any later version.
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
11 *
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
12 * FFmpeg is distributed in the hope that it will be useful,
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
15 * Lesser General Public License for more details.
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
16 *
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
17 * You should have received a copy of the GNU Lesser General Public
1358
0899bfe4105c Change license headers to say 'FFmpeg' instead of 'this program/this library'
diego
parents: 1332
diff changeset
18 * License along with FFmpeg; if not, write to the Free Software
896
edbe5c3717f9 Update licensing information: The FSF changed postal address.
diego
parents: 885
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
20 */
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
21
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
22 /*
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
23 Write and read amr data according to RFC3267, http://www.ietf.org/rfc/rfc3267.txt?number=3267
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
24
258
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
25 Only mono files are supported.
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
26
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
27 */
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
28 #include "avformat.h"
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
29
1332
7474cc6383d4 fix some signedness warnings
mru
parents: 1242
diff changeset
30 static const char AMR_header [] = "#!AMR\n";
7474cc6383d4 fix some signedness warnings
mru
parents: 1242
diff changeset
31 static const char AMRWB_header [] = "#!AMR-WB\n";
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
32
906
dd0d3138fdbe Place proper #ifdef around muxer-specific code.
diego
parents: 896
diff changeset
33 #ifdef CONFIG_MUXERS
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
34 static int amr_write_header(AVFormatContext *s)
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
35 {
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
36 ByteIOContext *pb = &s->pb;
820
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 775
diff changeset
37 AVCodecContext *enc = s->streams[0]->codec;
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
38
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
39 s->priv_data = NULL;
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
40
258
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
41 if (enc->codec_id == CODEC_ID_AMR_NB)
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
42 {
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
43 put_tag(pb, AMR_header); /* magic number */
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
44 }
258
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
45 else if(enc->codec_id == CODEC_ID_AMR_WB)
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
46 {
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
47 put_tag(pb, AMRWB_header); /* magic number */
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
48 }
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
49 else
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
50 {
1365
54d50e11dc57 return cleanup
michael
parents: 1358
diff changeset
51 return -1;
258
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
52 }
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
53 put_flush_packet(pb);
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
54 return 0;
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
55 }
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
56
468
60f897e8dd2d pass AVPacket into av_write_frame()
michael
parents: 258
diff changeset
57 static int amr_write_packet(AVFormatContext *s, AVPacket *pkt)
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
58 {
468
60f897e8dd2d pass AVPacket into av_write_frame()
michael
parents: 258
diff changeset
59 put_buffer(&s->pb, pkt->data, pkt->size);
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
60 put_flush_packet(&s->pb);
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
61 return 0;
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
62 }
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
63
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
64 static int amr_write_trailer(AVFormatContext *s)
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
65 {
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
66 return 0;
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
67 }
906
dd0d3138fdbe Place proper #ifdef around muxer-specific code.
diego
parents: 896
diff changeset
68 #endif /* CONFIG_MUXERS */
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
69
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
70 static int amr_probe(AVProbeData *p)
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
71 {
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 820
diff changeset
72 //Only check for "#!AMR" which could be amr-wb, amr-nb.
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 820
diff changeset
73 //This will also trigger multichannel files: "#!AMR_MC1.0\n" and
258
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
74 //"#!AMR-WB_MC1.0\n" (not supported)
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
75
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
76 if (p->buf_size < 5)
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
77 return 0;
258
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
78 if(memcmp(p->buf,AMR_header,5)==0)
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
79 return AVPROBE_SCORE_MAX;
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
80 else
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
81 return 0;
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
82 }
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
83
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
84 /* amr input */
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
85 static int amr_read_header(AVFormatContext *s,
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
86 AVFormatParameters *ap)
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
87 {
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
88 ByteIOContext *pb = &s->pb;
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
89 AVStream *st;
258
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
90 uint8_t header[9];
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
91
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
92 get_buffer(pb, header, 6);
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
93
1369
bf2c4889a9bf more factoriztaion and a FIXME note
michael
parents: 1368
diff changeset
94 st = av_new_stream(s, 0);
bf2c4889a9bf more factoriztaion and a FIXME note
michael
parents: 1368
diff changeset
95 if (!st)
bf2c4889a9bf more factoriztaion and a FIXME note
michael
parents: 1368
diff changeset
96 {
bf2c4889a9bf more factoriztaion and a FIXME note
michael
parents: 1368
diff changeset
97 return AVERROR_NOMEM;
bf2c4889a9bf more factoriztaion and a FIXME note
michael
parents: 1368
diff changeset
98 }
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
99 if(memcmp(header,AMR_header,6)!=0)
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
100 {
258
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
101 get_buffer(pb, header+6, 3);
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
102 if(memcmp(header,AMRWB_header,9)!=0)
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
103 {
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
104 return -1;
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
105 }
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 820
diff changeset
106
820
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 775
diff changeset
107 st->codec->codec_tag = MKTAG('s', 'a', 'w', 'b');
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 775
diff changeset
108 st->codec->codec_id = CODEC_ID_AMR_WB;
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 775
diff changeset
109 st->codec->sample_rate = 16000;
258
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
110 }
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
111 else
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
112 {
820
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 775
diff changeset
113 st->codec->codec_tag = MKTAG('s', 'a', 'm', 'r');
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 775
diff changeset
114 st->codec->codec_id = CODEC_ID_AMR_NB;
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 775
diff changeset
115 st->codec->sample_rate = 8000;
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
116 }
1368
f9d59429f182 factorze another 2 lines
michael
parents: 1367
diff changeset
117 st->codec->channels = 1;
f9d59429f182 factorze another 2 lines
michael
parents: 1367
diff changeset
118 st->codec->codec_type = CODEC_TYPE_AUDIO;
1367
8e0ee2faf4d5 set duration and timebase (based on a patch by Simon Morlat simon.morlat linphone org)
michael
parents: 1366
diff changeset
119 av_set_pts_info(st, 64, 1, st->codec->sample_rate);
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
120
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
121 return 0;
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
122 }
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
123
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
124 static int amr_read_packet(AVFormatContext *s,
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
125 AVPacket *pkt)
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
126 {
820
feca73904e67 changing AVCodecContext codec -> *codec in AVStream so additions to AVCodecContext dont randomize AVStream and break binary compatibility
michael
parents: 775
diff changeset
127 AVCodecContext *enc = s->streams[0]->codec;
1366
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
128 int read, size, toc, mode;
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
129
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
130 if (url_feof(&s->pb))
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
131 {
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
132 return AVERROR_IO;
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
133 }
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
134
1369
bf2c4889a9bf more factoriztaion and a FIXME note
michael
parents: 1368
diff changeset
135 //FIXME this is wrong, this should rather be in a AVParset
1366
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
136 toc=get_byte(&s->pb);
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
137 mode = (toc >> 3) & 0x0F;
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
138
258
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
139 if (enc->codec_id == CODEC_ID_AMR_NB)
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
140 {
1242
996ce2a68147 Fix some "'static' is not at beginning of declaration" warnings.
diego
parents: 1169
diff changeset
141 static const uint8_t packed_size[16] = {12, 13, 15, 17, 19, 20, 26, 31, 5, 0, 0, 0, 0, 0, 0, 0};
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 820
diff changeset
142
1366
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
143 size=packed_size[mode]+1;
258
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
144 }
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
145 else if(enc->codec_id == CODEC_ID_AMR_WB)
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
146 {
258
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
147 static uint8_t packed_size[16] = {18, 24, 33, 37, 41, 47, 51, 59, 61, 6, 6, 0, 0, 0, 1, 1};
885
da1d5db0ce5c COSMETICS: Remove all trailing whitespace.
diego
parents: 820
diff changeset
148
1366
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
149 size=packed_size[mode];
258
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
150 }
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
151 else
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
152 {
1365
54d50e11dc57 return cleanup
michael
parents: 1358
diff changeset
153 assert(0);
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
154 }
1366
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
155
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
156 if ( (size==0) || av_new_packet(pkt, size))
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
157 {
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
158 return AVERROR_IO;
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
159 }
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
160
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
161 pkt->stream_index = 0;
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
162 pkt->pos= url_ftell(&s->pb);
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
163 pkt->data[0]=toc;
1367
8e0ee2faf4d5 set duration and timebase (based on a patch by Simon Morlat simon.morlat linphone org)
michael
parents: 1366
diff changeset
164 pkt->duration= enc->codec_id == CODEC_ID_AMR_NB ? 160 : 320;
1366
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
165 read = get_buffer(&s->pb, pkt->data+1, size-1);
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
166
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
167 if (read != size-1)
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
168 {
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
169 av_free_packet(pkt);
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
170 return AVERROR_IO;
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
171 }
31ab2ac4e173 factorize (untested)
michael
parents: 1365
diff changeset
172
1365
54d50e11dc57 return cleanup
michael
parents: 1358
diff changeset
173 return 0;
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
174 }
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
175
1169
d18cc9a1fd02 allow individual selection of muxers and demuxers
mru
parents: 1167
diff changeset
176 #ifdef CONFIG_AMR_DEMUXER
d18cc9a1fd02 allow individual selection of muxers and demuxers
mru
parents: 1167
diff changeset
177 AVInputFormat amr_demuxer = {
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
178 "amr",
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
179 "3gpp amr file format",
258
59c2e84817a1 AMR-WB support by (Johannes Carlsson <joca at rixmail dot se>)
michaelni
parents: 154
diff changeset
180 0, /*priv_data_size*/
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
181 amr_probe,
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
182 amr_read_header,
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
183 amr_read_packet,
1370
49421e5b5335 remove dummy amr_read_close()
michael
parents: 1369
diff changeset
184 NULL,
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
185 };
1169
d18cc9a1fd02 allow individual selection of muxers and demuxers
mru
parents: 1167
diff changeset
186 #endif
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
187
1169
d18cc9a1fd02 allow individual selection of muxers and demuxers
mru
parents: 1167
diff changeset
188 #ifdef CONFIG_AMR_MUXER
d18cc9a1fd02 allow individual selection of muxers and demuxers
mru
parents: 1167
diff changeset
189 AVOutputFormat amr_muxer = {
148
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
190 "amr",
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
191 "3gpp amr file format",
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
192 "audio/amr",
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
193 "amr",
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
194 0,
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
195 CODEC_ID_AMR_NB,
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
196 CODEC_ID_NONE,
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
197 amr_write_header,
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
198 amr_write_packet,
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
199 amr_write_trailer,
31d7c9a8678c * amr format - by Johannes Carlsson
kabi
parents:
diff changeset
200 };
906
dd0d3138fdbe Place proper #ifdef around muxer-specific code.
diego
parents: 896
diff changeset
201 #endif