ffmpeg patches for TERMUX from Andrew + mpeg formats
[goodguy/cinelerra.git] / cinelerra-5.1 / thirdparty / src / ffmpeg-4.4.patch_2
1 --- ffmpeg-4.4/libavcodec/hevc_mvs.c.orig       2021-05-08 12:22:19.580985429 +0300
2 +++ ffmpeg-4.4/libavcodec/hevc_mvs.c    2021-05-08 12:29:05.340985454 +0300
3 @@ -307,8 +307,8 @@
4      const int xB1    = x0 + nPbW - 1;
5      const int yB1    = y0 - 1;
6
7 -    const int xB0    = x0 + nPbW;
8 -    const int yB0    = y0 - 1;
9 +    const int xB0_    = x0 + nPbW;
10 +    const int yB0_    = y0 - 1;
11
12      const int xA0    = x0 - 1;
13      const int yA0    = y0 + nPbH;
14 @@ -365,14 +365,14 @@
15      }
16
17      // above right spatial merge candidate
18 -    is_available_b0 = AVAILABLE(cand_up_right, B0) &&
19 -                      xB0 < s->ps.sps->width &&
20 -                      PRED_BLOCK_AVAILABLE(B0) &&
21 -                      !is_diff_mer(s, xB0, yB0, x0, y0);
22 +    is_available_b0 = AVAILABLE(cand_up_right, B0_) &&
23 +                      xB0_ < s->ps.sps->width &&
24 +                      PRED_BLOCK_AVAILABLE(B0_) &&
25 +                      !is_diff_mer(s, xB0_, yB0_, x0, y0);
26
27      if (is_available_b0 &&
28 -        !(is_available_b1 && COMPARE_MV_REFIDX(B0, B1))) {
29 -        mergecandlist[nb_merge_cand] = TAB_MVF_PU(B0);
30 +        !(is_available_b1 && COMPARE_MV_REFIDX(B0_, B1))) {
31 +        mergecandlist[nb_merge_cand] = TAB_MVF_PU(B0_);
32          if (merge_idx == nb_merge_cand)
33              return;
34          nb_merge_cand++;
35 @@ -588,7 +588,7 @@
36      MvField *tab_mvf = s->ref->tab_mvf;
37      int isScaledFlag_L0 = 0;
38      int availableFlagLXA0 = 1;
39 -    int availableFlagLXB0 = 1;
40 +    int availableFlagLXB0_ = 1;
41      int numMVPCandLX = 0;
42      int min_pu_width = s->ps.sps->min_pu_width;
43
44 @@ -596,7 +596,7 @@
45      int is_available_a0;
46      int xA1, yA1;
47      int is_available_a1;
48 -    int xB0, yB0;
49 +    int xB0_, yB0_;
50      int is_available_b0;
51      int xB1, yB1;
52      int is_available_b1;
53 @@ -677,12 +677,12 @@
54  b_candidates:
55      // B candidates
56      // above right spatial merge candidate
57 -    xB0    = x0 + nPbW;
58 -    yB0    = y0 - 1;
59 +    xB0_    = x0 + nPbW;
60 +    yB0_    = y0 - 1;
61
62 -    is_available_b0 =  AVAILABLE(cand_up_right, B0) &&
63 -                       xB0 < s->ps.sps->width &&
64 -                       PRED_BLOCK_AVAILABLE(B0);
65 +    is_available_b0 =  AVAILABLE(cand_up_right, B0_) &&
66 +                       xB0_ < s->ps.sps->width &&
67 +                       PRED_BLOCK_AVAILABLE(B0_);
68
69      // above spatial merge candidate
70      xB1    = x0 + nPbW - 1;
71 @@ -696,10 +696,10 @@
72
73      // above right spatial merge candidate
74      if (is_available_b0) {
75 -        if (MP_MX(B0, pred_flag_index_l0, mxB)) {
76 +        if (MP_MX(B0_, pred_flag_index_l0, mxB)) {
77              goto scalef;
78          }
79 -        if (MP_MX(B0, pred_flag_index_l1, mxB)) {
80 +        if (MP_MX(B0_, pred_flag_index_l1, mxB)) {
81              goto scalef;
82          }
83      }
84 @@ -723,40 +723,40 @@
85              goto scalef;
86          }
87      }
88 -    availableFlagLXB0 = 0;
89 +    availableFlagLXB0_ = 0;
90
91  scalef:
92      if (!isScaledFlag_L0) {
93 -        if (availableFlagLXB0) {
94 +        if (availableFlagLXB0_) {
95              availableFlagLXA0 = 1;
96              mxA = mxB;
97          }
98 -        availableFlagLXB0 = 0;
99 +        availableFlagLXB0_ = 0;
100
101          // XB0 and L1
102          if (is_available_b0) {
103 -            availableFlagLXB0 = MP_MX_LT(B0, pred_flag_index_l0, mxB);
104 -            if (!availableFlagLXB0)
105 -                availableFlagLXB0 = MP_MX_LT(B0, pred_flag_index_l1, mxB);
106 +            availableFlagLXB0_ = MP_MX_LT(B0_, pred_flag_index_l0, mxB);
107 +            if (!availableFlagLXB0_)
108 +                availableFlagLXB0_ = MP_MX_LT(B0_, pred_flag_index_l1, mxB);
109          }
110
111 -        if (is_available_b1 && !availableFlagLXB0) {
112 -            availableFlagLXB0 = MP_MX_LT(B1, pred_flag_index_l0, mxB);
113 -            if (!availableFlagLXB0)
114 -                availableFlagLXB0 = MP_MX_LT(B1, pred_flag_index_l1, mxB);
115 +        if (is_available_b1 && !availableFlagLXB0_) {
116 +            availableFlagLXB0_ = MP_MX_LT(B1, pred_flag_index_l0, mxB);
117 +            if (!availableFlagLXB0_)
118 +                availableFlagLXB0_ = MP_MX_LT(B1, pred_flag_index_l1, mxB);
119          }
120
121 -        if (is_available_b2 && !availableFlagLXB0) {
122 -            availableFlagLXB0 = MP_MX_LT(B2, pred_flag_index_l0, mxB);
123 -            if (!availableFlagLXB0)
124 -                availableFlagLXB0 = MP_MX_LT(B2, pred_flag_index_l1, mxB);
125 +        if (is_available_b2 && !availableFlagLXB0_) {
126 +            availableFlagLXB0_ = MP_MX_LT(B2, pred_flag_index_l0, mxB);
127 +            if (!availableFlagLXB0_)
128 +                availableFlagLXB0_ = MP_MX_LT(B2, pred_flag_index_l1, mxB);
129          }
130      }
131
132      if (availableFlagLXA0)
133          mvpcand_list[numMVPCandLX++] = mxA;
134
135 -    if (availableFlagLXB0 && (!availableFlagLXA0 || mxA.x != mxB.x || mxA.y != mxB.y))
136 +    if (availableFlagLXB0_ && (!availableFlagLXA0 || mxA.x != mxB.x || mxA.y != mxB.y))
137          mvpcand_list[numMVPCandLX++] = mxB;
138
139      //temporal motion vector prediction candidate