@@ -438,6 +438,7 @@ use crate::src::levels::mv;
438
438
439
439
use crate::src::env::BlockContext;
440
440
use crate::src::refmvs::refmvs_block;
441
+ use crate::src::refmvs::refmvs_block_unaligned;
441
442
use crate::src::refmvs::refmvs_frame;
442
443
use crate::src::refmvs::refmvs_mvpair;
443
444
use crate::src::refmvs::refmvs_refpair;
@@ -1459,14 +1460,14 @@ unsafe extern "C" fn find_matching_ref(
1459
1460
let mut r2: *const refmvs_block = &mut *(*r.offset(-(1 as libc::c_int) as isize))
1460
1461
.offset((*t).bx as isize)
1461
1462
as *mut refmvs_block;
1462
- if (*r2).r#ref.r#ref[0] as libc::c_int == r#ref + 1
1463
- && (*r2).r#ref.r#ref[1] as libc::c_int == -(1 as libc::c_int)
1463
+ if (*r2).0. r#ref.r#ref[0] as libc::c_int == r#ref + 1
1464
+ && (*r2).0. r#ref.r#ref[1] as libc::c_int == -(1 as libc::c_int)
1464
1465
{
1465
1466
let ref mut fresh2 = *masks.offset(0);
1466
1467
*fresh2 |= 1;
1467
1468
count = 1 as libc::c_int;
1468
1469
}
1469
- let mut aw4 = dav1d_block_dimensions[(*r2).bs as usize][0] as libc::c_int;
1470
+ let mut aw4 = dav1d_block_dimensions[(*r2).0. bs as usize][0] as libc::c_int;
1470
1471
if aw4 >= bw4 {
1471
1472
let off = (*t).bx & aw4 - 1;
1472
1473
if off != 0 {
@@ -1480,8 +1481,8 @@ unsafe extern "C" fn find_matching_ref(
1480
1481
let mut x = aw4;
1481
1482
while x < w4 {
1482
1483
r2 = r2.offset(aw4 as isize);
1483
- if (*r2).r#ref.r#ref[0] as libc::c_int == r#ref + 1
1484
- && (*r2).r#ref.r#ref[1] as libc::c_int == -(1 as libc::c_int)
1484
+ if (*r2).0. r#ref.r#ref[0] as libc::c_int == r#ref + 1
1485
+ && (*r2).0. r#ref.r#ref[1] as libc::c_int == -(1 as libc::c_int)
1485
1486
{
1486
1487
let ref mut fresh3 = *masks.offset(0);
1487
1488
*fresh3 |= mask as uint64_t;
@@ -1490,7 +1491,7 @@ unsafe extern "C" fn find_matching_ref(
1490
1491
return;
1491
1492
}
1492
1493
}
1493
- aw4 = dav1d_block_dimensions[(*r2).bs as usize][0] as libc::c_int;
1494
+ aw4 = dav1d_block_dimensions[(*r2).0. bs as usize][0] as libc::c_int;
1494
1495
mask <<= aw4;
1495
1496
x += aw4;
1496
1497
}
@@ -1499,10 +1500,12 @@ unsafe extern "C" fn find_matching_ref(
1499
1500
if have_left {
1500
1501
let mut r2_0: *const *mut refmvs_block = r;
1501
1502
if (*(*r2_0.offset(0)).offset(((*t).bx - 1) as isize))
1503
+ .0
1502
1504
.r#ref
1503
1505
.r#ref[0] as libc::c_int
1504
1506
== r#ref + 1
1505
1507
&& (*(*r2_0.offset(0)).offset(((*t).bx - 1) as isize))
1508
+ .0
1506
1509
.r#ref
1507
1510
.r#ref[1] as libc::c_int
1508
1511
== -(1 as libc::c_int)
@@ -1515,7 +1518,7 @@ unsafe extern "C" fn find_matching_ref(
1515
1518
}
1516
1519
}
1517
1520
let mut lh4 = dav1d_block_dimensions
1518
- [(*(*r2_0.offset(0)).offset(((*t).bx - 1) as isize)).bs as usize][1]
1521
+ [(*(*r2_0.offset(0)).offset(((*t).bx - 1) as isize)).0. bs as usize][1]
1519
1522
as libc::c_int;
1520
1523
if lh4 >= bh4 {
1521
1524
if (*t).by & lh4 - 1 != 0 {
@@ -1527,10 +1530,12 @@ unsafe extern "C" fn find_matching_ref(
1527
1530
while y < h4 {
1528
1531
r2_0 = r2_0.offset(lh4 as isize);
1529
1532
if (*(*r2_0.offset(0)).offset(((*t).bx - 1) as isize))
1533
+ .0
1530
1534
.r#ref
1531
1535
.r#ref[0] as libc::c_int
1532
1536
== r#ref + 1
1533
1537
&& (*(*r2_0.offset(0)).offset(((*t).bx - 1) as isize))
1538
+ .0
1534
1539
.r#ref
1535
1540
.r#ref[1] as libc::c_int
1536
1541
== -(1 as libc::c_int)
@@ -1543,7 +1548,7 @@ unsafe extern "C" fn find_matching_ref(
1543
1548
}
1544
1549
}
1545
1550
lh4 = dav1d_block_dimensions
1546
- [(*(*r2_0.offset(0)).offset(((*t).bx - 1) as isize)).bs as usize][1]
1551
+ [(*(*r2_0.offset(0)).offset(((*t).bx - 1) as isize)).0. bs as usize][1]
1547
1552
as libc::c_int;
1548
1553
mask_0 <<= lh4;
1549
1554
y += lh4;
@@ -1552,10 +1557,12 @@ unsafe extern "C" fn find_matching_ref(
1552
1557
}
1553
1558
if have_topleft != 0
1554
1559
&& ((*(*r.offset(-(1 as libc::c_int) as isize)).offset(((*t).bx - 1) as isize))
1560
+ .0
1555
1561
.r#ref
1556
1562
.r#ref[0] as libc::c_int
1557
1563
== r#ref + 1
1558
1564
&& (*(*r.offset(-(1 as libc::c_int) as isize)).offset(((*t).bx - 1) as isize))
1565
+ .0
1559
1566
.r#ref
1560
1567
.r#ref[1] as libc::c_int
1561
1568
== -(1 as libc::c_int))
@@ -1569,10 +1576,12 @@ unsafe extern "C" fn find_matching_ref(
1569
1576
}
1570
1577
if have_topright != 0
1571
1578
&& ((*(*r.offset(-(1 as libc::c_int) as isize)).offset(((*t).bx + bw4) as isize))
1579
+ .0
1572
1580
.r#ref
1573
1581
.r#ref[0] as libc::c_int
1574
1582
== r#ref + 1
1575
1583
&& (*(*r.offset(-(1 as libc::c_int) as isize)).offset(((*t).bx + bw4) as isize))
1584
+ .0
1576
1585
.r#ref
1577
1586
.r#ref[1] as libc::c_int
1578
1587
== -(1 as libc::c_int))
@@ -1602,13 +1611,13 @@ unsafe fn derive_warpmv(
1602
1611
1603
1612
let rp = |i: i32, j: i32| &*r(i as isize).offset(j as isize);
1604
1613
1605
- let bs = |rp: &refmvs_block| dav1d_block_dimensions[(*rp).bs as usize];
1614
+ let bs = |rp: &refmvs_block| dav1d_block_dimensions[(*rp).0. bs as usize];
1606
1615
1607
1616
let mut add_sample = |np: usize, dx: i32, dy: i32, sx: i32, sy: i32, rp: &refmvs_block| {
1608
1617
pts[np][0][0] = 16 * (2 * dx + sx * bs(rp)[0] as i32) - 8;
1609
1618
pts[np][0][1] = 16 * (2 * dy + sy * bs(rp)[1] as i32) - 8;
1610
- pts[np][1][0] = pts[np][0][0] + (*rp).mv.mv[0].x as i32;
1611
- pts[np][1][1] = pts[np][0][1] + (*rp).mv.mv[0].y as i32;
1619
+ pts[np][1][0] = pts[np][0][0] + (*rp).0. mv.mv[0].x as i32;
1620
+ pts[np][1][1] = pts[np][0][1] + (*rp).0. mv.mv[0].y as i32;
1612
1621
np + 1
1613
1622
};
1614
1623
@@ -2542,7 +2551,7 @@ unsafe extern "C" fn splat_oneref_mv(
2542
2551
) {
2543
2552
let mode: InterPredMode = (*b).c2rust_unnamed.c2rust_unnamed_0.inter_mode as InterPredMode;
2544
2553
let tmpl: Align16<refmvs_block> = {
2545
- let mut init = refmvs_block {
2554
+ let mut init = refmvs_block(refmvs_block_unaligned {
2546
2555
mv: refmvs_mvpair {
2547
2556
mv: [
2548
2557
(*b).c2rust_unnamed
@@ -2568,7 +2577,7 @@ unsafe extern "C" fn splat_oneref_mv(
2568
2577
&& imin(bw4, bh4) >= 2) as libc::c_int
2569
2578
| (mode as libc::c_uint == NEWMV as libc::c_int as libc::c_uint) as libc::c_int * 2)
2570
2579
as uint8_t,
2571
- };
2580
+ }) ;
2572
2581
Align16(init)
2573
2582
};
2574
2583
((*c).refmvs_dsp.splat_mv).expect("non-null function pointer")(
@@ -2591,7 +2600,7 @@ unsafe extern "C" fn splat_intrabc_mv(
2591
2600
bh4: libc::c_int,
2592
2601
) {
2593
2602
let tmpl: Align16<refmvs_block> = {
2594
- let mut init = refmvs_block {
2603
+ let mut init = refmvs_block(refmvs_block_unaligned {
2595
2604
mv: refmvs_mvpair {
2596
2605
mv: [
2597
2606
(*b).c2rust_unnamed
@@ -2607,7 +2616,7 @@ unsafe extern "C" fn splat_intrabc_mv(
2607
2616
},
2608
2617
bs: bs as uint8_t,
2609
2618
mf: 0 as libc::c_int as uint8_t,
2610
- };
2619
+ }) ;
2611
2620
Align16(init)
2612
2621
};
2613
2622
((*c).refmvs_dsp.splat_mv).expect("non-null function pointer")(
@@ -2635,7 +2644,7 @@ unsafe extern "C" fn splat_tworef_mv(
2635
2644
let mode: CompInterPredMode =
2636
2645
(*b).c2rust_unnamed.c2rust_unnamed_0.inter_mode as CompInterPredMode;
2637
2646
let tmpl: Align16<refmvs_block> = {
2638
- let mut init = refmvs_block {
2647
+ let mut init = refmvs_block(refmvs_block_unaligned {
2639
2648
mv: refmvs_mvpair {
2640
2649
mv: [
2641
2650
(*b).c2rust_unnamed
@@ -2662,7 +2671,7 @@ unsafe extern "C" fn splat_tworef_mv(
2662
2671
| ((1 as libc::c_int) << mode as libc::c_uint & 0xbc as libc::c_int != 0)
2663
2672
as libc::c_int
2664
2673
* 2) as uint8_t,
2665
- };
2674
+ }) ;
2666
2675
Align16(init)
2667
2676
};
2668
2677
((*c).refmvs_dsp.splat_mv).expect("non-null function pointer")(
@@ -2684,7 +2693,7 @@ unsafe extern "C" fn splat_intraref(
2684
2693
bh4: libc::c_int,
2685
2694
) {
2686
2695
let tmpl: Align16<refmvs_block> = {
2687
- let mut init = refmvs_block {
2696
+ let mut init = refmvs_block(refmvs_block_unaligned {
2688
2697
mv: refmvs_mvpair {
2689
2698
mv: [mv::INVALID, mv::ZERO],
2690
2699
},
@@ -2693,7 +2702,7 @@ unsafe extern "C" fn splat_intraref(
2693
2702
},
2694
2703
bs: bs as uint8_t,
2695
2704
mf: 0 as libc::c_int as uint8_t,
2696
- };
2705
+ }) ;
2697
2706
Align16(init)
2698
2707
};
2699
2708
((*c).refmvs_dsp.splat_mv).expect("non-null function pointer")(
@@ -2815,16 +2824,16 @@ unsafe fn obmc_lowest_px(
2815
2824
let mut x = 0;
2816
2825
while x < w4 && i < imin(b_dim[2] as libc::c_int, 4) {
2817
2826
let a_r = &*r[0].offset((t.bx + x + 1) as isize);
2818
- let a_b_dim = &dav1d_block_dimensions[a_r.bs as usize];
2819
- if a_r.r#ref.r#ref[0] as libc::c_int > 0 {
2827
+ let a_b_dim = &dav1d_block_dimensions[a_r.0. bs as usize];
2828
+ if a_r.0. r#ref.r#ref[0] as libc::c_int > 0 {
2820
2829
let oh4 = imin(b_dim[1] as libc::c_int, 16) >> 1;
2821
2830
mc_lowest_px(
2822
- &mut dst[a_r.r#ref.r#ref[0] as usize - 1][is_chroma as usize],
2831
+ &mut dst[a_r.0. r#ref.r#ref[0] as usize - 1][is_chroma as usize],
2823
2832
t.by,
2824
2833
oh4 * 3 + 3 >> 2,
2825
- a_r.mv.mv[0].y as libc::c_int,
2834
+ a_r.0. mv.mv[0].y as libc::c_int,
2826
2835
ss_ver,
2827
- &f.svc[a_r.r#ref.r#ref[0] as usize - 1][1],
2836
+ &f.svc[a_r.0. r#ref.r#ref[0] as usize - 1][1],
2828
2837
);
2829
2838
i += 1;
2830
2839
}
@@ -2836,16 +2845,16 @@ unsafe fn obmc_lowest_px(
2836
2845
let mut y = 0;
2837
2846
while y < h4 && i < imin(b_dim[3] as libc::c_int, 4) {
2838
2847
let l_r = &*r[y as usize + 1 + 1].offset((t.bx - 1) as isize);
2839
- let l_b_dim = &dav1d_block_dimensions[l_r.bs as usize];
2840
- if l_r.r#ref.r#ref[0] as libc::c_int > 0 {
2848
+ let l_b_dim = &dav1d_block_dimensions[l_r.0. bs as usize];
2849
+ if l_r.0. r#ref.r#ref[0] as libc::c_int > 0 {
2841
2850
let oh4 = iclip(l_b_dim[1] as libc::c_int, 2, b_dim[1] as libc::c_int);
2842
2851
mc_lowest_px(
2843
- &mut dst[l_r.r#ref.r#ref[0] as usize - 1][is_chroma as usize],
2852
+ &mut dst[l_r.0. r#ref.r#ref[0] as usize - 1][is_chroma as usize],
2844
2853
t.by + y,
2845
2854
oh4,
2846
- l_r.mv.mv[0].y as libc::c_int,
2855
+ l_r.0. mv.mv[0].y as libc::c_int,
2847
2856
ss_ver,
2848
- &f.svc[l_r.r#ref.r#ref[0] as usize - 1][1],
2857
+ &f.svc[l_r.0. r#ref.r#ref[0] as usize - 1][1],
2849
2858
);
2850
2859
i += 1;
2851
2860
}
@@ -2943,15 +2952,15 @@ unsafe fn decode_b(
2943
2952
t.rt.r[((t.by & 31) + 5 + bh4 - 1) as usize].offset(t.bx as isize);
2944
2953
for x in 0..bw4 {
2945
2954
let block = &mut *r.offset(x as isize);
2946
- block.r#ref.r#ref[0] = 0;
2947
- block.bs = bs as uint8_t;
2955
+ block.0. r#ref.r#ref[0] = 0;
2956
+ block.0. bs = bs as uint8_t;
2948
2957
}
2949
2958
2950
2959
let mut rr = &t.rt.r[((t.by & 31) + 5) as usize..];
2951
2960
for y in 0..bh4 - 1 {
2952
2961
let block = &mut *rr[y as usize].offset((t.bx + bw4 - 1) as isize);
2953
- block.r#ref.r#ref[0] = 0;
2954
- block.bs = bs as uint8_t;
2962
+ block.0. r#ref.r#ref[0] = 0;
2963
+ block.0. bs = bs as uint8_t;
2955
2964
}
2956
2965
}
2957
2966
@@ -3019,17 +3028,17 @@ unsafe fn decode_b(
3019
3028
let r: *mut refmvs_block =
3020
3029
t.rt.r[((t.by & 31) + 5 + bh4 - 1) as usize].offset(t.bx as isize);
3021
3030
for x in 0..bw4 as isize {
3022
- (*r.offset(x)).r#ref.r#ref[0] = b.r#ref()[0] + 1;
3023
- (*r.offset(x)).mv.mv[0] = b.mv()[0];
3024
- (*r.offset(x)).bs = bs as uint8_t;
3031
+ (*r.offset(x)).0. r#ref.r#ref[0] = b.r#ref()[0] + 1;
3032
+ (*r.offset(x)).0. mv.mv[0] = b.mv()[0];
3033
+ (*r.offset(x)).0. bs = bs as uint8_t;
3025
3034
}
3026
3035
3027
3036
let mut rr: &[*mut refmvs_block] = &t.rt.r[((t.by & 31) + 5) as usize..];
3028
3037
for y in 0..bh4 as usize - 1 {
3029
3038
let r = &mut *rr[y].offset((t.bx + bw4 - 1) as isize);
3030
- r.r#ref.r#ref[0] = b.r#ref()[0] + 1;
3031
- r.mv.mv[0] = b.mv()[0];
3032
- r.bs = bs as uint8_t;
3039
+ r.0. r#ref.r#ref[0] = b.r#ref()[0] + 1;
3040
+ r.0. mv.mv[0] = b.mv()[0];
3041
+ r.0. bs = bs as uint8_t;
3033
3042
}
3034
3043
}
3035
3044
@@ -6811,20 +6820,24 @@ unsafe fn decode_b(
6811
6820
r_1 = &mut *(t.rt.r).as_mut_ptr().offset(((t.by & 31) + 5) as isize)
6812
6821
as *mut *mut refmvs_block;
6813
6822
if bw4 == 1 {
6814
- is_sub8x8 &= ((*(*r_1.offset(0)).offset((t.bx - 1) as isize)).r#ref.r#ref[0]
6815
- as libc::c_int
6823
+ is_sub8x8 &= ((*(*r_1.offset(0)).offset((t.bx - 1) as isize))
6824
+ .0
6825
+ .r#ref
6826
+ .r#ref[0] as libc::c_int
6816
6827
> 0) as libc::c_int;
6817
6828
}
6818
6829
if bh4 == ss_ver {
6819
6830
is_sub8x8 &= ((*(*r_1.offset(-(1 as libc::c_int) as isize))
6820
6831
.offset(t.bx as isize))
6832
+ .0
6821
6833
.r#ref
6822
6834
.r#ref[0] as libc::c_int
6823
6835
> 0) as libc::c_int;
6824
6836
}
6825
6837
if bw4 == 1 && bh4 == ss_ver {
6826
6838
is_sub8x8 &= ((*(*r_1.offset(-(1 as libc::c_int) as isize))
6827
6839
.offset((t.bx - 1) as isize))
6840
+ .0
6828
6841
.r#ref
6829
6842
.r#ref[0] as libc::c_int
6830
6843
> 0) as libc::c_int;
@@ -6840,13 +6853,13 @@ unsafe fn decode_b(
6840
6853
.offset((t.bx - 1) as isize)
6841
6854
as *mut refmvs_block;
6842
6855
mc_lowest_px(
6843
- &mut lowest_px[(*rr_1).r#ref.r#ref[0] as usize - 1][1],
6856
+ &mut lowest_px[(*rr_1).0. r#ref.r#ref[0] as usize - 1][1],
6844
6857
t.by - 1,
6845
6858
bh4,
6846
- (*rr_1).mv.mv[0].y as libc::c_int,
6859
+ (*rr_1).0. mv.mv[0].y as libc::c_int,
6847
6860
ss_ver,
6848
6861
&*(*(f.svc).as_ptr().offset(
6849
- (*((*rr_1).r#ref.r#ref).as_ptr().offset(0) as libc::c_int - 1)
6862
+ (*((*rr_1).0. r#ref.r#ref).as_ptr().offset(0) as libc::c_int - 1)
6850
6863
as isize,
6851
6864
))
6852
6865
.as_ptr()
@@ -6857,13 +6870,13 @@ unsafe fn decode_b(
6857
6870
let rr_2: *const refmvs_block =
6858
6871
&mut *(*r_1.offset(0)).offset((t.bx - 1) as isize) as *mut refmvs_block;
6859
6872
mc_lowest_px(
6860
- &mut lowest_px[(*rr_2).r#ref.r#ref[0] as usize - 1][1],
6873
+ &mut lowest_px[(*rr_2).0. r#ref.r#ref[0] as usize - 1][1],
6861
6874
t.by,
6862
6875
bh4,
6863
- (*rr_2).mv.mv[0].y as libc::c_int,
6876
+ (*rr_2).0. mv.mv[0].y as libc::c_int,
6864
6877
ss_ver,
6865
6878
&*(*(f.svc).as_ptr().offset(
6866
- (*((*rr_2).r#ref.r#ref).as_ptr().offset(0) as libc::c_int - 1)
6879
+ (*((*rr_2).0. r#ref.r#ref).as_ptr().offset(0) as libc::c_int - 1)
6867
6880
as isize,
6868
6881
))
6869
6882
.as_ptr()
@@ -6875,13 +6888,13 @@ unsafe fn decode_b(
6875
6888
&mut *(*r_1.offset(-(1 as libc::c_int) as isize)).offset(t.bx as isize)
6876
6889
as *mut refmvs_block;
6877
6890
mc_lowest_px(
6878
- &mut lowest_px[(*rr_3).r#ref.r#ref[0] as usize - 1][1],
6891
+ &mut lowest_px[(*rr_3).0. r#ref.r#ref[0] as usize - 1][1],
6879
6892
t.by - 1,
6880
6893
bh4,
6881
- (*rr_3).mv.mv[0].y as libc::c_int,
6894
+ (*rr_3).0. mv.mv[0].y as libc::c_int,
6882
6895
ss_ver,
6883
6896
&*(*(f.svc).as_ptr().offset(
6884
- (*((*rr_3).r#ref.r#ref).as_ptr().offset(0) as libc::c_int - 1)
6897
+ (*((*rr_3).0. r#ref.r#ref).as_ptr().offset(0) as libc::c_int - 1)
6885
6898
as isize,
6886
6899
))
6887
6900
.as_ptr()
0 commit comments