summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-08-02 00:58:48 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-08-06 00:02:19 +0200
commit1fbfa42432b1348944829a51997f1a0d8f11c6bc (patch)
tree47aa51a939ab86851160a48eda3d47fae5ee6e4e /libavformat
parent8b0bba864b8dc71e91a53b89c1a5b398e8321139 (diff)
avformat/dv: Avoid allocation for reading timecode
Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/dv.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/libavformat/dv.c b/libavformat/dv.c
index 9179e6cec6..d25641daac 100644
--- a/libavformat/dv.c
+++ b/libavformat/dv.c
@@ -470,19 +470,15 @@ static int dv_read_timecode(AVFormatContext *s) {
int64_t pos = avio_tell(s->pb);
// Read 3 DIF blocks: Header block and 2 Subcode blocks.
- int partial_frame_size = 3 * 80;
- uint8_t *partial_frame = av_mallocz(sizeof(*partial_frame) *
- partial_frame_size);
-
+#define PARTIAL_FRAME_SIZE (3 * 80)
+ uint8_t partial_frame[PARTIAL_FRAME_SIZE];
RawDVContext *c = s->priv_data;
- if (!partial_frame)
- return AVERROR(ENOMEM);
- ret = avio_read(s->pb, partial_frame, partial_frame_size);
+ ret = avio_read(s->pb, partial_frame, PARTIAL_FRAME_SIZE);
if (ret < 0)
goto finish;
- if (ret < partial_frame_size) {
+ if (ret < PARTIAL_FRAME_SIZE) {
ret = -1;
goto finish;
}
@@ -494,7 +490,6 @@ static int dv_read_timecode(AVFormatContext *s) {
av_log(s, AV_LOG_ERROR, "Detected timecode is invalid\n");
finish:
- av_free(partial_frame);
avio_seek(s->pb, pos, SEEK_SET);
return ret;
}