Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/nova-video-player/aos-libyuv


https://github.com/nova-video-player/aos-libyuv

HammingDistance_SSE42 register optimized to avoid push

Bug: libyuv:701
Test: objdump to confirm code gen
Change-Id: Ibdcb2cc6bc9bf14b4ccb874c49fc9ff664...

de8e9ae10b64fbece88e7973de6ff406b53e9d2a authored over 7 years ago
clang-format fixes

Bug: None
Test: lint passes
Change-Id: I1fd40d3506bab1f4f9100902f633a9c9e7b96337
Reviewed-on: ht...

ffc4811863fb9e329d676946f1f23f3dc841f5fa authored over 7 years ago
HammingDistance_X86 using popcnt assembly

popcnt has a fake dependency on the destination.
This assembly avoids the dependency by using a ...

80077a80c25a9623a800006c97ebe67daf89ba60 authored over 7 years ago
Add test programs to Android.bp

Bug: libyuv:746
Test: mm cpuid yuvconvert compare psnr libyuv_unittest
Change-Id: I08f6d5b519151...

3e5bbea5bfecfdb233e23aec6fd188c643c3ad53 authored over 7 years ago
cpuid util fix for build warning

Bug: libyuv:747
Test: mm cpuid under android builds
Change-Id: I7fff13006b47a59873f29f8992bb3faf...

af37f9c1d33d36278332d110f541d7b5d291279a authored over 7 years ago
Add Android.bp build file for Android master

Bug: libyuv:746
Test: mm from android repo
Change-Id: I7c124acfacc87cc263b19483cea79a63084f3f96
...

e4aa6aad485b598eecb48b3cfe709b3af90ce545 authored over 7 years ago
mingw fix ifdefs to use gcc source

mingw gcc sets the macro _M_IX86 which is normally only set
by Visual C and clangcl which are Vi...

8fa02df3c0591754958a50cc2896aafae319f3bc authored over 7 years ago
Remove Rietveld CQ config.

Rietveld CQ has already been disabled and is no longer supoorted.

[email protected]

No...

15d48f1e83c1367543cf9cc2642206bd417747f6 authored over 7 years ago
TestHammingDistance_Opt to test low level matches C reference.

The low level hamming distance functions have size limitations
based on counter sizes. The high...

1cebe2c622c22d579f5cc85306a1c263ac4b6bcd authored over 7 years ago
Reduce HammingDistance block size to 32k to avoid overflow

Bug: libyuv:701
Test: HammingDistance unittest with large size
Change-Id: Id41a2c27eb8922d03b3a2...

e23b27d040f6b1d63ddc76dbd5bd0f3b51b8ee80 authored over 7 years ago
Revert "ComputeHammingDistance reduce SIMD loop to 1 call when possible."

This reverts commit ec75df5894845b8d6b1341885a78db1de83decd8.

Reason for revert: <INSERT REASON...

60f433fbd9f8f4832ee9947a582e7d2b70a5d415 authored over 7 years ago
ComputeHammingDistance reduce SIMD loop to 1 call when possible.

32 bit x86 has high overhead due to -fpic. So this reduces the
number of calls by 1.

TBR=kjell...

ec75df5894845b8d6b1341885a78db1de83decd8 authored over 7 years ago
kjellander -> phoglund in OWNERS

[email protected]

Bug:libyuv:741
Change-Id: I6bc18e94ec82e00518f34695cf3b97deed82c76d
R...

b7b53742631f1e82572720385e3f2ab5e8d3bb5d authored over 7 years ago
Fix odd length HammingDistance

If length of HammingDistance was not a multiple of 4,
the result was incorrect. The old tests d...

1734712a6faea21f867acca4eddc64ac26d55333 authored over 7 years ago
Port HammingDistance to SSSE3

Bug: libyuv:701
Test: BenchmarkHammingDistance_Opt
Change-Id: Ibdd5d382677ebef4f82a62e0d5c3b8861...

fecd741794c50a18c5b04dd72b1217a670c747d4 authored over 7 years ago
Hamming Distance SSE2 and AVX2 optimized

Bug: None
Test: None
Change-Id: Id52663f9c957aac3172fba92d888ad1b041d5cf0
Reviewed-on: https://c...

