Merge commit '64ed397635ef2666b0ca0c8d8c60a8bc44581d82'
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 16 Feb 2013 08:03:58 +0000 (09:03 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 16 Feb 2013 08:09:38 +0000 (09:09 +0100)
* commit '64ed397635ef2666b0ca0c8d8c60a8bc44581d82':
  vf_yadif: fix out-of line reads

Conflicts:
libavfilter/vf_yadif.c
tests/ref/fate/filter-yadif-mode0
tests/ref/fate/filter-yadif-mode1

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavfilter/vf_yadif.c
libavfilter/x86/vf_yadif_init.c
libavfilter/yadif.h
tests/ref/fate/filter-yadif-mode0
tests/ref/fate/filter-yadif-mode1

@@@ -124,8 -177,8 +177,9 @@@ static void filter(AVFilterContext *ctx
          int w = dstpic->video->w;
          int h = dstpic->video->h;
          int refs = yadif->cur->linesize[i];
 +        int absrefs = FFABS(refs);
          int df = (yadif->csp->comp[i].depth_minus1 + 8) / 8;
+         int l_edge, l_edge_pix;
  
          if (i == 1 || i == 2) {
          /* Why is this not part of the per-plane description thing? */
@@@ -330,11 -399,9 +380,10 @@@ static av_cold void uninit(AVFilterCont
  {
      YADIFContext *yadif = ctx->priv;
  
 -    if (yadif->prev) avfilter_unref_bufferp(&yadif->prev);
 -    if (yadif->cur ) avfilter_unref_bufferp(&yadif->cur );
 -    if (yadif->next) avfilter_unref_bufferp(&yadif->next);
 +    avfilter_unref_bufferp(&yadif->prev);
 +    avfilter_unref_bufferp(&yadif->cur );
 +    avfilter_unref_bufferp(&yadif->next);
-     av_freep(&yadif->temp_line); yadif->temp_line_size = 0;
 +    av_opt_free(yadif);
  }
  
  static int query_formats(AVFilterContext *ctx)
@@@ -406,19 -461,13 +455,21 @@@ static int config_props(AVFilterLink *l
      link->w             = link->src->inputs[0]->w;
      link->h             = link->src->inputs[0]->h;
  
 +    if(s->mode&1)
 +        link->frame_rate = av_mul_q(link->src->inputs[0]->frame_rate, (AVRational){2,1});
 +
 +    if (link->w < 3 || link->h < 3) {
 +        av_log(ctx, AV_LOG_ERROR, "Video of less than 3 columns or lines is not supported\n");
 +        return AVERROR(EINVAL);
 +    }
 +
      s->csp = av_pix_fmt_desc_get(link->format);
      if (s->csp->comp[0].depth_minus1 / 8 == 1) {
-         s->filter_line = filter_line_c_16bit;
+         s->filter_line  = filter_line_c_16bit;
+         s->filter_edges = filter_edges_16bit;
      } else {
-         s->filter_line = filter_line_c;
+         s->filter_line  = filter_line_c;
+         s->filter_edges = filter_edges;
  
          if (ARCH_X86)
              ff_yadif_init_x86(s);
Simple merge
Simple merge
@@@ -1,32 -1,32 +1,32 @@@
 -#tb 0: 1/180000
 -0,      64800,      64800,        0,   622080, 0x6331caee
 -0,      72000,      72000,        0,   622080, 0xa459e690
 -0,      79200,      79200,        0,   622080, 0x6429c648
 -0,      86400,      86400,        0,   622080, 0xa49891ca
 -0,      93600,      93600,        0,   622080, 0x2a887404
 -0,     100800,     100800,        0,   622080, 0xe8d49705
 -0,     108000,     108000,        0,   622080, 0x1b627835
 -0,     115200,     115200,        0,   622080, 0x686858fd
 -0,     122400,     122400,        0,   622080, 0x2675174f
 -0,     129600,     129600,        0,   622080, 0x78470e7f
 -0,     136800,     136800,        0,   622080, 0xffb366ec
 -0,     144000,     144000,        0,   622080, 0xd575da72
 -0,     151200,     151200,        0,   622080, 0x5fb297f7
 -0,     158400,     158400,        0,   622080, 0xbac77ca0
 -0,     165600,     165600,        0,   622080, 0x3276ed72
 -0,     172800,     172800,        0,   622080, 0x264092b2
 -0,     180000,     180000,        0,   622080, 0x20ba1094
 -0,     187200,     187200,        0,   622080, 0x76cc3139
 -0,     194400,     194400,        0,   622080, 0x469a4902
 -0,     201600,     201600,        0,   622080, 0x0ed7b8f5
 -0,     208800,     208800,        0,   622080, 0xdc51aeac
 -0,     216000,     216000,        0,   622080, 0xee06aa36
 -0,     223200,     223200,        0,   622080, 0x7372405f
 -0,     230400,     230400,        0,   622080, 0x9e0ee776
 -0,     237600,     237600,        0,   622080, 0x39e6d8c9
 -0,     244800,     244800,        0,   622080, 0x51d9ac9a
 -0,     252000,     252000,        0,   622080, 0x2b63441d
 -0,     259200,     259200,        0,   622080, 0x58afbd5e
 -0,     266400,     266400,        0,   622080, 0xb972f716
 -0,     273600,     273600,        0,   622080, 0x6a6df129
 -0,     280800,     280800,        0,   622080, 0x28b1373d
 +#tb 0: 1/25
- 0,          9,          9,        1,   622080, 0x4440caef
- 0,         10,         10,        1,   622080, 0xce67e69d
- 0,         11,         11,        1,   622080, 0x1dbdc653
- 0,         12,         12,        1,   622080, 0x55c791d0
- 0,         13,         13,        1,   622080, 0x8193740b
- 0,         14,         14,        1,   622080, 0x7125970f
- 0,         15,         15,        1,   622080, 0xeb63783a
- 0,         16,         16,        1,   622080, 0x7080590b
- 0,         17,         17,        1,   622080, 0x13f8175b
- 0,         18,         18,        1,   622080, 0x3e550e94
- 0,         19,         19,        1,   622080, 0x7f9d66f7
- 0,         20,         20,        1,   622080, 0x068eda80
- 0,         21,         21,        1,   622080, 0x843997f7
- 0,         22,         22,        1,   622080, 0x88207ca3
- 0,         23,         23,        1,   622080, 0x353eed75
- 0,         24,         24,        1,   622080, 0xf93e92b0
- 0,         25,         25,        1,   622080, 0xd0811094
- 0,         26,         26,        1,   622080, 0xb04a3141
- 0,         27,         27,        1,   622080, 0x4ab84909
- 0,         28,         28,        1,   622080, 0x4700b8f9
- 0,         29,         29,        1,   622080, 0x6305aeba
- 0,         30,         30,        1,   622080, 0x153faa3e
- 0,         31,         31,        1,   622080, 0xae724063
- 0,         32,         32,        1,   622080, 0xbe4fe779
- 0,         33,         33,        1,   622080, 0x209ed8c7
- 0,         34,         34,        1,   622080, 0xe2bbac96
- 0,         35,         35,        1,   622080, 0xe945441e
- 0,         36,         36,        1,   622080, 0x3590bd5d
- 0,         37,         37,        1,   622080, 0x8f3ef716
- 0,         38,         38,        1,   622080, 0x0109f125
- 0,         39,         39,        1,   622080, 0x230c373f
++0,          9,          9,        1,   622080, 0x6331caee
++0,         10,         10,        1,   622080, 0xa459e690
++0,         11,         11,        1,   622080, 0x6429c648
++0,         12,         12,        1,   622080, 0xa49891ca
++0,         13,         13,        1,   622080, 0x2a887404
++0,         14,         14,        1,   622080, 0xe8d49705
++0,         15,         15,        1,   622080, 0x1b627835
++0,         16,         16,        1,   622080, 0x686858fd
++0,         17,         17,        1,   622080, 0x2675174f
++0,         18,         18,        1,   622080, 0x78470e7f
++0,         19,         19,        1,   622080, 0xffb366ec
++0,         20,         20,        1,   622080, 0xd575da72
++0,         21,         21,        1,   622080, 0x5fb297f7
++0,         22,         22,        1,   622080, 0xbac77ca0
++0,         23,         23,        1,   622080, 0x3276ed72
++0,         24,         24,        1,   622080, 0x264092b2
++0,         25,         25,        1,   622080, 0x20ba1094
++0,         26,         26,        1,   622080, 0x76cc3139
++0,         27,         27,        1,   622080, 0x469a4902
++0,         28,         28,        1,   622080, 0x0ed7b8f5
++0,         29,         29,        1,   622080, 0xdc51aeac
++0,         30,         30,        1,   622080, 0xee06aa36
++0,         31,         31,        1,   622080, 0x7372405f
++0,         32,         32,        1,   622080, 0x9e0ee776
++0,         33,         33,        1,   622080, 0x39e6d8c9
++0,         34,         34,        1,   622080, 0x51d9ac9a
++0,         35,         35,        1,   622080, 0x2b63441d
++0,         36,         36,        1,   622080, 0x58afbd5e
++0,         37,         37,        1,   622080, 0xb972f716
++0,         38,         38,        1,   622080, 0x6a6df129
++0,         39,         39,        1,   622080, 0x28b1373d
@@@ -1,63 -1,63 +1,63 @@@
 -#tb 0: 1/180000
 -0,      64800,      64800,        0,   622080, 0x6331caee
 -0,      68400,      68400,        0,   622080, 0x625da883
 -0,      72000,      72000,        0,   622080, 0xa459e690
 -0,      75600,      75600,        0,   622080, 0xce5d891e
 -0,      79200,      79200,        0,   622080, 0x6429c648
 -0,      82800,      82800,        0,   622080, 0x608cc0ba
 -0,      86400,      86400,        0,   622080, 0xa49891ca
 -0,      90000,      90000,        0,   622080, 0x9721987f
 -0,      93600,      93600,        0,   622080, 0x2a887404
 -0,      97200,      97200,        0,   622080, 0x60d71d47
 -0,     100800,     100800,        0,   622080, 0xe8d49705
 -0,     104400,     104400,        0,   622080, 0x821e13cb
 -0,     108000,     108000,        0,   622080, 0x1b627835
 -0,     111600,     111600,        0,   622080, 0x1806c5f4
 -0,     115200,     115200,        0,   622080, 0x686858fd
 -0,     118800,     118800,        0,   622080, 0xab865773
 -0,     122400,     122400,        0,   622080, 0x2675174f
 -0,     126000,     126000,        0,   622080, 0x43a61a14
 -0,     129600,     129600,        0,   622080, 0x78470e7f
 -0,     133200,     133200,        0,   622080, 0xeb877bc6
 -0,     136800,     136800,        0,   622080, 0xffb366ec
 -0,     140400,     140400,        0,   622080, 0xda0906e7
 -0,     144000,     144000,        0,   622080, 0xd575da72
 -0,     147600,     147600,        0,   622080, 0x23ae25a4
 -0,     151200,     151200,        0,   622080, 0x5fb297f7
 -0,     154800,     154800,        0,   622080, 0x99b32978
 -0,     158400,     158400,        0,   622080, 0xbac77ca0
 -0,     162000,     162000,        0,   622080, 0xc1cdcbf9
 -0,     165600,     165600,        0,   622080, 0x3276ed72
 -0,     169200,     169200,        0,   622080, 0x4061f5ab
 -0,     172800,     172800,        0,   622080, 0x264092b2
 -0,     176400,     176400,        0,   622080, 0xa4e2039e
 -0,     180000,     180000,        0,   622080, 0x20ba1094
 -0,     183600,     183600,        0,   622080, 0x984e906e
 -0,     187200,     187200,        0,   622080, 0x76cc3139
 -0,     190800,     190800,        0,   622080, 0xf70e2cf6
 -0,     194400,     194400,        0,   622080, 0x469a4902
 -0,     198000,     198000,        0,   622080, 0x235312e6
 -0,     201600,     201600,        0,   622080, 0x0ed7b8f5
 -0,     205200,     205200,        0,   622080, 0xd0269cc3
 -0,     208800,     208800,        0,   622080, 0xdc51aeac
 -0,     212400,     212400,        0,   622080, 0x1aa5f76e
 -0,     216000,     216000,        0,   622080, 0xee06aa36
 -0,     219600,     219600,        0,   622080, 0xa7103230
 -0,     223200,     223200,        0,   622080, 0x7372405f
 -0,     226800,     226800,        0,   622080, 0x8d7a44b5
 -0,     230400,     230400,        0,   622080, 0x9e0ee776
 -0,     234000,     234000,        0,   622080, 0xd41e8560
 -0,     237600,     237600,        0,   622080, 0x39e6d8c9
 -0,     241200,     241200,        0,   622080, 0x7a23d70c
 -0,     244800,     244800,        0,   622080, 0x51d9ac9a
 -0,     248400,     248400,        0,   622080, 0x8eacf7f2
 -0,     252000,     252000,        0,   622080, 0x2b63441d
 -0,     255600,     255600,        0,   622080, 0x9f71b742
 -0,     259200,     259200,        0,   622080, 0x58afbd5e
 -0,     262800,     262800,        0,   622080, 0x4d645292
 -0,     266400,     266400,        0,   622080, 0xb972f716
 -0,     270000,     270000,        0,   622080, 0xbb5d01a2
 -0,     273600,     273600,        0,   622080, 0x6a6df129
 -0,     277200,     277200,        0,   622080, 0x9e45371e
 -0,     280800,     280800,        0,   622080, 0x28b1373d
 -0,     284400,     284400,        0,   622080, 0xa1cdb1f2
 +#tb 0: 1/50
- 0,         18,         18,        1,   622080, 0x4440caef
- 0,         19,         19,        1,   622080, 0xa5cea88b
- 0,         20,         20,        1,   622080, 0xce67e69d
- 0,         21,         21,        1,   622080, 0x9a57891f
- 0,         22,         22,        1,   622080, 0x1dbdc653
- 0,         23,         23,        1,   622080, 0xc171c0c5
- 0,         24,         24,        1,   622080, 0x55c791d0
- 0,         25,         25,        1,   622080, 0x20db9890
- 0,         26,         26,        1,   622080, 0x8193740b
- 0,         27,         27,        1,   622080, 0xdb181d52
- 0,         28,         28,        1,   622080, 0x7125970f
- 0,         29,         29,        1,   622080, 0xc2b913d1
- 0,         30,         30,        1,   622080, 0xeb63783a
- 0,         31,         31,        1,   622080, 0xf1d9c5fb
- 0,         32,         32,        1,   622080, 0x7080590b
- 0,         33,         33,        1,   622080, 0xeda55774
- 0,         34,         34,        1,   622080, 0x13f8175b
- 0,         35,         35,        1,   622080, 0x01921a16
- 0,         36,         36,        1,   622080, 0x3e550e94
- 0,         37,         37,        1,   622080, 0xd5047bc9
- 0,         38,         38,        1,   622080, 0x7f9d66f7
- 0,         39,         39,        1,   622080, 0x2fc806ea
- 0,         40,         40,        1,   622080, 0x068eda80
- 0,         41,         41,        1,   622080, 0xf0e125a7
- 0,         42,         42,        1,   622080, 0x843997f7
- 0,         43,         43,        1,   622080, 0x4afe2976
- 0,         44,         44,        1,   622080, 0x88207ca3
- 0,         45,         45,        1,   622080, 0x637fcbfe
- 0,         46,         46,        1,   622080, 0x353eed75
- 0,         47,         47,        1,   622080, 0xd9a8f5ac
- 0,         48,         48,        1,   622080, 0xf93e92b0
- 0,         49,         49,        1,   622080, 0x4540039f
- 0,         50,         50,        1,   622080, 0xd0811094
- 0,         51,         51,        1,   622080, 0x3039906f
- 0,         52,         52,        1,   622080, 0xb04a3141
- 0,         53,         53,        1,   622080, 0xe62d2cfa
- 0,         54,         54,        1,   622080, 0x4ab84909
- 0,         55,         55,        1,   622080, 0x82de12ee
- 0,         56,         56,        1,   622080, 0x4700b8f9
- 0,         57,         57,        1,   622080, 0x7e849cc9
- 0,         58,         58,        1,   622080, 0x6305aeba
- 0,         59,         59,        1,   622080, 0x939bf771
- 0,         60,         60,        1,   622080, 0x153faa3e
- 0,         61,         61,        1,   622080, 0xb67f3233
- 0,         62,         62,        1,   622080, 0xae724063
- 0,         63,         63,        1,   622080, 0xed2b44b3
- 0,         64,         64,        1,   622080, 0xbe4fe779
- 0,         65,         65,        1,   622080, 0x380f8563
- 0,         66,         66,        1,   622080, 0x209ed8c7
- 0,         67,         67,        1,   622080, 0xb964d70f
- 0,         68,         68,        1,   622080, 0xe2bbac96
- 0,         69,         69,        1,   622080, 0x4f60f7f4
- 0,         70,         70,        1,   622080, 0xe945441e
- 0,         71,         71,        1,   622080, 0xded0b740
- 0,         72,         72,        1,   622080, 0x3590bd5d
- 0,         73,         73,        1,   622080, 0xb9a15294
- 0,         74,         74,        1,   622080, 0x8f3ef716
- 0,         75,         75,        1,   622080, 0x3e2301a8
- 0,         76,         76,        1,   622080, 0x0109f125
- 0,         77,         77,        1,   622080, 0x5252371e
- 0,         78,         78,        1,   622080, 0x230c373f
- 0,         79,         79,        1,   622080, 0x5a1ab1f1
++0,         18,         18,        1,   622080, 0x6331caee
++0,         19,         19,        1,   622080, 0x625da883
++0,         20,         20,        1,   622080, 0xa459e690
++0,         21,         21,        1,   622080, 0xce5d891e
++0,         22,         22,        1,   622080, 0x6429c648
++0,         23,         23,        1,   622080, 0x608cc0ba
++0,         24,         24,        1,   622080, 0xa49891ca
++0,         25,         25,        1,   622080, 0x9721987f
++0,         26,         26,        1,   622080, 0x2a887404
++0,         27,         27,        1,   622080, 0x60d71d47
++0,         28,         28,        1,   622080, 0xe8d49705
++0,         29,         29,        1,   622080, 0x821e13cb
++0,         30,         30,        1,   622080, 0x1b627835
++0,         31,         31,        1,   622080, 0x1806c5f4
++0,         32,         32,        1,   622080, 0x686858fd
++0,         33,         33,        1,   622080, 0xab865773
++0,         34,         34,        1,   622080, 0x2675174f
++0,         35,         35,        1,   622080, 0x43a61a14
++0,         36,         36,        1,   622080, 0x78470e7f
++0,         37,         37,        1,   622080, 0xeb877bc6
++0,         38,         38,        1,   622080, 0xffb366ec
++0,         39,         39,        1,   622080, 0xda0906e7
++0,         40,         40,        1,   622080, 0xd575da72
++0,         41,         41,        1,   622080, 0x23ae25a4
++0,         42,         42,        1,   622080, 0x5fb297f7
++0,         43,         43,        1,   622080, 0x99b32978
++0,         44,         44,        1,   622080, 0xbac77ca0
++0,         45,         45,        1,   622080, 0xc1cdcbf9
++0,         46,         46,        1,   622080, 0x3276ed72
++0,         47,         47,        1,   622080, 0x4061f5ab
++0,         48,         48,        1,   622080, 0x264092b2
++0,         49,         49,        1,   622080, 0xa4e2039e
++0,         50,         50,        1,   622080, 0x20ba1094
++0,         51,         51,        1,   622080, 0x984e906e
++0,         52,         52,        1,   622080, 0x76cc3139
++0,         53,         53,        1,   622080, 0xf70e2cf6
++0,         54,         54,        1,   622080, 0x469a4902
++0,         55,         55,        1,   622080, 0x235312e6
++0,         56,         56,        1,   622080, 0x0ed7b8f5
++0,         57,         57,        1,   622080, 0xd0269cc3
++0,         58,         58,        1,   622080, 0xdc51aeac
++0,         59,         59,        1,   622080, 0x1aa5f76e
++0,         60,         60,        1,   622080, 0xee06aa36
++0,         61,         61,        1,   622080, 0xa7103230
++0,         62,         62,        1,   622080, 0x7372405f
++0,         63,         63,        1,   622080, 0x8d7a44b5
++0,         64,         64,        1,   622080, 0x9e0ee776
++0,         65,         65,        1,   622080, 0xd41e8560
++0,         66,         66,        1,   622080, 0x39e6d8c9
++0,         67,         67,        1,   622080, 0x7a23d70c
++0,         68,         68,        1,   622080, 0x51d9ac9a
++0,         69,         69,        1,   622080, 0x8eacf7f2
++0,         70,         70,        1,   622080, 0x2b63441d
++0,         71,         71,        1,   622080, 0x9f71b742
++0,         72,         72,        1,   622080, 0x58afbd5e
++0,         73,         73,        1,   622080, 0x4d645292
++0,         74,         74,        1,   622080, 0xb972f716
++0,         75,         75,        1,   622080, 0xbb5d01a2
++0,         76,         76,        1,   622080, 0x6a6df129
++0,         77,         77,        1,   622080, 0x9e45371e
++0,         78,         78,        1,   622080, 0x28b1373d
++0,         79,         79,        1,   622080, 0xa1cdb1f2