diff --git a/libavformat/r3d.c b/libavformat/r3d.c index 224bcf780d..7aa0c5a2c3 100644 --- a/libavformat/r3d.c +++ b/libavformat/r3d.c @@ -27,7 +27,6 @@ typedef struct R3DContext { unsigned video_offsets_count; - unsigned *video_offsets; unsigned rdvo_offset; int audio_channels; @@ -118,17 +117,14 @@ static int r3d_read_rdvo(AVFormatContext *s, Atom *atom) int i; r3d->video_offsets_count = (atom->size - 8) / 4; - r3d->video_offsets = av_malloc(atom->size); - if (!r3d->video_offsets) - return AVERROR(ENOMEM); for (i = 0; i < r3d->video_offsets_count; i++) { - r3d->video_offsets[i] = avio_rb32(s->pb); - if (!r3d->video_offsets[i]) { + unsigned video_offset = avio_rb32(s->pb); + if (!video_offset) { r3d->video_offsets_count = i; break; } - av_log(s, AV_LOG_TRACE, "video offset %d: %#x\n", i, r3d->video_offsets[i]); + av_log(s, AV_LOG_TRACE, "video offset %d: %#x\n", i, video_offset); } if (st->avg_frame_rate.num) @@ -400,15 +396,6 @@ static int r3d_seek(AVFormatContext *s, int stream_index, int64_t sample_time, i return 0; } -static int r3d_close(AVFormatContext *s) -{ - R3DContext *r3d = s->priv_data; - - av_freep(&r3d->video_offsets); - - return 0; -} - AVInputFormat ff_r3d_demuxer = { .name = "r3d", .long_name = NULL_IF_CONFIG_SMALL("REDCODE R3D"), @@ -416,6 +403,5 @@ AVInputFormat ff_r3d_demuxer = { .read_probe = r3d_probe, .read_header = r3d_read_header, .read_packet = r3d_read_packet, - .read_close = r3d_close, .read_seek = r3d_seek, };