default:
return -1;
}
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
return AVERROR_NOMEM;
}
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
AC3_encode_frame,
AC3_encode_close,
NULL,
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("ATSC A/52 / AC-3"),
};
default:
break;
}
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
adpcm_encode_frame, \
adpcm_encode_close, \
NULL, \
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE}, \
.long_name = NULL_IF_CONFIG_SMALL(long_name_), \
};
#else
* adx2wav & wav2adx http://www.geocities.co.jp/Playtown/2004/
*/
+static av_cold void adx_decode_init(AVCodecContext *avctx)
+{
+ avctx->sample_fmt = SAMPLE_FMT_S16;
+ return 0;
+}
+
/* 18 bytes <-> 32 samples */
static void adx_decode(short *out,const unsigned char *in,PREV *prev)
CODEC_TYPE_AUDIO,
CODEC_ID_ADPCM_ADX,
sizeof(ADXContext),
- NULL,
+ adx_decode_init,
NULL,
NULL,
adx_decode_frame,
adx_encode_frame,
adx_encode_close,
NULL,
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("SEGA CRI ADX"),
};
alac->numchannels = alac->avctx->channels;
alac->bytespersample = (avctx->bits_per_sample / 8) * alac->numchannels;
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
}
dsputil_init(&s->dsp, avctx);
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
return AVERROR(ENOMEM);
}
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
return -1;
}
+ avctx->sample_fmt = SAMPLE_FMT_S16;
+
#ifdef COOKDEBUG
dump_cook_context(q);
#endif
avctx->channels = avctx->request_channels;
}
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
break;
}
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
cin->avctx = avctx;
cin->initial_decode_frame = 1;
cin->delta = 0;
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
}
}
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
flac_encode_close,
NULL,
.capabilities = CODEC_CAP_SMALL_LAST_FRAME,
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("FLAC (Free Lossless Audio Codec)"),
};
return AVERROR(ENOMEM);
avctx->coded_frame->key_frame = 1;
+ if (avctx->codec->decode)
+ avctx->sample_fmt = SAMPLE_FMT_S16;
+
return 0;
}
g726_encode_frame,
g726_close,
NULL,
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("G.726 ADPCM"),
};
#endif //CONFIG_ENCODERS
ff_fft_init(&q->fft, 7, 1);
dsputil_init(&q->dsp, avctx);
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
avctx->channels = avctx->request_channels;
}
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
}
avctx->frame_size = 160 * is_amr_wb;
+ avctx->sample_fmt = SAMPLE_FMT_S16;
}
#ifdef CONFIG_LIBAMR_NB_FIXED
amr_nb_encode_frame,
amr_nb_encode_close,
NULL,
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("libamr-nb Adaptive Multi-Rate (AMR) Narrow-Band"),
};
amr_wb_encode_frame,
amr_wb_encode_close,
NULL,
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("libamr-wb Adaptive Multi-Rate (AMR) Wide-Band"),
};
Faac_encode_init,
Faac_encode_frame,
Faac_encode_close,
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("libfaac AAC (Advanced Audio Codec)"),
};
if(!s->init && avctx->channels > 0)
channel_setup(avctx);
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
if(!avctx->sample_rate)
avctx->sample_rate= 8000;
+
+ avctx->sample_fmt = SAMPLE_FMT_S16;
}else{
if (avctx->sample_rate != 8000) {
av_log(avctx, AV_LOG_ERROR, "Sample rate 8000Hz required for GSM, got %dHz\n",
libgsm_init,
libgsm_encode_frame,
libgsm_close,
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("libgsm GSM"),
};
libgsm_init,
libgsm_encode_frame,
libgsm_close,
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("libgsm GSM Microsoft variant"),
};
MP3lame_encode_frame,
MP3lame_encode_close,
.capabilities= CODEC_CAP_DELAY,
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
.long_name= NULL_IF_CONFIG_SMALL("libmp3lame MP3 (MPEG audio layer 3)"),
};
oggvorbis_encode_frame,
oggvorbis_encode_close,
.capabilities= CODEC_CAP_DELAY,
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
.long_name= NULL_IF_CONFIG_SMALL("libvorbis Vorbis"),
} ;
{
if (avctx->channels > 2)
return -1;
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
m->avctx = avctx;
for (substr = 0; substr < MAX_SUBSTREAMS; substr++)
m->substream[substr].lossless_check_data = 0xffffffff;
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
}
}
vlc_initialized = 1;
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
&mpc8_q8_codes[i], 1, 1, INIT_VLC_USE_STATIC);
}
vlc_initialized = 1;
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
MPA_encode_frame,
MPA_encode_close,
NULL,
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("MP2 (MPEG audio layer 2)"),
};
if (!sine_window[0])
ff_sine_window_init(sine_window, 128);
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
}
#ifdef CONFIG_ENCODERS
-#define PCM_ENCODER(id,name,long_name_) \
+#define PCM_ENCODER(id,sample_fmt_,name,long_name_) \
AVCodec name ## _encoder = { \
#name, \
CODEC_TYPE_AUDIO, \
pcm_encode_frame, \
pcm_encode_close, \
NULL, \
+ .sample_fmts = (enum SampleFormat[]){sample_fmt_,SAMPLE_FMT_NONE}, \
.long_name = NULL_IF_CONFIG_SMALL(long_name_), \
};
#else
-#define PCM_ENCODER(id,name,long_name_)
+#define PCM_ENCODER(id,sample_fmt_,name,long_name_)
#endif
#ifdef CONFIG_DECODERS
#define PCM_DECODER(id,name,long_name_)
#endif
-#define PCM_CODEC(id, name, long_name_) \
- PCM_ENCODER(id,name,long_name_) PCM_DECODER(id,name,long_name_)
+#define PCM_CODEC(id, sample_fmt_, name, long_name_) \
+ PCM_ENCODER(id,sample_fmt_,name,long_name_) PCM_DECODER(id,name,long_name_)
/* Note: Do not forget to add new entries to the Makefile as well. */
-PCM_CODEC (CODEC_ID_PCM_ALAW, pcm_alaw, "A-law PCM");
-PCM_CODEC (CODEC_ID_PCM_DVD, pcm_dvd, "signed 16|20|24-bit big-endian PCM");
-PCM_CODEC (CODEC_ID_PCM_F32BE, pcm_f32be, "32-bit floating point big-endian PCM");
-PCM_CODEC (CODEC_ID_PCM_MULAW, pcm_mulaw, "mu-law PCM");
-PCM_CODEC (CODEC_ID_PCM_S8, pcm_s8, "signed 8-bit PCM");
-PCM_CODEC (CODEC_ID_PCM_S16BE, pcm_s16be, "signed 16-bit big-endian PCM");
-PCM_CODEC (CODEC_ID_PCM_S16LE, pcm_s16le, "signed 16-bit little-endian PCM");
+PCM_CODEC (CODEC_ID_PCM_ALAW, SAMPLE_FMT_S16, pcm_alaw, "A-law PCM");
+PCM_CODEC (CODEC_ID_PCM_DVD, SAMPLE_FMT_S16, pcm_dvd, "signed 16|20|24-bit big-endian PCM");
+PCM_CODEC (CODEC_ID_PCM_F32BE, SAMPLE_FMT_FLT, pcm_f32be, "32-bit floating point big-endian PCM");
+PCM_CODEC (CODEC_ID_PCM_MULAW, SAMPLE_FMT_S16, pcm_mulaw, "mu-law PCM");
+PCM_CODEC (CODEC_ID_PCM_S8, SAMPLE_FMT_S16, pcm_s8, "signed 8-bit PCM");
+PCM_CODEC (CODEC_ID_PCM_S16BE, SAMPLE_FMT_S16, pcm_s16be, "signed 16-bit big-endian PCM");
+PCM_CODEC (CODEC_ID_PCM_S16LE, SAMPLE_FMT_S16, pcm_s16le, "signed 16-bit little-endian PCM");
PCM_DECODER(CODEC_ID_PCM_S16LE_PLANAR, pcm_s16le_planar, "16-bit little-endian planar PCM");
-PCM_CODEC (CODEC_ID_PCM_S24BE, pcm_s24be, "signed 24-bit big-endian PCM");
-PCM_CODEC (CODEC_ID_PCM_S24DAUD, pcm_s24daud, "D-Cinema audio signed 24-bit PCM");
-PCM_CODEC (CODEC_ID_PCM_S24LE, pcm_s24le, "signed 24-bit little-endian PCM");
-PCM_CODEC (CODEC_ID_PCM_S32BE, pcm_s32be, "signed 32-bit big-endian PCM");
-PCM_CODEC (CODEC_ID_PCM_S32LE, pcm_s32le, "signed 32-bit little-endian PCM");
-PCM_CODEC (CODEC_ID_PCM_U8, pcm_u8, "unsigned 8-bit PCM");
-PCM_CODEC (CODEC_ID_PCM_U16BE, pcm_u16be, "unsigned 16-bit big-endian PCM");
-PCM_CODEC (CODEC_ID_PCM_U16LE, pcm_u16le, "unsigned 16-bit little-endian PCM");
-PCM_CODEC (CODEC_ID_PCM_U24BE, pcm_u24be, "unsigned 24-bit big-endian PCM");
-PCM_CODEC (CODEC_ID_PCM_U24LE, pcm_u24le, "unsigned 24-bit little-endian PCM");
-PCM_CODEC (CODEC_ID_PCM_U32BE, pcm_u32be, "unsigned 32-bit big-endian PCM");
-PCM_CODEC (CODEC_ID_PCM_U32LE, pcm_u32le, "unsigned 32-bit little-endian PCM");
-PCM_CODEC (CODEC_ID_PCM_ZORK, pcm_zork, "Zork PCM");
+PCM_CODEC (CODEC_ID_PCM_S24BE, SAMPLE_FMT_S16, pcm_s24be, "signed 24-bit big-endian PCM");
+PCM_CODEC (CODEC_ID_PCM_S24DAUD, SAMPLE_FMT_S16, pcm_s24daud, "D-Cinema audio signed 24-bit PCM");
+PCM_CODEC (CODEC_ID_PCM_S24LE, SAMPLE_FMT_S16, pcm_s24le, "signed 24-bit little-endian PCM");
+PCM_CODEC (CODEC_ID_PCM_S32BE, SAMPLE_FMT_S16, pcm_s32be, "signed 32-bit big-endian PCM");
+PCM_CODEC (CODEC_ID_PCM_S32LE, SAMPLE_FMT_S16, pcm_s32le, "signed 32-bit little-endian PCM");
+PCM_CODEC (CODEC_ID_PCM_U8, SAMPLE_FMT_S16, pcm_u8, "unsigned 8-bit PCM");
+PCM_CODEC (CODEC_ID_PCM_U16BE, SAMPLE_FMT_S16, pcm_u16be, "unsigned 16-bit big-endian PCM");
+PCM_CODEC (CODEC_ID_PCM_U16LE, SAMPLE_FMT_S16, pcm_u16le, "unsigned 16-bit little-endian PCM");
+PCM_CODEC (CODEC_ID_PCM_U24BE, SAMPLE_FMT_S16, pcm_u24be, "unsigned 24-bit big-endian PCM");
+PCM_CODEC (CODEC_ID_PCM_U24LE, SAMPLE_FMT_S16, pcm_u24le, "unsigned 24-bit little-endian PCM");
+PCM_CODEC (CODEC_ID_PCM_U32BE, SAMPLE_FMT_S16, pcm_u32be, "unsigned 32-bit big-endian PCM");
+PCM_CODEC (CODEC_ID_PCM_U32LE, SAMPLE_FMT_S16, pcm_u32le, "unsigned 32-bit little-endian PCM");
+PCM_CODEC (CODEC_ID_PCM_ZORK, SAMPLE_FMT_S16, pcm_zork, "Zork PCM");
qdm2_init(s);
+ avctx->sample_fmt = SAMPLE_FMT_S16;
+
// dump_context(s);
return 0;
}
ractx->lpc_coef[0] = ractx->lpc_tables[0];
ractx->lpc_coef[1] = ractx->lpc_tables[1];
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
float gain_block[10]; ///< Gain data of four blocks (spec: GSTATE)
} RA288Context;
+static av_cold int ra288_decode_init(AVCodecContext *avctx)
+{
+ avctx->sample_fmt = SAMPLE_FMT_S16;
+ return 0;
+}
+
static inline float scalar_product_float(const float * v1, const float * v2,
int size)
{
CODEC_TYPE_AUDIO,
CODEC_ID_RA_288,
sizeof(RA288Context),
- NULL,
+ ra288_decode_init,
NULL,
NULL,
ra288_decode_frame,
roq_dpcm_encode_frame,
roq_dpcm_encode_close,
NULL,
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("id RoQ DPCM"),
};
{
ShortenContext *s = avctx->priv_data;
s->avctx = avctx;
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
static av_cold int smka_decode_init(AVCodecContext *avctx)
{
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
}
s->int_samples = av_mallocz(4* s->frame_size);
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
{
// TSContext *c = avctx->priv_data;
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
s->channels = avctx->channels;
s->bits = avctx->bits_per_sample;
s->block_align = avctx->block_align;
+ avctx->sample_fmt = SAMPLE_FMT_S16;
av_log(s->avctx, AV_LOG_DEBUG, "%d channels, %d bits/sample, block align = %d, sample rate = %d\n",
s->channels, s->bits, s->block_align, avctx->sample_rate);
avccontext->channels = vc->audio_channels;
avccontext->sample_rate = vc->audio_samplerate;
avccontext->frame_size = FFMIN(vc->blocksize[0], vc->blocksize[1])>>2;
+ avccontext->sample_fmt = SAMPLE_FMT_S16;
return 0 ;
}
vorbis_encode_frame,
vorbis_encode_close,
.capabilities= CODEC_CAP_DELAY,
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("Vorbis"),
};
s->avctx = avctx;
s->stereo = (avctx->channels == 2);
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
wma_lsp_to_curve_init(s, s->frame_len);
}
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
encode_init,
encode_superframe,
ff_wma_end,
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 1"),
};
encode_init,
encode_superframe,
ff_wma_end,
+ .sample_fmts = (enum SampleFormat[]){SAMPLE_FMT_S16,SAMPLE_FMT_NONE},
.long_name = NULL_IF_CONFIG_SMALL("Windows Media Audio 2"),
};
{
// WSSNDContext *c = avctx->priv_data;
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}