From 36e7ef96fcbb9950059179b2a83d026e66e44492 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 | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'demux/demux.c') diff --git a/demux/demux.c b/demux/demux.c index 73d4927002..f02f9b77aa 100644 --- a/demux/demux.c +++ b/demux/demux.c @@ -22,6 +22,7 @@ #include #include #include +#include #include @@ -97,11 +98,15 @@ struct demux_opts { #define OPT_BASE_STRUCT struct demux_opts +#define MAX_BYTES MPMIN(INT64_MAX, SIZE_MAX / 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), @@ -160,8 +165,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