if (ret < 0)
return ret;
ret = write_streamheader(avctx, dyn_bc, nut->avf->streams[i], i);
- if (ret < 0)
+ if (ret < 0) {
+ ffio_free_dyn_buf(&dyn_bc);
return ret;
+ }
put_packet(nut, bc, dyn_bc, 1, STREAM_STARTCODE);
}
if (ret < 0)
return ret;
ret = write_streaminfo(nut, dyn_bc, i);
- if (ret < 0)
- return ret;
if (ret > 0)
put_packet(nut, bc, dyn_bc, 1, INFO_STARTCODE);
- else
+ else {
ffio_free_dyn_buf(&dyn_bc);
+ if (ret < 0)
+ return ret;
+ }
}
for (i = 0; i < nut->avf->nb_chapters; i++) {
flags |= FLAG_CHECKSUM;
if (FFABS(pkt->pts - nus->last_pts) > nus->max_pts_distance)
flags |= FLAG_CHECKSUM;
- if (pkt->size < nut->header_len[fc->header_idx] ||
- (pkt->size > 4096 && fc->header_idx) ||
- memcmp(pkt->data, nut->header[fc->header_idx],
- nut->header_len[fc->header_idx]))
- flags |= FLAG_HEADER_IDX;
+ if (fc->header_idx)
+ if (pkt->size < nut->header_len[fc->header_idx] ||
+ pkt->size > 4096 ||
+ memcmp(pkt->data, nut->header [fc->header_idx],
+ nut->header_len[fc->header_idx]))
+ flags |= FLAG_HEADER_IDX;
return flags | (fc->flags & FLAG_CODED);
}
while (nut->header_count < 3)
write_headers(s, bc);
+ if (!nut->sp_count)
+ return 0;
+
ret = avio_open_dyn_buf(&dyn_bc);
- if (ret >= 0 && nut->sp_count) {
+ if (ret >= 0) {
av_assert1(nut->write_index); // sp_count should be 0 if no index is going to be written
write_index(nut, dyn_bc);
put_packet(nut, bc, dyn_bc, 1, INDEX_STARTCODE);