Lines Matching refs:avctx
34 static av_cold int s302m_encode_init(AVCodecContext *avctx)
36 S302MEncContext *s = avctx->priv_data;
38 if (avctx->channels & 1 || avctx->channels > 8) {
39 av_log(avctx, AV_LOG_ERROR,
41 avctx->channels);
45 switch (avctx->sample_fmt) {
47 avctx->bits_per_raw_sample = 16;
50 if (avctx->bits_per_raw_sample > 20) {
51 if (avctx->bits_per_raw_sample > 24)
52 av_log(avctx, AV_LOG_WARNING, "encoding as 24 bits-per-sample\n");
53 avctx->bits_per_raw_sample = 24;
54 } else if (!avctx->bits_per_raw_sample) {
55 avctx->bits_per_raw_sample = 24;
56 } else if (avctx->bits_per_raw_sample <= 20) {
57 avctx->bits_per_raw_sample = 20;
61 avctx->frame_size = 0;
62 avctx->bit_rate = 48000 * avctx->channels *
63 (avctx->bits_per_raw_sample + 4);
69 static int s302m_encode2_frame(AVCodecContext *avctx, AVPacket *avpkt,
72 S302MEncContext *s = avctx->priv_data;
75 avctx->channels *
76 (avctx->bits_per_raw_sample + 4)) / 8;
81 if ((ret = ff_alloc_packet2(avctx, avpkt, buf_size)) < 0)
87 put_bits(&pb, 2, (avctx->channels - 2) >> 1); // number of channels
89 put_bits(&pb, 2, (avctx->bits_per_raw_sample - 16) / 4); // bits per samples (0 = 16bit, 1 = 20bit, 2 = 24bit)
94 if (avctx->bits_per_raw_sample == 24) {
100 for (channels = 0; channels < avctx->channels; channels += 2) {
116 } else if (avctx->bits_per_raw_sample == 20) {
122 for (channels = 0; channels < avctx->channels; channels += 2) {
137 } else if (avctx->bits_per_raw_sample == 16) {
143 for (channels = 0; channels < avctx->channels; channels += 2) {