* MLP decoder
* Copyright (c) 2007-2008 Ian Caulfield
*
- * This file is part of FFmpeg.
+ * This file is part of Libav.
*
- * FFmpeg is free software; you can redistribute it and/or
+ * Libav is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
- * FFmpeg is distributed in the hope that it will be useful,
+ * Libav is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with FFmpeg; if not, write to the Free Software
+ * License along with Libav; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
static const char* sample_message =
"Please file a bug report following the instructions at "
- "http://ffmpeg.org/bugreports.html and include "
+ "http://libav.org/bugreports.html and include "
"a sample of this file.";
typedef struct SubStream {
//! For each channel output by the matrix, the output channel to map it to
uint8_t ch_assign[MAX_CHANNELS];
+ //! Channel coding parameters for channels in the substream
ChannelParams channel_params[MAX_CHANNELS];
//! The left shift applied to random noise in 0x31ea substreams.
m->avctx->bits_per_raw_sample = mh.group1_bits;
if (mh.group1_bits > 16)
- m->avctx->sample_fmt = SAMPLE_FMT_S32;
+ m->avctx->sample_fmt = AV_SAMPLE_FMT_S32;
else
- m->avctx->sample_fmt = SAMPLE_FMT_S16;
+ m->avctx->sample_fmt = AV_SAMPLE_FMT_S16;
m->params_valid = 1;
for (substr = 0; substr < MAX_SUBSTREAMS; substr++)
static int output_data(MLPDecodeContext *m, unsigned int substr,
uint8_t *data, unsigned int *data_size)
{
- if (m->avctx->sample_fmt == SAMPLE_FMT_S32)
+ if (m->avctx->sample_fmt == AV_SAMPLE_FMT_S32)
return output_data_internal(m, substr, data, data_size, 1);
else
return output_data_internal(m, substr, data, data_size, 0);
/** Read an access unit from the stream.
- * Returns < 0 on error, 0 if not enough data is present in the input stream
- * otherwise returns the number of bytes consumed. */
+ * @return negative on error, 0 if not enough data is present in the input stream,
+ * otherwise the number of bytes consumed. */
static int read_access_unit(AVCodecContext *avctx, void* data, int *data_size,
AVPacket *avpkt)
return -1;
}
-AVCodec mlp_decoder = {
- "mlp",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_MLP,
- sizeof(MLPDecodeContext),
- mlp_decode_init,
- NULL,
- NULL,
- read_access_unit,
+AVCodec ff_mlp_decoder = {
+ .name = "mlp",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_MLP,
+ .priv_data_size = sizeof(MLPDecodeContext),
+ .init = mlp_decode_init,
+ .decode = read_access_unit,
.long_name = NULL_IF_CONFIG_SMALL("MLP (Meridian Lossless Packing)"),
};
#if CONFIG_TRUEHD_DECODER
-AVCodec truehd_decoder = {
- "truehd",
- AVMEDIA_TYPE_AUDIO,
- CODEC_ID_TRUEHD,
- sizeof(MLPDecodeContext),
- mlp_decode_init,
- NULL,
- NULL,
- read_access_unit,
+AVCodec ff_truehd_decoder = {
+ .name = "truehd",
+ .type = AVMEDIA_TYPE_AUDIO,
+ .id = CODEC_ID_TRUEHD,
+ .priv_data_size = sizeof(MLPDecodeContext),
+ .init = mlp_decode_init,
+ .decode = read_access_unit,
.long_name = NULL_IF_CONFIG_SMALL("TrueHD"),
};
#endif /* CONFIG_TRUEHD_DECODER */