annotate libmpcodecs/ae.h @ 32282:606e4157cd4c

Split alloc and init of context so that parameters can be set in the context instead of requireing being passed through function parameters. This also makes sws work with AVOptions.
author michael
date Sun, 26 Sep 2010 19:33:57 +0000
parents bbb6ebec87a0
children 5a9d68a07ed1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
30421
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
1 /*
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
2 * This file is part of MPlayer.
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
3 *
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
4 * MPlayer is free software; you can redistribute it and/or modify
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
5 * it under the terms of the GNU General Public License as published by
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
7 * (at your option) any later version.
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
8 *
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
9 * MPlayer is distributed in the hope that it will be useful,
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
12 * GNU General Public License for more details.
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
13 *
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
14 * You should have received a copy of the GNU General Public License along
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
15 * with MPlayer; if not, write to the Free Software Foundation, Inc.,
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
17 */
bbb6ebec87a0 Add missing license headers to all files in the libmpcodecs directory.
diego
parents: 26147
diff changeset
18
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25869
diff changeset
19 #ifndef MPLAYER_AE_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25869
diff changeset
20 #define MPLAYER_AE_H
15234
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
21
26147
41652035483c Add necessary header #includes to fix 'make checkheaders'.
diego
parents: 26029
diff changeset
22 #include "libmpdemux/muxer.h"
41652035483c Add necessary header #includes to fix 'make checkheaders'.
diego
parents: 26029
diff changeset
23
15234
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
24 #define ACODEC_COPY 0
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
25 #define ACODEC_PCM 1
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
26 #define ACODEC_VBRMP3 2
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
27 #define ACODEC_NULL 3
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
28 #define ACODEC_LAVC 4
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
29 #define ACODEC_TOOLAME 5
15258
c2979462805a fixed wrong function pointers definitions
nicodvb
parents: 15234
diff changeset
30 #define ACODEC_FAAC 6
15359
af245d15f502 added twolame mp2 audio encoder
nicodvb
parents: 15258
diff changeset
31 #define ACODEC_TWOLAME 7
15234
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
32
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
33 #define AE_NEEDS_COMPRESSED_INPUT 1
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
34
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
35 typedef struct {
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
36 int channels;
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
37 int sample_rate;
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
38 int bitrate;
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
39 int samples_per_frame;
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
40 int audio_preload;
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
41 } audio_encoding_params_t;
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
42
15258
c2979462805a fixed wrong function pointers definitions
nicodvb
parents: 15234
diff changeset
43 typedef struct audio_encoder_s {
15234
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
44 int codec;
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
45 int flags;
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
46 muxer_stream_t *stream;
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
47 audio_encoding_params_t params;
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
48 int audio_preload; //in ms
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
49 int input_format;
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
50 int min_buffer_size, max_buffer_size; //for init_audio_filters
17122
c23ca41ad996 more warning fixes
ods15
parents: 15359
diff changeset
51 unsigned char *decode_buffer;
15234
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
52 int decode_buffer_size;
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
53 int decode_buffer_len;
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
54 void *priv;
15258
c2979462805a fixed wrong function pointers definitions
nicodvb
parents: 15234
diff changeset
55 int (*bind)(struct audio_encoder_s*, muxer_stream_t*);
c2979462805a fixed wrong function pointers definitions
nicodvb
parents: 15234
diff changeset
56 int (*get_frame_size)(struct audio_encoder_s*);
c2979462805a fixed wrong function pointers definitions
nicodvb
parents: 15234
diff changeset
57 int (*set_decoded_len)(struct audio_encoder_s *encoder, int len);
c2979462805a fixed wrong function pointers definitions
nicodvb
parents: 15234
diff changeset
58 int (*encode)(struct audio_encoder_s *encoder, uint8_t *dest, void *src, int nsamples, int max_size);
c2979462805a fixed wrong function pointers definitions
nicodvb
parents: 15234
diff changeset
59 void (*fixup)(struct audio_encoder_s *encoder);
c2979462805a fixed wrong function pointers definitions
nicodvb
parents: 15234
diff changeset
60 int (*close)(struct audio_encoder_s *encoder);
15234
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
61 } audio_encoder_t;
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
62
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
63 audio_encoder_t *new_audio_encoder(muxer_stream_t *stream, audio_encoding_params_t *params);
e84a6ae9d51e audio encoding reworked
nicodvb
parents:
diff changeset
64
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25869
diff changeset
65 #endif /* MPLAYER_AE_H */