diff --git a/tests/api/api-h264-slice-test.c b/tests/api/api-h264-slice-test.c index c6614da34d..b893737bca 100644 --- a/tests/api/api-h264-slice-test.c +++ b/tests/api/api-h264-slice-test.c @@ -117,9 +117,9 @@ int main(int argc, char **argv) unsigned int threads; AVPacket *pkt; FILE *file = NULL; - char nal[MAX_SLICES * UINT16_MAX + AV_INPUT_BUFFER_PADDING_SIZE]; + char * nal = NULL; int nals = 0, ret = 0; - char *p = nal; + char *p; if (argc < 4) { fprintf(stderr, "Usage: %s \n", argv[0]); @@ -139,6 +139,11 @@ int main(int argc, char **argv) return -1; } + nal = av_malloc(MAX_SLICES * UINT16_MAX + AV_INPUT_BUFFER_PADDING_SIZE); + if (!nal) + goto err; + p = nal; + if (!(codec = avcodec_find_decoder(AV_CODEC_ID_H264))) { fprintf(stderr, "Codec not found\n"); ret = -1; @@ -223,6 +228,8 @@ int main(int argc, char **argv) ret = decode(c, frame, NULL); err: + if (nal) + av_free(nal); if (file) fclose(file); av_frame_free(&frame);