} MicroDVDContext;
-static int microdvd_probe(AVProbeData *p)
+static int microdvd_probe(const AVProbeData *p)
{
unsigned char c;
const uint8_t *ptr = p->buf;
if (!len)
break;
line[strcspn(line, "\r\n")] = 0;
+ if (!*p)
+ continue;
if (i++ < 3) {
int frame;
double fps;
continue;
}
if (!st->codecpar->extradata && sscanf(line, "{DEFAULT}{}%c", &c) == 1) {
- st->codecpar->extradata = av_strdup(line + 11);
- if (!st->codecpar->extradata)
- return AVERROR(ENOMEM);
- st->codecpar->extradata_size = strlen(st->codecpar->extradata) + 1;
+ int ret, size = strlen(line + 11);
+ ret = ff_alloc_extradata(st->codecpar, size);
+ if (ret < 0)
+ return ret;
+ memcpy(st->codecpar->extradata, line + 11, size);
continue;
}
}