bde789b1763af8021c4d295d80e8fd2d27ffc019 authored over 7 years ago
CopyRow_NEON use ldp instead of ld1 for better performance.

Under cache thrashing circumstances, ldp/stp perform better than
ld1/st1 on QC820/QC821 CPUs. S...

311add63c2e73cf50cc0e89cf94ebf3fc5632560 authored over 7 years ago
add TestCopySamples_Opt unittest as reference for TestScaleSamples_Opt

TestScaleSamples_Opt can be slow on ARM if the size of the buffer is 1 MB.
This test does a memc...

ccd6d6fc578ae2bcb86d5a2db309ba87806fcb21 authored over 7 years ago
Remove kjellander@ and torbjorng@ from OWNERS.

torbjorng@ has left Google and kjellander@ will in a month.
Replacing remaining ownership (after...

a49fb674e1fce9594be79071f3aaf960933b7aa5 authored over 7 years ago
Roll chromium_revision 9e319197e5..ff3b31782d (502732:503850)

Change log: https://chromium.googlesource.com/chromium/src/+log/9e319197e5..ff3b31782d
Full diff...

065217cb9ad91ad1c954b38301d423c37d6d41b5 authored over 7 years ago
Change TestScaleSumSamples_C test to allow for some float error in sum.

The sum of floats can optimize differently with vectorization, producing
a different result betw...

0b0a891cb29384bc8cd74df3019ff1b8d41d3e6a authored over 7 years ago
Step thru full color test by increments of 5 for better test speed.

Full color test is the slowest of the unittests, and not catching any
additional bugs at the mom...

efbf15754a1efb8e378b1873eb213d5c8931a3ba authored over 7 years ago
Roll chromium_revision 3a3410e0eb..9e319197e5 (502042:502732)

Change log: https://chromium.googlesource.com/chromium/src/+log/3a3410e0eb..9e319197e5
Full diff...

3886069dc96cfb3ebd39c11befebb196382eed61 authored over 7 years ago
Suppress UBsan infinite recursion error.

UBsan goes into an infinite recursion when __dynamic_cast instrumented with
"vptr". See crbug.co...

5b1af9a33545895ea12c52bf007f17914de19173 authored over 7 years ago
Cast xgetbv from int64 to int to avoid Visual C warning.

[email protected]
Bug: libyuv:735
Test: try bots
Change-Id: I00dc06689cd0a23847865c0c8...

00c501fe4351ed09edb9fc4cb57d6dae63020a6f authored over 7 years ago
Override compiler to c++11

gcc 4.8 does not support c++14 so override the default
c++14 that chromium is now set to.

TBR=k...

7f4caafd9acb4c1e97430bd402b2e877e9ef501b authored over 7 years ago
Suppress gtest leak for memcheck

BUG=libyuv:729
[email protected]
NOTRY=True

Change-Id: Ica6bbdd5ff3112813fde61f9b335fd...

dd972e86592e363cd42604c5b3667b8a4abd7853 authored over 7 years ago
Roll chromium_revision e0c00467d6..3a3410e0eb (501048:502042)

Change log: https://chromium.googlesource.com/chromium/src/+log/e0c00467d6..3a3410e0eb
Full diff...

dfc8840639ae2453cbce694d45ec04ac70aba9c2 authored over 7 years ago
fix clang-format-ing for row arm functions

[email protected]
BUG=None
TEST=git cl lint

Change-Id: I45ecd7f8279981ba037dc051f521f...

0a3d23c8989a840ebc73d803242938fe47b48d7e authored over 7 years ago
fix fmov build error on gcc 4.7 for neon64

[email protected]
BUG=libyuv:732
TEST=LibYUVPlanarTest.TestScaleSumSamples_Opt

Change...

753a91cbcb3b2e3f8e6734215b8f724a1f1b511f authored over 7 years ago
Update msan instructions to show release build

The current documentation shows a debug build.
When you attempt that an assert is triggered sugg...

831da079eb0c2dc41b7f04afe291caf48b80101a authored over 7 years ago
Add MaskCpuFlags(benchmark_cpu_info_) to unittest initialization

When command line --libyuv_cpu_info is used the individual tests
used to need to set the cpumask...

80e27fc74710c8691e58958ee8c1a9f8f6b772c3 authored over 7 years ago
Roll chromium_revision 21e78fbe27..e0c00467d6 (500243:501048)

Change log: https://chromium.googlesource.com/chromium/src/+log/21e78fbe27..e0c00467d6
Full diff...

6e80fc10ab7d5fe6b4fab9dd1ef36e5aebfcd3ed authored over 7 years ago
Gauss unittest reduce buffer sizes on stack

Reduce buffers for test to 640 from 1280 to avoid
bit stack warning.

[email protected]...

1200ef4a3794fa6589c9bef8ec587f0609af7e09 authored over 7 years ago
SplitRGBPlane and MergeRGBPlane functions added

Converts packed RGB to planar and back.

[email protected]
BUG=libyuv:728
TEST=MergeRG...

1e16cb5c386b42dc831b3f897d291a764ea5f63f authored over 7 years ago
enable MSA for clang

clang version 6.0.0 (trunk 310694) is able to compile MSA code.
Previous versions had an issue w...

367c0d8f81a1e26b3349cf71c328518b0fa71a53 authored over 7 years ago
CQ: Remove android_clang as default trybot

Android has been building with Clang by default for quite some
time since the NDK has deprecated...

9c2748c7d0cc2807705d9a37032445de0413e7b4 authored over 7 years ago
Roll chromium_revision da6245e7c4..21e78fbe27 (488751:500243) + fix DEPS

Manually change DEPS URL for src/tools/swarming_client to match Chromium
Similar to https://chro...

a67c93eeb83f788842444ec13196c43a8b5378e6 authored over 7 years ago
Add psutil to vpython dependencies (used on builder bots)

This is copied from https://chromium-review.googlesource.com/639357
and should solve the psutil ...

50e4465cb4de6cb15292f2ec47f2568d31b0b9da authored over 7 years ago
ScaleRowUp2_16_C port of NEON to C

Single pass upsample with bilinear filter.
NEON version optimized - Pixel Sailfish QC821

Was Te...

8f5e9cd9ebc76c39155c48e8420fe76ef7cac185 authored over 7 years ago
Add MSA optimized HammingDistance and SumSquareError functions

[email protected]
[email protected]

Bug:libyuv:634
Change-Id: Id0126ba5aff388175...

2621c91bf1e138a88cb869b195cdbe0c9dfcdd6d authored over 7 years ago
clang format / lint cleanup for arm scale functions

[email protected]
BUG=libyuv:725
TEST=lint

Change-Id: I76f777427f9b1458faba12796fb001...

0acc67712f336cfebf40d871664578b1616ac09c authored over 7 years ago
ARGBScaleDown by 2 with nearest neighbor optimized

[email protected]
BUG=libyuv:723
TEST=ScaleDownBy2_None

Change-Id: I6861e62d3a67dde91...

a826dd7112e2046a7faa12334bd0e1e738a7fa57 authored over 7 years ago
Scale down by 2 linear use 'half add' to average pixels.

Use ld2 to load even and odd pixels into different registers
and hadd to half add them to each o...

1c85f988461c23a2c1dd914f577c9f4fb3092fa9 authored over 7 years ago
Scale Down by 2 use ld2 and urhadd

urhadd is a rounded average. Linear filter wants to average
horizontally, so use ld2 to separat...

e200738d824fb84610c01e26a21c97d87e5a4dff authored over 7 years ago
Add MSA optimized HalfFloatRow function

[email protected]
[email protected]

Bug:libyuv:634
Change-Id: I54a2c57d66093b887...

b6e8e9aa9726737859bab0226d8f7779afef0043 authored over 7 years ago
Gaussian reorder for benefit of A73

Roughly. instead of 4 loads and 8 multiples, use 1 load and 2 multiples
4 times over. The origi...

f0a9d6d206b6b54b544e8ef4766e595a1ba533ff authored over 7 years ago
GaussRow_NEON from int to short

[ RUN ] LibYUVPlanarTest.TestGaussRow_Opt
[ OK ] LibYUVPlanarTest.TestGaussRow_Opt ...

ad2409443ce97e05a6f3801e7f9f77032bc7b5da authored over 7 years ago
GaussCol_NEON resample from short to int

Old NEON
LibYUVPlanarTest.TestGaussCol_Opt (916 ms)

New NEON
LibYUVPlanarTest.TestGaussCol_Opt ...

1cc539f7d6c5c3e500880b10c2bce2561706b43a authored over 7 years ago
Gauss unittest, Scale comments for neon64 half size updated

[ RUN ] LibYUVPlanarTest.TestGaussRow_Opt
[ OK ] LibYUVPlanarTest.TestGaussRow_Opt (1...

c5bad809b19031a5288b0c7bb1923de931ab29f8 authored over 7 years ago
Gaussian blur NEON optimized

[email protected]
BUG=libyuv:719
TEST=TestGaussCol_NEON

Change-Id: I52cb6dbfd0cab4a30...

0c957d183e3e09f5fc324e95931f9bbc4daa02e5 authored over 7 years ago
Add MSA optimized ScaleFilterCols, ScaleARGBCols, ScaleARGBFilterCols and ScaleRowDown34 functions

[email protected]
[email protected]

Bug:libyuv:634
Change-Id: Ib139b9701fc67e24d...

8cd3e4f3f221d4516bc0473872e0cfd466126cc0 authored over 7 years ago
Add MSA optimized SplitUV, Set, MirrorUV, SobelX and SobelY row functions.

[email protected]
[email protected]

Bug:libyuv:634
Change-Id: Ie2342f841f1bb8469...

78e44628c61977523dd6ddc94e2f668cfc8f1efe authored over 7 years ago
Test C vs NEON for ScaleDown2Box_16

[email protected]
BUG=libyuv:718
TEST=LibYUVScaleTest.TestScaleRowDown2Box_16

Change-...

bb17da97cfa31c69800d0e3182b183d6c67dc763 authored over 7 years ago
Upsample 8x2 pixels to 16x1 with bilinear filtering

Downsample 16x2 to 8x1 with box filtering

[ RUN ] LibYUVScaleTest.TestScaleRowUp2_16
[ ...

7e59ee4c759ca4bb5f1ce5f80cc613b4ae0cea0c authored over 7 years ago
Fix Valgrind by restoring scripts deleted in Chroium.

Copy Valgrind scripts that was deleted from Chromium's tools/ to fix the Memcheck bot:
valgr...

9508c3e70b0e38dbf1364ec5f55d5ca10971264e authored over 7 years ago
Fix autoroller in accordance to upstream change

This change broke libyuv's presubmit: https://chromium.googlesource.com/chromium/tools/depot_too...

9079966fca97bd060d91a24ba29ffa6a148c8fca authored over 7 years ago
Reintroduce the max version of scale

add ScaleMaxSamples_NEON function with max
done on original values.

[email protected]...

56bbcdf42207008d63f0ae4b9b3b014ed0741d08 authored over 7 years ago
Add MSA optimized ARGBExtractAlpha, ARGBBlend, ARGBQuantize and ARGBColorMatrix row functions

[email protected]
[email protected]

Bug:libyuv:634
Change-Id: I17bd3f87336f613ad...

dbd7c1a9c5ddebe0143775c24b1f53d886ed5e97 authored over 7 years ago
Change ScaleSumSamples to return Sum of Squares

[email protected]
BUG=libyuv:717
TEST=LibYUVPlanarTest.TestScaleSumSamples_Opt

Change...

83ca1abe09207daae1628fd8f0d4a0debaef96c6 authored over 7 years ago
scale float samples and return max value

BUG=libyuv:717
TEST=ScaleSum unittest to compare C vs Arm implementation
TBR=kjellander@chromium...

8676ad7004fbe86a855923938e4db6a83fe40b91 authored over 7 years ago
Revert "include <new> header for benefit of new clang builds"

This reverts commit 1dda4cb0b7bd564e646d6ec2efee497fcd7146ca.

Reason for revert: build error on...

27036e33e86c9ce3b5087d55c18bf04964343c60 authored over 7 years ago
clang 6 build disable some msa functions

[email protected]

Bug: libyuv:715
Test: gn gen out/Release "--args=is_debug=false targe...

6d083e2d120e3c8635f34b4e82afef6252b7d399 authored over 7 years ago
add 'From': GClientKeywords.FromImpl to autoroll

Take change from webrtc into libyuv autoroll
BUG=libyuv:716
TEST=tools_libyuv/autoroller/roll_de...

cd2f88665fbf9e2366258dd5c06448e29d9a760a authored over 7 years ago
Remove invalid suggestion from roll_deps.py error message.

BUG=libyuv:710
NOTRY=True

Change-Id: I47c80980a6ed8bcfc247e75f3936f028576a6c5a
Reviewed-on: htt...

cedb31c6ca9fd635db80848ba19a13fbf730397a authored over 7 years ago
completing readme

aea50706166742d601ce6170c9ae5cdf0a2be6ff authored over 7 years ago
win: Rename clang_x64 to win_clang_x64 in build/toolchain/win, step 4/5.

In cross builds of chrome/win, the host and target toolchains currently
have the same name. To ...

56022ef77fab3ce5a7c8ee44bd095c22a94bff5b authored over 7 years ago
win: Rename clang_x64 to win_clang_x64 in build/toolchain/win, step 2/5.

In cross builds of chrome/win, the host and target toolchains currently
have the same name. To ...

58d3392ad3ffec144c1639e2370e4f30ce046ed9 authored over 7 years ago
Roll chromium_revision c138801d02..da6245e7c4 (487352:488751)

Change log: https://chromium.googlesource.com/chromium/src/+log/c138801d02..da6245e7c4
Full diff...

fba90197f7d3e6e65ce2ec609d73a08f187bf800 authored over 7 years ago
Rename convert to yuvconvert for linux.mk

[email protected]
BUG=None
TEST=make -f linux.mk

Change-Id: I747c2eb6ed03cacddf3265e6...

d8136924bd0bef0cf39ef379d03196950ce58418 authored over 7 years ago
ignore built libraries

ddb14c8c3334dd789acb173f06906988ea9a363c authored over 7 years ago
Remove deprecated macOS SDK overrides.

The same overrides now live in .gn.

[email protected]
Bug:chromium:669240
Change-Id: ...

5f00523073995416859f58b43e83dd66e2078104 authored over 7 years ago
add exe_and_shlib_deps dependency for libc++ new[]

[email protected]
BUG=libyuv:712
TEST=libyuv try bots build

Change-Id: Ibe2ff9ac557d5...

d0ed025447622c570a76bcf2ac88c30209c780a0 authored over 7 years ago
Roll chromium_revision 964fc7fe50..c138801d02 (478724:487352)

Change log: https://chromium.googlesource.com/chromium/src/+log/964fc7fe50..c138801d02
Full diff...

9288b884b6f23cbcb4eda33bf638ae4f198b7af3 authored over 7 years ago
include <new> header for benefit of new clang builds

[email protected]
BUG=libyuv:712
TEST=local builds still work

Change-Id: I040e8edc40a...

1dda4cb0b7bd564e646d6ec2efee497fcd7146ca authored over 7 years ago
Update .gn to set a min SDK for macOS via GN.

Currently, libyuv is setting this config via mac_sdk_min_build_override. The old
meechanism is d...

95a20b677d626bd21f5bf3df2e94482bb7630336 authored over 7 years ago
make jpeg dep opt-in, not opt-out

0a272b58bf3d7778a47b0df526712c582f50b501 authored over 7 years ago
Merge remote-tracking branch 'google/master'

d29e7396519aeed2b77b7a3349a01f43083af142 authored over 7 years ago
Move compare functions into a unittest class

BUG=None
TEST=LibYUVCompareTest.*
[email protected]

Change-Id: I3131ca73020f855ead08255...

db25485ee267805dd657a21db4cad186fa8b1a58 authored over 7 years ago
Roll chromium_revision ce95e5d83f..964fc7fe50 (465389:478724)

Manual changes:
* Add new third_party/googletest (replaces testing/gtest and testing/gmock).
* A...

9e920b9c4deb8c9aec93b13220a39d4e3f6895ee authored over 7 years ago
Remove ARM NaCL macros from source

NaCL has been disabled for awhile, so the code
will still build, but only with C versions.
This ...

6c94ad13b520b2eb8e27a94e81e5ed36a4750e3a authored over 7 years ago
Lint fix for C casting for rotation code on arm

instead of casting int to int64, pass the int
and use %w modifier to use the word version of the...

5f94a33e0c371381dee1eb2daf4ad686f0cb9692 authored over 7 years ago
Hamming Distance using 16 bit accumulators

Summing 16 bit hamming codes restricts the maximum length,
but saves an inner loop instruction. ...

d981495b4207d2c079dbbf690788858c17e145bb authored over 7 years ago
Port HammingDistance_NEON 32 bit code to 64 bit

The 32 bit version of HammingDistance_NEON accumulates
using vertical add and paired adds, which...

790e0634a8a974cdc4721e5de34a06dc4961f7fa authored over 7 years ago
HammingDistance_NEON optimized looping

BenchmarkHammingDistance_Opt (93 ms)
BenchmarkHammingDistance_C (389 ms)

TBR=kjellander@chromiu...

47d6eaa37771b02d4fc8b8cd75dabe384f350a97 authored over 7 years ago
HammingDistance_NEON ported to 32 bit

[email protected]
BUG=libyuv:701
TEST=BenchmarkHammingDistance

Change-Id: I252efd8a27...

baf5248242e812ec173a785caad5238ab3c89a4a authored over 7 years ago
ScaleDown odd functions adjust math so last pixel is half width source.

existing test passes
out/Release/libyuv_unittest --gtest_filter=*Blend* --libyuv_width=33 --liby...

44abf701871586692c43e1eb2959a3bda953f805 authored over 7 years ago
Remove duplicated bot linux_msan in cq.cfg.

BUG=None
[email protected]

Change-Id: Id665a052c0f164ca58ee317ff2cb065c6a67da77
Review...

b97406775c518055b64e8f167e985272db031a74 authored over 7 years ago
lint warning fixes for CpuID

The CpuId function is a wrapper for the intrinsic, or
implemented with inline if unavailable. I...

7bffe5e1c54bc22daebd57003735e61693719ac6 authored over 7 years ago
Update autoroller after FromImpl was removed from depot tools

In https://chromium-review.googlesource.com/c/509693/ the From
keyword was removed. This update ...

ae7e2ef13ed464545a153321f377e71be9b38724 authored over 7 years ago
MaskCpuFlags return cpuinfo so InitCpuFlags can call it

Reduce number of atomic references to cpu_info by making
InitCpuFlags call MaskCpuFlags and retu...

8edd2286fdf9df2b9da806bda7ed262492f95921 authored over 7 years ago
Fix data races in libyuv::TestCpuFlag().

Detect the compiler's support of C11 atomics, and use C11 atomics when
available.

Note that lib...

651ccc0c3a3f507b8ab0895e4ba018b9a6dedbfa authored over 7 years ago
use __popcnt for visual c HammingDistance_X86

BUG=libyuv:701
TEST=HammingDistance unittest performance is comparable to x64
R=wangcheng@google...

77f6916da2ebc16ad441c8dbeb8a73b0d3a150df authored almost 8 years ago
Optimize Hamming Distance C code to do 64 bits at a time.

BUG=libyuv:701
TEST=LibYUVBaseTest.BenchmarkHammingDistance_C
[email protected]

Change-Id:...

e0615c0e691625b61e4dc0c745210d8d2945352c authored almost 8 years ago
Remove volatile from variables to improve performance

BUG=libyuv:703
TEST=compile and disassemble. see registers used not stack.
[email protected]...

bbbf30eecde6b0285bba857042cec242422ae414 authored almost 8 years ago
Hamming code difference of 2 memory blocks

BUG=libyuv:701
TEST=built and disassembled for aarch64
[email protected]

Change-Id: I77...

2136e349da89ed622508f5ea26a3a4a969d05028 authored almost 8 years ago
mips switch sgtu to sltu for clang in ndk r14

The verion of clang in ndk r14 (3.9) has a built in llvm assembler
that does not have the sgtu p...

945ea1b7463004581502ebbcfc5a0b2f54ff6867 authored almost 8 years ago
Fix mips build on android ndk r14+

Revert the workaround and fix it properly by passing the
additional necessary flag to the compil...

54289f1bb0c78afdab73839c67989527f3237912 authored almost 8 years ago
Disable CopyRow_MIPS

CopyRow_MIPS produces a compile error on some compilers.

[email protected]
BUG=libyuv...

3b583396bf138334e90e06ad901f73589a929474 authored almost 8 years ago
Avoid double compiles of libjpeg

When libyuv was changed to compile with clang-cl this also cause libjpeg
to be compiled with cla...

996a2bbdb5f74a834c1ed5c7f41e916a9fcad3a2 authored almost 8 years ago