various: replace dead links in comments

Replace various dead links with live replacements or archives.
Less friction for anyone who wants to look up these references.
This commit is contained in:
nanahi 2024-02-08 04:51:33 -05:00 committed by Dudemanguy
parent 86e0882733
commit 71598ca07e
7 changed files with 17 additions and 13 deletions

View File

@ -48,8 +48,8 @@ static const char *lookup_tag(int type, uint32_t tag)
/* /*
* As seen in the following page: * As seen in the following page:
* *
* https://web.archive.org/web/20220406060153/ * <https://web.archive.org/web/20220406060153/
* http://dream.cs.bath.ac.uk/researchdev/wave-ex/bformat.html * http://dream.cs.bath.ac.uk/researchdev/wave-ex/bformat.html>
* *
* Note that the GUID struct in the above citation has its * Note that the GUID struct in the above citation has its
* integers encoded in little-endian format, which means that * integers encoded in little-endian format, which means that

View File

@ -28,7 +28,7 @@ struct waiter {
* of _all_ waiters in the process, and temporarily wakes up _all_ waiters on * of _all_ waiters in the process, and temporarily wakes up _all_ waiters on
* each second call). * each second call).
* *
* This is inspired by: http://9atom.org/magic/man2html/2/rendezvous */ * This is inspired by: https://man.cat-v.org/plan_9/2/rendezvous */
intptr_t mp_rendezvous(void *tag, intptr_t value) intptr_t mp_rendezvous(void *tag, intptr_t value)
{ {
struct waiter wait = { .tag = tag, .value = &value }; struct waiter wait = { .tag = tag, .value = &value };

View File

@ -377,7 +377,8 @@ void mp_subprocess2(struct mp_subprocess_opts *opts,
// Get pointers to the arrays in lpReserved2. This is an undocumented data // Get pointers to the arrays in lpReserved2. This is an undocumented data
// structure used by MSVCRT (and other frameworks and runtimes) to emulate // structure used by MSVCRT (and other frameworks and runtimes) to emulate
// FD inheritance. The format is unofficially documented here: // FD inheritance. The format is unofficially documented here:
// https://www.catch22.net/tuts/undocumented-createprocess // <https://web.archive.org/web/20221014190010/
// https://www.catch22.net/tuts/undocumented-createprocess>
si.StartupInfo.cbReserved2 = sizeof(int) + crt_fd_count * (1 + sizeof(intptr_t)); si.StartupInfo.cbReserved2 = sizeof(int) + crt_fd_count * (1 + sizeof(intptr_t));
si.StartupInfo.lpReserved2 = talloc_size(tmp, si.StartupInfo.cbReserved2); si.StartupInfo.lpReserved2 = talloc_size(tmp, si.StartupInfo.cbReserved2);
char *crt_buf_flags = si.StartupInfo.lpReserved2 + sizeof(int); char *crt_buf_flags = si.StartupInfo.lpReserved2 + sizeof(int);
@ -402,7 +403,8 @@ void mp_subprocess2(struct mp_subprocess_opts *opts,
// Specify which handles are inherited by the subprocess. If this isn't // Specify which handles are inherited by the subprocess. If this isn't
// specified, the subprocess inherits all inheritable handles, which could // specified, the subprocess inherits all inheritable handles, which could
// include handles created by other threads. See: // include handles created by other threads. See:
// http://blogs.msdn.com/b/oldnewthing/archive/2011/12/16/10248328.aspx // <https://web.archive.org/web/20121127222200/
// http://blogs.msdn.com/b/oldnewthing/archive/2011/12/16/10248328.aspx>
si.lpAttributeList = create_handle_list(tmp, share_hndls, share_hndl_count); si.lpAttributeList = create_handle_list(tmp, share_hndls, share_hndl_count);
// If we have a console, the subprocess will automatically attach to it so // If we have a console, the subprocess will automatically attach to it so

View File

@ -5,10 +5,10 @@
* (https://github.com/glumpy/glumpy/blob/master/glumpy/library/build-spatial-filters.py) * (https://github.com/glumpy/glumpy/blob/master/glumpy/library/build-spatial-filters.py)
* *
* Also see: * Also see:
* - http://vector-agg.cvs.sourceforge.net/viewvc/vector-agg/agg-2.5/include/agg_image_filters.h * - https://sourceforge.net/p/agg/svn/HEAD/tree/agg-2.4/include/agg_image_filters.h
* - Vapoursynth plugin fmtconv (WTFPL Licensed), which is based on * - Vapoursynth plugin fmtconv (WTFPL Licensed), which is based on
* dither plugin for avisynth from the same author: * dither plugin for avisynth from the same author:
* https://github.com/vapoursynth/fmtconv/tree/master/src/fmtc * https://gitlab.com/EleonoreMizo/fmtconv/-/tree/master/src/fmtc
* - Paul Heckbert's "zoom" * - Paul Heckbert's "zoom"
* - XBMC: ConvolutionKernels.cpp etc. * - XBMC: ConvolutionKernels.cpp etc.
* *

View File

@ -227,7 +227,8 @@ void pass_error_diffusion(struct gl_shader_cache *sc,
} }
// Different kernels for error diffusion. // Different kernels for error diffusion.
// Patterns are from http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT // Patterns are from <https://web.archive.org/web/20181031005427/
// http://www.efg2.com/Lab/Library/ImageProcessing/DHALF.TXT>
const struct error_diffusion_kernel mp_error_diffusion_kernels[] = { const struct error_diffusion_kernel mp_error_diffusion_kernels[] = {
{ {
.name = "simple", .name = "simple",

View File

@ -254,7 +254,7 @@ void pass_compute_polar(struct gl_shader_cache *sc, struct scaler *scaler,
static void bicubic_calcweights(struct gl_shader_cache *sc, const char *t, const char *s) static void bicubic_calcweights(struct gl_shader_cache *sc, const char *t, const char *s)
{ {
// Explanation of how bicubic scaling with only 4 texel fetches is done: // Explanation of how bicubic scaling with only 4 texel fetches is done:
// http://www.mate.tue.nl/mate/pdfs/10318.pdf // <https://web.archive.org/web/20180720154854/http://www.mate.tue.nl/mate/pdfs/10318.pdf>
// 'Efficient GPU-Based Texture Interpolation using Uniform B-Splines' // 'Efficient GPU-Based Texture Interpolation using Uniform B-Splines'
// Explanation why this algorithm normally always blurs, even with unit // Explanation why this algorithm normally always blurs, even with unit
// scaling: // scaling:

View File

@ -347,8 +347,8 @@ static void clear_keyboard_buffer(void)
// Use the method suggested by Michael Kaplan to clear any pending dead // Use the method suggested by Michael Kaplan to clear any pending dead
// keys from the current keyboard layout. See: // keys from the current keyboard layout. See:
// https://web.archive.org/web/20101004154432/http://blogs.msdn.com/b/michkap/archive/2006/04/06/569632.aspx // <https://web.archive.org/web/20101004154432/http://blogs.msdn.com/b/michkap/archive/2006/04/06/569632.aspx>
// https://web.archive.org/web/20100820152419/http://blogs.msdn.com/b/michkap/archive/2007/10/27/5717859.aspx // <https://web.archive.org/web/20100820152419/http://blogs.msdn.com/b/michkap/archive/2007/10/27/5717859.aspx>
do { do {
ret = ToUnicode(vkey, scancode, keys, buf, MP_ARRAY_SIZE(buf), 0); ret = ToUnicode(vkey, scancode, keys, buf, MP_ARRAY_SIZE(buf), 0);
} while (ret < 0); } while (ret < 0);
@ -359,7 +359,7 @@ static int to_unicode(UINT vkey, UINT scancode, const BYTE keys[256])
// This wraps ToUnicode to be stateless and to return only one character // This wraps ToUnicode to be stateless and to return only one character
// Make the buffer 10 code units long to be safe, same as here: // Make the buffer 10 code units long to be safe, same as here:
// https://web.archive.org/web/20101013215215/http://blogs.msdn.com/b/michkap/archive/2006/03/24/559169.aspx // <https://web.archive.org/web/20101013215215/http://blogs.msdn.com/b/michkap/archive/2006/03/24/559169.aspx>
wchar_t buf[10] = { 0 }; wchar_t buf[10] = { 0 };
// Dead keys aren't useful for key shortcuts, so clear the keyboard state // Dead keys aren't useful for key shortcuts, so clear the keyboard state
@ -1501,7 +1501,8 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam,
} }
// Windows can send spurious mouse events, which would make the mpv // Windows can send spurious mouse events, which would make the mpv
// core unhide the mouse cursor on completely unrelated events. See: // core unhide the mouse cursor on completely unrelated events. See:
// https://blogs.msdn.com/b/oldnewthing/archive/2003/10/01/55108.aspx // <https://web.archive.org/web/20100821161603/
// https://blogs.msdn.com/b/oldnewthing/archive/2003/10/01/55108.aspx>
int x = GET_X_LPARAM(lParam); int x = GET_X_LPARAM(lParam);
int y = GET_Y_LPARAM(lParam); int y = GET_Y_LPARAM(lParam);
if (x != w32->mouse_x || y != w32->mouse_y) { if (x != w32->mouse_x || y != w32->mouse_y) {