comparison libmpcodecs/ae_lavc.c @ 36334:c1033e9288b1

Extract audio encoding code into a separate helper function.
author reimar
date Sun, 25 Aug 2013 11:30:43 +0000
parents 7bf03a973142
children f77a74ebb95e
comparison
equal deleted inserted replaced
36333:dc90c43a2674 36334:c1033e9288b1
116 } 116 }
117 117
118 static int encode_lavc(audio_encoder_t *encoder, uint8_t *dest, void *src, int size, int max_size) 118 static int encode_lavc(audio_encoder_t *encoder, uint8_t *dest, void *src, int size, int max_size)
119 { 119 {
120 int n; 120 int n;
121 if ((encoder->params.channels == 6 || encoder->params.channels == 5) && 121 n = lavc_encode_audio(lavc_actx, src, size, dest, max_size);
122 (!strcmp(lavc_acodec->name,"ac3") || 122 compressed_frame_size = n < 0 ? 0 : n;
123 !strcmp(lavc_acodec->name,"libfaac"))) { 123 return compressed_frame_size;
124 int isac3 = !strcmp(lavc_acodec->name,"ac3");
125 int bps = av_get_bytes_per_sample(lavc_actx->sample_fmt);
126 reorder_channel_nch(src, AF_CHANNEL_LAYOUT_MPLAYER_DEFAULT,
127 isac3 ? AF_CHANNEL_LAYOUT_LAVC_DEFAULT
128 : AF_CHANNEL_LAYOUT_AAC_DEFAULT,
129 encoder->params.channels,
130 size / bps, bps);
131 }
132 n = avcodec_encode_audio(lavc_actx, dest, size, src);
133 compressed_frame_size = n;
134 return n;
135 } 124 }
136 125
137 126
138 static int close_lavc(audio_encoder_t *encoder) 127 static int close_lavc(audio_encoder_t *encoder)
139 { 128 {