return -1;
if (flags & APE_TAG_FLAG_IS_BINARY) {
uint8_t filename[1024];
- enum CodecID id;
+ enum AVCodecID id;
AVStream *st = avformat_new_stream(s, NULL);
if (!st)
return AVERROR(ENOMEM);
av_dict_set(&st->metadata, key, filename, 0);
- if ((id = ff_guess_image2_codec(filename)) != CODEC_ID_NONE) {
+ if ((id = ff_guess_image2_codec(filename)) != AV_CODEC_ID_NONE) {
AVPacket pkt;
int ret;
return 0;
}
- tag_start = file_size - tag_bytes - APE_TAG_FOOTER_BYTES;
- if (tag_start < 0) {
+ if (tag_bytes > file_size - APE_TAG_FOOTER_BYTES) {
av_log(s, AV_LOG_ERROR, "Invalid tag size %u.\n", tag_bytes);
return 0;
}
+ tag_start = file_size - tag_bytes - APE_TAG_FOOTER_BYTES;
fields = avio_rl32(pb); /* number of fields */
if (fields > 65536) {