|
|
|
@ -351,8 +351,12 @@ static int decode_main_header(NUTContext *nut) |
|
|
|
|
ret = AVERROR(ENOMEM); |
|
|
|
|
goto fail; |
|
|
|
|
} |
|
|
|
|
for (i = 0; i < stream_count; i++) |
|
|
|
|
avformat_new_stream(s, NULL); |
|
|
|
|
for (i = 0; i < stream_count; i++) { |
|
|
|
|
if (!avformat_new_stream(s, NULL)) { |
|
|
|
|
ret = AVERROR(ENOMEM); |
|
|
|
|
goto fail; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return 0; |
|
|
|
|
fail: |
|
|
|
@ -800,19 +804,23 @@ static int nut_read_header(AVFormatContext *s) |
|
|
|
|
NUTContext *nut = s->priv_data; |
|
|
|
|
AVIOContext *bc = s->pb; |
|
|
|
|
int64_t pos; |
|
|
|
|
int initialized_stream_count; |
|
|
|
|
int initialized_stream_count, ret; |
|
|
|
|
|
|
|
|
|
nut->avf = s; |
|
|
|
|
|
|
|
|
|
/* main header */ |
|
|
|
|
pos = 0; |
|
|
|
|
ret = 0; |
|
|
|
|
do { |
|
|
|
|
if (ret == AVERROR(ENOMEM)) |
|
|
|
|
return ret; |
|
|
|
|
|
|
|
|
|
pos = find_startcode(bc, MAIN_STARTCODE, pos) + 1; |
|
|
|
|
if (pos < 0 + 1) { |
|
|
|
|
av_log(s, AV_LOG_ERROR, "No main startcode found.\n"); |
|
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
} |
|
|
|
|
} while (decode_main_header(nut) < 0); |
|
|
|
|
} while ((ret = decode_main_header(nut)) < 0); |
|
|
|
|
|
|
|
|
|
/* stream headers */ |
|
|
|
|
pos = 0; |
|
|
|
|