static int parse_picture(AVFormatContext *s, uint8_t *buf, int buf_size)
{
const CodecMime *mime = ff_id3v2_mime_tags;
- enum CodecID id = CODEC_ID_NONE;
- uint8_t mimetype[64], *desc = NULL, *data = NULL;
+ enum AVCodecID id = AV_CODEC_ID_NONE;
+ AVBufferRef *data = NULL;
+ uint8_t mimetype[64], *desc = NULL;
AVIOContext *pb = NULL;
AVStream *st;
int type, width, height;
}
mimetype[len] = 0;
- while (mime->id != CODEC_ID_NONE) {
+ while (mime->id != AV_CODEC_ID_NONE) {
if (!strncmp(mime->str, mimetype, sizeof(mimetype))) {
id = mime->id;
break;
}
mime++;
}
- if (id == CODEC_ID_NONE) {
+ if (id == AV_CODEC_ID_NONE) {
av_log(s, AV_LOG_ERROR, "Unknown attached picture mimetype: %s.\n",
mimetype);
if (s->error_recognition & AV_EF_EXPLODE)
ret = AVERROR_INVALIDDATA;
goto fail;
}
- if (!(data = av_malloc(len))) {
+ if (!(data = av_buffer_alloc(len))) {
ret = AVERROR(ENOMEM);
goto fail;
}
- if (avio_read(pb, data, len) != len) {
+ if (avio_read(pb, data->data, len) != len) {
av_log(s, AV_LOG_ERROR, "Error reading attached picture data.\n");
if (s->error_recognition & AV_EF_EXPLODE)
ret = AVERROR(EIO);
}
av_init_packet(&st->attached_pic);
- st->attached_pic.data = data;
+ st->attached_pic.buf = data;
+ st->attached_pic.data = data->data;
st->attached_pic.size = len;
- st->attached_pic.destruct = av_destruct_packet;
st->attached_pic.stream_index = st->index;
st->attached_pic.flags |= AV_PKT_FLAG_KEY;
return 0;
fail:
+ av_buffer_unref(&data);
av_freep(&desc);
- av_freep(&data);
av_freep(&pb);
return ret;
if (!st)
return AVERROR(ENOMEM);
st->codec->codec_type = AVMEDIA_TYPE_AUDIO;
- st->codec->codec_id = CODEC_ID_FLAC;
+ st->codec->codec_id = AV_CODEC_ID_FLAC;
st->need_parsing = AVSTREAM_PARSE_FULL;
/* the parameters will be extracted from the compressed bitstream */
static int flac_probe(AVProbeData *p)
{
- uint8_t *bufptr = p->buf;
- uint8_t *end = p->buf + p->buf_size;
-
- if(bufptr > end-4 || memcmp(bufptr, "fLaC", 4)) return 0;
- else return AVPROBE_SCORE_MAX/2;
+ if (p->buf_size < 4 || memcmp(p->buf, "fLaC", 4))
+ return 0;
+ return AVPROBE_SCORE_EXTENSION;
}
AVInputFormat ff_flac_demuxer = {
.read_packet = ff_raw_read_partial_packet,
.flags = AVFMT_GENERIC_INDEX,
.extensions = "flac",
- .raw_codec_id = CODEC_ID_FLAC,
+ .raw_codec_id = AV_CODEC_ID_FLAC,
};