On Tue, 2 Sep 2014 20:32:57 +0200 Reimar Döffinger <reimar.doeffin...@gmx.de> wrote:
> A bit more complex than e.g. adding it to the context, but > using the context for something that will be used only during > initialization seemed a bit wasteful. > > Signed-off-by: Reimar Döffinger <reimar.doeffin...@gmx.de> > --- > libavcodec/ffv1enc.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c > index b63ed42..4611f94 100644 > --- a/libavcodec/ffv1enc.c > +++ b/libavcodec/ffv1enc.c > @@ -862,9 +862,11 @@ static av_cold int encode_init(AVCodecContext *avctx) > } > if (avctx->stats_in) { > char *p = avctx->stats_in; > - uint8_t best_state[256][256]; > + uint8_t (*best_state)[256] = av_malloc_array(256, 256); > int gob_count = 0; > char *next; > + if (!best_state) > + return AVERROR(ENOMEM); > > av_assert0(s->version >= 2); > > @@ -875,6 +877,7 @@ static av_cold int encode_init(AVCodecContext *avctx) > if (next == p) { > av_log(avctx, AV_LOG_ERROR, > "2Pass file invalid at %d %d [%s]\n", j, i, > p); > + av_freep(&best_state); > return AVERROR_INVALIDDATA; > } > p = next; > @@ -888,6 +891,7 @@ static av_cold int encode_init(AVCodecContext *avctx) > av_log(avctx, AV_LOG_ERROR, > "2Pass file invalid at %d %d %d %d > [%s]\n", > i, j, k, m, p); > + av_freep(&best_state); > return AVERROR_INVALIDDATA; > } > p = next; > @@ -896,6 +900,7 @@ static av_cold int encode_init(AVCodecContext *avctx) > gob_count = strtol(p, &next, 0); > if (next == p || gob_count <= 0) { > av_log(avctx, AV_LOG_ERROR, "2Pass file invalid\n"); > + av_freep(&best_state); > return AVERROR_INVALIDDATA; > } > p = next; > @@ -933,6 +938,7 @@ static av_cold int encode_init(AVCodecContext *avctx) > } > } > } > + av_freep(&best_state); > } > > if (s->version > 1) { Is there any specific purpose to these changes? Sure, 64KB stack is pushing a bit, but it should be fine on all normal systems. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel