AVFormatContext *avformat_alloc_context(void)
{
AVFormatContext *ic;
+ AVFormatInternal *internal;
ic = av_malloc(sizeof(AVFormatContext));
if (!ic) return ic;
- avformat_get_context_defaults(ic);
- ic->internal = av_mallocz(sizeof(*ic->internal));
- if (!ic->internal) {
- avformat_free_context(ic);
+ internal = av_mallocz(sizeof(*internal));
+ if (!internal) {
+ av_free(ic);
return NULL;
}
+ avformat_get_context_defaults(ic);
+ ic->internal = internal;
ic->internal->offset = AV_NOPTS_VALUE;
ic->internal->raw_packet_buffer_remaining_size = RAW_PACKET_BUFFER_SIZE;
ic->internal->shortest_end = AV_NOPTS_VALUE;