Mercurial > mplayer.hg
comparison libmpcodecs/ae.c @ 15234:e84a6ae9d51e
audio encoding reworked
author | nicodvb |
---|---|
date | Fri, 22 Apr 2005 06:59:59 +0000 |
parents | |
children | 2cc48c37a7eb |
comparison
equal
deleted
inserted
replaced
15233:e18a07d6badb | 15234:e84a6ae9d51e |
---|---|
1 #include <stdio.h> | |
2 #include <string.h> | |
3 #include <stdlib.h> | |
4 #include <inttypes.h> | |
5 #include <math.h> | |
6 #include "aviheader.h" | |
7 #include "ms_hdr.h" | |
8 #include "muxer.h" | |
9 #include "ae.h" | |
10 #include "../config.h" | |
11 | |
12 #ifdef HAVE_TOOLAME | |
13 #include "ae_toolame.h" | |
14 #endif | |
15 | |
16 #ifdef HAVE_MP3LAME | |
17 #include "ae_lame.h" | |
18 #endif | |
19 | |
20 #ifdef USE_LIBAVCODEC | |
21 #include "ae_lavc.h" | |
22 #endif | |
23 | |
24 audio_encoder_t *new_audio_encoder(muxer_stream_t *stream, audio_encoding_params_t *params) | |
25 { | |
26 int ris; | |
27 if(! params) | |
28 return NULL; | |
29 | |
30 audio_encoder_t *encoder = (audio_encoder_t *) calloc(1, sizeof(audio_encoder_t)); | |
31 memcpy(&encoder->params, params, sizeof(audio_encoding_params_t)); | |
32 encoder->stream = stream; | |
33 | |
34 switch(stream->codec) | |
35 { | |
36 case ACODEC_PCM: | |
37 ris = mpae_init_pcm(encoder); | |
38 break; | |
39 #ifdef HAVE_TOOLAME | |
40 case ACODEC_TOOLAME: | |
41 ris = mpae_init_toolame(encoder); | |
42 break; | |
43 #endif | |
44 #ifdef USE_LIBAVCODEC | |
45 case ACODEC_LAVC: | |
46 ris = mpae_init_lavc(encoder); | |
47 break; | |
48 #endif | |
49 #ifdef HAVE_MP3LAME | |
50 case ACODEC_VBRMP3: | |
51 ris = mpae_init_lame(encoder); | |
52 break; | |
53 #endif | |
54 } | |
55 | |
56 if(! ris) | |
57 { | |
58 free(encoder); | |
59 return NULL; | |
60 } | |
61 encoder->bind(encoder, stream); | |
62 encoder->decode_buffer = (int*)malloc(encoder->decode_buffer_size); | |
63 if(! encoder->decode_buffer) | |
64 { | |
65 free(encoder); | |
66 return NULL; | |
67 } | |
68 | |
69 encoder->codec = stream->codec; | |
70 return encoder; | |
71 } | |
72 | |
73 |