typedef struct ArgoBRPDemuxContext {
ArgoBRPFileHeader fhdr;
- ArgoBRPStreamHeader *streams;
+ ArgoBRPStreamHeader streams[BRP_MAX_STREAMS];
/* To know how much of a BASF to give. */
int64_t lastpts;
int hit_eof;
return AVPROBE_SCORE_EXTENSION + 1;
}
-static int argo_brp_read_close(AVFormatContext *s)
-{
- ArgoBRPDemuxContext *brp = s->priv_data;
-
- if (brp->streams != NULL)
- av_freep(&brp->streams);
-
- return 0;
-}
-
static int read_extradata(AVFormatContext *s, const ArgoBRPStreamHeader *hdr,
void *buf, size_t bufsz)
{
return AVERROR_PATCHWELCOME;
}
- if ((brp->streams = av_mallocz_array(brp->fhdr.num_streams, sizeof(ArgoBRPStreamHeader))) == NULL)
- return AVERROR(ENOMEM);
-
/* Build the stream info. */
brp->basf.index = -1;
for (uint32_t i = 0; i < brp->fhdr.num_streams; i++) {
return 0;
fail:
- /* TODO: Remove once AVFMT_HEADER_CLEANUP lands. */
- argo_brp_read_close(s);
return ret;
}
.read_probe = argo_brp_probe,
.read_header = argo_brp_read_header,
.read_packet = argo_brp_read_packet,
- .read_close = argo_brp_read_close
};