* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
+
+/**
+ * @file mpegaudio.c
+ * The simplest mpeg audio layer 2 encoder.
+ */
+
#include "avcodec.h"
+#include "bitstream.h"
#include "mpegaudio.h"
/* currently, cannot change these constants (need to modify
quantization stage) */
-#define FRAC_BITS 15
-#define WFRAC_BITS 14
#define MUL(a,b) (((int64_t)(a) * (int64_t)(b)) >> FRAC_BITS)
#define FIX(a) ((int)((a) * (1 << FRAC_BITS)))
break;
}
}
- if (i == 3)
+ if (i == 3){
+ av_log(avctx, AV_LOG_ERROR, "Sampling rate %d is not allowed in mp2\n", freq);
return -1;
+ }
s->freq_index = i;
/* encoding bitrate & frequency */
if (mpa_bitrate_tab[s->lsf][1][i] == bitrate)
break;
}
- if (i == 15)
+ if (i == 15){
+ av_log(avctx, AV_LOG_ERROR, "bitrate %d is not allowed in mp2\n", bitrate);
return -1;
+ }
s->bitrate_index = i;
/* compute total header size & pad bit */
s->alloc_table = alloc_tables[table];
#ifdef DEBUG
- printf("%d kb/s, %d Hz, frame_size=%d bits, table=%d, padincr=%x\n",
+ av_log(avctx, AV_LOG_DEBUG, "%d kb/s, %d Hz, frame_size=%d bits, table=%d, padincr=%x\n",
bitrate, freq, s->frame_size, table, s->frame_frac_incr);
#endif
sf[1] = sf[2] = sf[0];
break;
default:
- av_abort();
+ assert(0); //cant happen
+ code = 0; /* kill warning */
}
#if 0
}
compute_bit_allocation(s, smr, bit_alloc, &padding);
- init_put_bits(&s->pb, frame, MPA_MAX_CODED_FRAME_SIZE, NULL, NULL);
+ init_put_bits(&s->pb, frame, MPA_MAX_CODED_FRAME_SIZE);
encode_frame(s, bit_alloc, padding);
return 0;
}
+#ifdef CONFIG_MP2_ENCODER
AVCodec mp2_encoder = {
"mp2",
CODEC_TYPE_AUDIO,
MPA_encode_close,
NULL,
};
+#endif // CONFIG_MP2_ENCODER
#undef FIX