From 120dcdf5ccac8f7ea7d4c5de34d5a28c90bc521b Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 24 Aug 2018 12:56:41 +0200 Subject: demux: allow cache sizes > 2GB There was no reason to limit this. Only some int fields had to be changed to size_t. --- demux/demux.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'demux') diff --git a/demux/demux.c b/demux/demux.c index c31dfcf809..3e9d897bb2 100644 --- a/demux/demux.c +++ b/demux/demux.c @@ -98,11 +98,15 @@ struct demux_opts { #define OPT_BASE_STRUCT struct demux_opts +#define MAX_BYTES MPMIN(INT64_MAX, (size_t)-1 / 2) + const struct m_sub_options demux_conf = { .opts = (const struct m_option[]){ OPT_DOUBLE("demuxer-readahead-secs", min_secs, M_OPT_MIN, .min = 0), - OPT_BYTE_SIZE("demuxer-max-bytes", max_bytes, 0, 0, INT_MAX), - OPT_BYTE_SIZE("demuxer-max-back-bytes", max_bytes_bw, 0, 0, INT_MAX), + // (The MAX_BYTES sizes may not be accurate because the max field is + // of double type.) + OPT_BYTE_SIZE("demuxer-max-bytes", max_bytes, 0, 0, MAX_BYTES), + OPT_BYTE_SIZE("demuxer-max-back-bytes", max_bytes_bw, 0, 0, MAX_BYTES), OPT_FLAG("force-seekable", force_seekable, 0), OPT_DOUBLE("cache-secs", min_secs_cache, M_OPT_MIN, .min = 0), OPT_FLAG("access-references", access_references, 0), @@ -164,8 +168,8 @@ struct demux_internal { bool idle; bool autoselect; double min_secs; - int max_bytes; - int max_bytes_bw; + size_t max_bytes; + size_t max_bytes_bw; bool seekable_cache; // At least one decoder actually requested data since init or the last seek. -- cgit v1.2.3