diff options
Diffstat (limited to 'libavformat/xwma.c')
-rw-r--r-- | libavformat/xwma.c | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/libavformat/xwma.c b/libavformat/xwma.c index b24cde857b..e6e72d9b52 100644 --- a/libavformat/xwma.c +++ b/libavformat/xwma.c @@ -75,7 +75,7 @@ static int xwma_read_header(AVFormatContext *s) if (!st) return AVERROR(ENOMEM); - ret = ff_get_wav_header(s, pb, st->codec, size); + ret = ff_get_wav_header(s, pb, st->codecpar, size); if (ret < 0) return ret; st->need_parsing = AVSTREAM_PARSE_NONE; @@ -85,9 +85,9 @@ static int xwma_read_header(AVFormatContext *s) * extradata for that. Thus, ask the user for feedback, but try to go on * anyway. */ - if (st->codec->codec_id != AV_CODEC_ID_WMAV2) { + if (st->codecpar->codec_id != AV_CODEC_ID_WMAV2) { avpriv_request_sample(s, "Unexpected codec (tag 0x04%x; id %d)", - st->codec->codec_tag, st->codec->codec_id); + st->codecpar->codec_tag, st->codecpar->codec_id); } else { /* In all xWMA files I have seen, there is no extradata. But the WMA * codecs require extradata, so we provide our own fake extradata. @@ -96,37 +96,37 @@ static int xwma_read_header(AVFormatContext *s) * there was, then try to use it, after asking the user to provide a * sample of this unusual file. */ - if (st->codec->extradata_size != 0) { + if (st->codecpar->extradata_size != 0) { /* Surprise, surprise: We *did* get some extradata. No idea * if it will work, but just go on and try it, after asking * the user for a sample. */ avpriv_request_sample(s, "Unexpected extradata (%d bytes)", - st->codec->extradata_size); + st->codecpar->extradata_size); } else { - st->codec->extradata_size = 6; - st->codec->extradata = av_mallocz(6 + AV_INPUT_BUFFER_PADDING_SIZE); - if (!st->codec->extradata) + st->codecpar->extradata_size = 6; + st->codecpar->extradata = av_mallocz(6 + AV_INPUT_BUFFER_PADDING_SIZE); + if (!st->codecpar->extradata) return AVERROR(ENOMEM); /* setup extradata with our experimentally obtained value */ - st->codec->extradata[4] = 31; + st->codecpar->extradata[4] = 31; } } - if (!st->codec->channels) { + if (!st->codecpar->channels) { av_log(s, AV_LOG_WARNING, "Invalid channel count: %d\n", - st->codec->channels); + st->codecpar->channels); return AVERROR_INVALIDDATA; } - if (!st->codec->bits_per_coded_sample) { + if (!st->codecpar->bits_per_coded_sample) { av_log(s, AV_LOG_WARNING, "Invalid bits_per_coded_sample: %d\n", - st->codec->bits_per_coded_sample); + st->codecpar->bits_per_coded_sample); return AVERROR_INVALIDDATA; } /* set the sample rate */ - avpriv_set_pts_info(st, 64, 1, st->codec->sample_rate); + avpriv_set_pts_info(st, 64, 1, st->codecpar->sample_rate); /* parse the remaining RIFF chunks */ for (;;) { @@ -146,7 +146,7 @@ static int xwma_read_header(AVFormatContext *s) * number of bytes accumulated after the corresponding xWMA packet * is decoded in order." * - * Each packet has size equal to st->codec->block_align, which in + * Each packet has size equal to st->codecpar->block_align, which in * all cases I saw so far was always 2230. Thus, we can use the * dpds data to compute a seeking index. */ @@ -200,7 +200,7 @@ static int xwma_read_header(AVFormatContext *s) if (dpds_table && dpds_table_size) { int64_t cur_pos; const uint32_t bytes_per_sample - = (st->codec->channels * st->codec->bits_per_coded_sample) >> 3; + = (st->codecpar->channels * st->codecpar->bits_per_coded_sample) >> 3; /* Estimate the duration from the total number of output bytes. */ const uint64_t total_decoded_bytes = dpds_table[dpds_table_size - 1]; @@ -208,7 +208,7 @@ static int xwma_read_header(AVFormatContext *s) if (!bytes_per_sample) { av_log(s, AV_LOG_ERROR, "Invalid bits_per_coded_sample %d for %d channels\n", - st->codec->bits_per_coded_sample, st->codec->channels); + st->codecpar->bits_per_coded_sample, st->codecpar->channels); ret = AVERROR_INVALIDDATA; goto fail; } @@ -231,18 +231,18 @@ static int xwma_read_header(AVFormatContext *s) * an offset / timestamp pair. */ av_add_index_entry(st, - cur_pos + (i+1) * st->codec->block_align, /* pos */ - dpds_table[i] / bytes_per_sample, /* timestamp */ - st->codec->block_align, /* size */ - 0, /* duration */ + cur_pos + (i+1) * st->codecpar->block_align, /* pos */ + dpds_table[i] / bytes_per_sample, /* timestamp */ + st->codecpar->block_align, /* size */ + 0, /* duration */ AVINDEX_KEYFRAME); } - } else if (st->codec->bit_rate) { + } else if (st->codecpar->bit_rate) { /* No dpds chunk was present (or only an empty one), so estimate * the total duration using the average bits per sample and the * total data length. */ - st->duration = (size<<3) * st->codec->sample_rate / st->codec->bit_rate; + st->duration = (size<<3) * st->codecpar->sample_rate / st->codecpar->bit_rate; } fail: @@ -266,7 +266,7 @@ static int xwma_read_packet(AVFormatContext *s, AVPacket *pkt) } /* read a single block; the default block size is 2230. */ - size = (st->codec->block_align > 1) ? st->codec->block_align : 2230; + size = (st->codecpar->block_align > 1) ? st->codecpar->block_align : 2230; size = FFMIN(size, left); ret = av_get_packet(s->pb, pkt, size); |