Merge commit '22b985d59c007c4422aefe3ef3fca0aa0daafa9f'
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 29 Jan 2015 21:43:36 +0000 (22:43 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 29 Jan 2015 21:43:36 +0000 (22:43 +0100)
* commit '22b985d59c007c4422aefe3ef3fca0aa0daafa9f':
  hqdn3d: check memory allocations and propagate errors

Conflicts:
libavfilter/vf_hqdn3d.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavfilter/vf_hqdn3d.c

@@@ -133,7 -133,9 +133,9 @@@ static int denoise_depth(HQDN3DContext 
      uint16_t *frame_ant = *frame_ant_ptr;
      if (!frame_ant) {
          uint8_t *frame_src = src;
 -        *frame_ant_ptr = frame_ant = av_malloc(w*h*sizeof(uint16_t));
 +        *frame_ant_ptr = frame_ant = av_malloc_array(w, h*sizeof(uint16_t));
+         if (!frame_ant)
+             return AVERROR(ENOMEM);
          for (y = 0; y < h; y++, src += sstride, frame_ant += w)
              for (x = 0; x < w; x++)
                  frame_ant[x] = LOAD(x);
@@@ -277,18 -289,14 +289,16 @@@ static int config_input(AVFilterLink *i
  
  static int filter_frame(AVFilterLink *inlink, AVFrame *in)
  {
 -    HQDN3DContext *s = inlink->dst->priv;
 -    AVFilterLink *outlink = inlink->dst->outputs[0];
 +    AVFilterContext *ctx  = inlink->dst;
 +    HQDN3DContext *s = ctx->priv;
 +    AVFilterLink *outlink = ctx->outputs[0];
 +
      AVFrame *out;
-     int direct, c;
 -    int c, direct = av_frame_is_writable(in);
++    int c, direct = av_frame_is_writable(in) && !ctx->is_disabled;
  
-     if (av_frame_is_writable(in) && !ctx->is_disabled) {
-         direct = 1;
+     if (direct) {
          out = in;
      } else {
-         direct = 0;
          out = ff_get_video_buffer(outlink, outlink->w, outlink->h);
          if (!out) {
              av_frame_free(&in);