X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Fr3d.c;h=7aa0c5a2c38d7327b2e9fa08bd9e731c80329eb7;hb=39977fff20048f1798a95c593d6034a0e73ebbe5;hp=1f53d847e95ef9750d75393b333aaedce8a70756;hpb=e4e04dce1fab81bcdef82e60184d50c73d212c6a;p=ffmpeg diff --git a/libavformat/r3d.c b/libavformat/r3d.c index 1f53d847e95..7aa0c5a2c38 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) @@ -368,7 +364,7 @@ static int r3d_read_packet(AVFormatContext *s, AVPacket *pkt) return err; } -static int r3d_probe(AVProbeData *p) +static int r3d_probe(const AVProbeData *p) { if (AV_RL32(p->buf + 4) == MKTAG('R','E','D','1')) return AVPROBE_SCORE_MAX; @@ -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, };