|
|
@ -61,6 +61,13 @@ static av_cold int mpc7_decode_init(AVCodecContext * avctx) |
|
|
|
static VLC_TYPE hdr_table[1 << MPC7_HDR_BITS][2]; |
|
|
|
static VLC_TYPE hdr_table[1 << MPC7_HDR_BITS][2]; |
|
|
|
static VLC_TYPE quant_tables[7224][2]; |
|
|
|
static VLC_TYPE quant_tables[7224][2]; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* Musepack SV7 is always stereo */ |
|
|
|
|
|
|
|
if (avctx->channels != 2) { |
|
|
|
|
|
|
|
av_log_ask_for_sample(avctx, "Unsupported number of channels: %d\n", |
|
|
|
|
|
|
|
avctx->channels); |
|
|
|
|
|
|
|
return AVERROR_PATCHWELCOME; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if(avctx->extradata_size < 16){ |
|
|
|
if(avctx->extradata_size < 16){ |
|
|
|
av_log(avctx, AV_LOG_ERROR, "Too small extradata size (%i)!\n", avctx->extradata_size); |
|
|
|
av_log(avctx, AV_LOG_ERROR, "Too small extradata size (%i)!\n", avctx->extradata_size); |
|
|
|
return -1; |
|
|
|
return -1; |
|
|
@ -88,7 +95,7 @@ static av_cold int mpc7_decode_init(AVCodecContext * avctx) |
|
|
|
c->frames_to_skip = 0; |
|
|
|
c->frames_to_skip = 0; |
|
|
|
|
|
|
|
|
|
|
|
avctx->sample_fmt = AV_SAMPLE_FMT_S16; |
|
|
|
avctx->sample_fmt = AV_SAMPLE_FMT_S16; |
|
|
|
avctx->channel_layout = (avctx->channels==2) ? AV_CH_LAYOUT_STEREO : AV_CH_LAYOUT_MONO; |
|
|
|
avctx->channel_layout = AV_CH_LAYOUT_STEREO; |
|
|
|
|
|
|
|
|
|
|
|
if(vlc_initialized) return 0; |
|
|
|
if(vlc_initialized) return 0; |
|
|
|
av_log(avctx, AV_LOG_DEBUG, "Initing VLC\n"); |
|
|
|
av_log(avctx, AV_LOG_DEBUG, "Initing VLC\n"); |
|
|
|