summaryrefslogtreecommitdiffstats
path: root/misc
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2020-08-28 20:27:41 +0200
committerwm4 <wm4@nowhere>2020-08-29 13:12:32 +0200
commit654eef9b82e05af2737ac2b72252b0e852386cf3 (patch)
tree98bd148acf8411fb910c0e814b78cf0c456e84a7 /misc
parent40c2e71d33a1b8d5ec9469691b01188589ec0fe7 (diff)
downloadmpv-654eef9b82e05af2737ac2b72252b0e852386cf3.tar.bz2
mpv-654eef9b82e05af2737ac2b72252b0e852386cf3.tar.xz
ring: remove this
The code is OK, and it could be restored if it's needed again. But it is unused now, so remove it.
Diffstat (limited to 'misc')
-rw-r--r--misc/ring.c131
-rw-r--r--misc/ring.h108
2 files changed, 0 insertions, 239 deletions
diff --git a/misc/ring.c b/misc/ring.c
deleted file mode 100644
index eb3c420cfc..0000000000
--- a/misc/ring.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * This file is part of mpv.
- * Copyright (c) 2012 wm4
- * Copyright (c) 2013 Stefano Pigozzi <stefano.pigozzi@gmail.com>
- *
- * mpv is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * mpv is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with mpv. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <inttypes.h>
-#include <assert.h>
-
-#include "common/common.h"
-#include "mpv_talloc.h"
-#include "osdep/atomic.h"
-#include "ring.h"
-
-struct mp_ring {
- uint8_t *buffer;
-
- /* Positions of the first readable/writeable chunks. Do not read these
- * fields. Use the atomic private accessors `mp_ring_get_wpos`
- * and `mp_ring_get_rpos`. */
- atomic_ullong rpos, wpos;
-};
-
-static unsigned long long mp_ring_get_wpos(struct mp_ring *buffer)
-{
- return atomic_load(&buffer->wpos);
-}
-
-static unsigned long long mp_ring_get_rpos(struct mp_ring *buffer)
-{
- return atomic_load(&buffer->rpos);
-}
-
-struct mp_ring *mp_ring_new(void *talloc_ctx, int size)
-{
- struct mp_ring *ringbuffer =
- talloc_zero(talloc_ctx, struct mp_ring);
-
- *ringbuffer = (struct mp_ring) {
- .buffer = talloc_size(talloc_ctx, size),
- };
-
- return ringbuffer;
-}
-
-int mp_ring_read(struct mp_ring *buffer, unsigned char *dest, int len)
-{
- int size = mp_ring_size(buffer);
- int buffered = mp_ring_buffered(buffer);
- int read_len = MPMIN(len, buffered);
- int read_ptr = mp_ring_get_rpos(buffer) % size;
-
- int len1 = MPMIN(size - read_ptr, read_len);
- int len2 = read_len - len1;
-
- if (dest) {
- memcpy(dest, buffer->buffer + read_ptr, len1);
- memcpy(dest + len1, buffer->buffer, len2);
- }
-
- atomic_fetch_add(&buffer->rpos, read_len);
-
- return read_len;
-}
-
-int mp_ring_drain(struct mp_ring *buffer, int len)
-{
- return mp_ring_read(buffer, NULL, len);
-}
-
-int mp_ring_write(struct mp_ring *buffer, unsigned char *src, int len)
-{
- int size = mp_ring_size(buffer);
- int free = mp_ring_available(buffer);
- int write_len = MPMIN(len, free);
- int write_ptr = mp_ring_get_wpos(buffer) % size;
-
- int len1 = MPMIN(size - write_ptr, write_len);
- int len2 = write_len - len1;
-
- memcpy(buffer->buffer + write_ptr, src, len1);
- memcpy(buffer->buffer, src + len1, len2);
-
- atomic_fetch_add(&buffer->wpos, write_len);
-
- return write_len;
-}
-
-void mp_ring_reset(struct mp_ring *buffer)
-{
- atomic_store(&buffer->wpos, 0);
- atomic_store(&buffer->rpos, 0);
-}
-
-int mp_ring_available(struct mp_ring *buffer)
-{
- return mp_ring_size(buffer) - mp_ring_buffered(buffer);
-}
-
-int mp_ring_size(struct mp_ring *buffer)
-{
- return talloc_get_size(buffer->buffer);
-}
-
-int mp_ring_buffered(struct mp_ring *buffer)
-{
- return (mp_ring_get_wpos(buffer) - mp_ring_get_rpos(buffer));
-}
-
-char *mp_ring_repr(struct mp_ring *buffer, void *talloc_ctx)
-{
- return talloc_asprintf(
- talloc_ctx,
- "Ringbuffer { .size = %dB, .buffered = %dB, .available = %dB }",
- mp_ring_size(buffer),
- mp_ring_buffered(buffer),
- mp_ring_available(buffer));
-}
diff --git a/misc/ring.h b/misc/ring.h
deleted file mode 100644
index 604b95f85a..0000000000
--- a/misc/ring.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- * This file is part of mpv.
- * Copyright (c) 2012 wm4
- * Copyright (c) 2013 Stefano Pigozzi <stefano.pigozzi@gmail.com>
- *
- * mpv is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * mpv is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with mpv. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef MPV_MP_RING_H
-#define MPV_MP_RING_H
-
-/**
- * A simple non-blocking SPSC (single producer, single consumer) ringbuffer
- * implementation. Thread safety is accomplished through atomic operations.
- */
-
-struct mp_ring;
-
-/**
- * Instantiate a new ringbuffer
- *
- * talloc_ctx: talloc context of the newly created object
- * size: total size in bytes
- * return: the newly created ringbuffer
- */
-struct mp_ring *mp_ring_new(void *talloc_ctx, int size);
-
-/**
- * Read data from the ringbuffer
- *
- * buffer: target ringbuffer instance
- * dest: destination buffer for the read data. If NULL read data is discarded.
- * len: maximum number of bytes to read
- * return: number of bytes read
- */
-int mp_ring_read(struct mp_ring *buffer, unsigned char *dest, int len);
-
-/**
- * Write data to the ringbuffer
- *
- * buffer: target ringbuffer instance
- * src: source buffer for the write data
- * len: maximum number of bytes to write
- * return: number of bytes written
- */
-int mp_ring_write(struct mp_ring *buffer, unsigned char *src, int len);
-
-/**
- * Drain data from the ringbuffer
- *
- * buffer: target ringbuffer instance
- * len: maximum number of bytes to drain
- * return: number of bytes drained
- */
-int mp_ring_drain(struct mp_ring *buffer, int len);
-
-/**
- * Reset the ringbuffer discarding any content
- *
- * buffer: target ringbuffer instance
- */
-void mp_ring_reset(struct mp_ring *buffer);
-
-/**
- * Get the available size for writing
- *
- * buffer: target ringbuffer instance
- * return: number of bytes that can be written
- */
-int mp_ring_available(struct mp_ring *buffer);
-
-/**
- * Get the total size
- *
- * buffer: target ringbuffer instance
- * return: total ringbuffer size in bytes
- */
-int mp_ring_size(struct mp_ring *buffer);
-
-/**
- * Get the available size for reading
- *
- * buffer: target ringbuffer instance
- * return: number of bytes ready for reading
- */
-int mp_ring_buffered(struct mp_ring *buffer);
-
-/**
- * Get a string representation of the ringbuffer
- *
- * buffer: target ringbuffer instance
- * talloc_ctx: talloc context of the newly created string
- * return: string representing the ringbuffer
- */
-char *mp_ring_repr(struct mp_ring *buffer, void *talloc_ctx);
-
-#endif