|
|
@ -88,7 +88,7 @@ static int mpc_read_header(AVFormatContext *s) |
|
|
|
|
|
|
|
|
|
|
|
st = avformat_new_stream(s, NULL); |
|
|
|
st = avformat_new_stream(s, NULL); |
|
|
|
if (!st) |
|
|
|
if (!st) |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
goto mem_error; |
|
|
|
st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; |
|
|
|
st->codecpar->codec_type = AVMEDIA_TYPE_AUDIO; |
|
|
|
st->codecpar->codec_id = AV_CODEC_ID_MUSEPACK7; |
|
|
|
st->codecpar->codec_id = AV_CODEC_ID_MUSEPACK7; |
|
|
|
st->codecpar->channels = 2; |
|
|
|
st->codecpar->channels = 2; |
|
|
@ -96,7 +96,7 @@ static int mpc_read_header(AVFormatContext *s) |
|
|
|
st->codecpar->bits_per_coded_sample = 16; |
|
|
|
st->codecpar->bits_per_coded_sample = 16; |
|
|
|
|
|
|
|
|
|
|
|
if (ff_get_extradata(s, st->codecpar, s->pb, 16) < 0) |
|
|
|
if (ff_get_extradata(s, st->codecpar, s->pb, 16) < 0) |
|
|
|
return AVERROR(ENOMEM); |
|
|
|
goto mem_error; |
|
|
|
st->codecpar->sample_rate = mpc_rate[st->codecpar->extradata[2] & 3]; |
|
|
|
st->codecpar->sample_rate = mpc_rate[st->codecpar->extradata[2] & 3]; |
|
|
|
avpriv_set_pts_info(st, 32, MPC_FRAMESIZE, st->codecpar->sample_rate); |
|
|
|
avpriv_set_pts_info(st, 32, MPC_FRAMESIZE, st->codecpar->sample_rate); |
|
|
|
/* scan for seekpoints */ |
|
|
|
/* scan for seekpoints */ |
|
|
@ -113,6 +113,9 @@ static int mpc_read_header(AVFormatContext *s) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
return 0; |
|
|
|
|
|
|
|
mem_error: |
|
|
|
|
|
|
|
av_freep(&c->frames); |
|
|
|
|
|
|
|
return AVERROR(ENOMEM); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
static int mpc_read_packet(AVFormatContext *s, AVPacket *pkt) |
|
|
|
static int mpc_read_packet(AVFormatContext *s, AVPacket *pkt) |
|
|
|