[vlc-devel] [RFC PATCH 2/2] access/demux: Make use of live-network-caching variable
Julian Scheel
julian at jusst.de
Wed Apr 8 12:14:22 CEST 2015
Use either network-caching or live-network-caching depending on whether a
source is seekable or not.
Signed-off-by: Julian Scheel <julian at jusst.de>
---
modules/access/avio.c | 10 +++++++++-
modules/access/file.c | 4 +++-
modules/access/ftp.c | 4 +++-
modules/access/http.c | 4 +++-
modules/access/live555.cpp | 4 +++-
modules/access/mms/mmsh.c | 4 +++-
modules/access/mms/mmstu.c | 4 +++-
modules/access/rtp/rtp.c | 2 +-
modules/access/rtsp/access.c | 2 +-
modules/access/tcp.c | 2 +-
modules/access/udp.c | 2 +-
modules/access/vnc.c | 2 +-
modules/demux/dash/dash.cpp | 4 +++-
modules/stream_filter/hds/hds.c | 2 +-
modules/stream_filter/httplive.c | 3 ++-
15 files changed, 38 insertions(+), 15 deletions(-)
diff --git a/modules/access/avio.c b/modules/access/avio.c
index 50ef585..e2e0cde 100644
--- a/modules/access/avio.c
+++ b/modules/access/avio.c
@@ -435,7 +435,15 @@ static int Control(access_t *access, int query, va_list args)
return VLC_SUCCESS;
case ACCESS_GET_PTS_DELAY: {
int64_t *delay = va_arg(args, int64_t *);
- *delay = INT64_C(1000) * var_InheritInteger(access, "network-caching");
+#if LIBAVFORMAT_VERSION_MAJOR < 54
+ *delay = INT64_C(1000) * !sys->context->is_streamed ?
+ var_InheritInteger(access, "network-caching") :
+ var_InheritInteger(access, "live-network-caching");
+#else
+ *delay = INT64_C(1000) * sys->context->seekable ?
+ var_InheritInteger(access, "network-caching") :
+ var_InheritInteger(access, "live-network-caching");
+#endif
return VLC_SUCCESS;
}
case ACCESS_SET_PAUSE_STATE: {
diff --git a/modules/access/file.c b/modules/access/file.c
index fbe6fa6..2cd0c60 100644
--- a/modules/access/file.c
+++ b/modules/access/file.c
@@ -407,7 +407,9 @@ static int FileControl( access_t *p_access, int i_query, va_list args )
case ACCESS_GET_PTS_DELAY:
pi_64 = (int64_t*)va_arg( args, int64_t * );
if (IsRemote (p_sys->fd, p_access->psz_filepath))
- *pi_64 = var_InheritInteger (p_access, "network-caching");
+ *pi_64 = p_access->pf_seek != NoSeek ?
+ var_InheritInteger (p_access, "network-caching") :
+ var_InheritInteger (p_access, "live-network-caching");
else
*pi_64 = var_InheritInteger (p_access, "file-caching");
*pi_64 *= 1000;
diff --git a/modules/access/ftp.c b/modules/access/ftp.c
index e0dc371..da4073d 100644
--- a/modules/access/ftp.c
+++ b/modules/access/ftp.c
@@ -897,7 +897,9 @@ static int Control( access_t *p_access, int i_query, va_list args )
case ACCESS_GET_PTS_DELAY:
pi_64 = (int64_t*)va_arg( args, int64_t * );
*pi_64 = INT64_C(1000)
- * var_InheritInteger( p_access, "network-caching" );
+ * !p_access->p_sys->directory ?
+ var_InheritInteger( p_access, "network-caching" ):
+ var_InheritInteger( p_access, "live-network-caching" );
break;
case ACCESS_SET_PAUSE_STATE:
diff --git a/modules/access/http.c b/modules/access/http.c
index 31328ab..76cb85e 100644
--- a/modules/access/http.c
+++ b/modules/access/http.c
@@ -967,7 +967,9 @@ static int Control( access_t *p_access, int i_query, va_list args )
case ACCESS_GET_PTS_DELAY:
pi_64 = (int64_t*)va_arg( args, int64_t * );
*pi_64 = INT64_C(1000)
- * var_InheritInteger( p_access, "network-caching" );
+ * p_sys->b_seekable ?
+ var_InheritInteger( p_access, "network-caching" ) :
+ var_InheritInteger( p_access, "live-network-caching" );
break;
case ACCESS_GET_SIZE:
diff --git a/modules/access/live555.cpp b/modules/access/live555.cpp
index a3faa77..06005fc 100644
--- a/modules/access/live555.cpp
+++ b/modules/access/live555.cpp
@@ -1664,7 +1664,9 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
case DEMUX_GET_PTS_DELAY:
pi64 = (int64_t*)va_arg( args, int64_t * );
*pi64 = INT64_C(1000)
- * var_InheritInteger( p_demux, "network-caching" );
+ * ( p_sys->rtsp && p_sys->f_npt_length > 0 ) ?
+ var_InheritInteger( p_demux, "network-caching" ) :
+ var_InheritInteger( p_demux, "live-network-caching" );
return VLC_SUCCESS;
default:
diff --git a/modules/access/mms/mmsh.c b/modules/access/mms/mmsh.c
index d1d3c2d..c2861ac 100644
--- a/modules/access/mms/mmsh.c
+++ b/modules/access/mms/mmsh.c
@@ -250,7 +250,9 @@ static int Control( access_t *p_access, int i_query, va_list args )
case ACCESS_GET_PTS_DELAY:
pi_64 = (int64_t*)va_arg( args, int64_t * );
*pi_64 = INT64_C(1000)
- * var_InheritInteger( p_access, "network-caching" );
+ * !p_sys->b_broadcast ?
+ var_InheritInteger( p_access, "network-caching" ) :
+ var_InheritInteger( p_access, "live-network-caching" );
break;
case ACCESS_GET_PRIVATE_ID_STATE:
diff --git a/modules/access/mms/mmstu.c b/modules/access/mms/mmstu.c
index 4c0a8c2..c0b5702 100644
--- a/modules/access/mms/mmstu.c
+++ b/modules/access/mms/mmstu.c
@@ -254,7 +254,9 @@ static int Control( access_t *p_access, int i_query, va_list args )
case ACCESS_GET_PTS_DELAY:
pi_64 = (int64_t*)va_arg( args, int64_t * );
*pi_64 = INT64_C(1000)
- * var_InheritInteger( p_access, "network-caching" );
+ * p_sys->b_seekable ?
+ var_InheritInteger( p_access, "network-caching" ) :
+ var_InheritInteger( p_access, "live-network-caching" );
break;
case ACCESS_GET_PRIVATE_ID_STATE:
diff --git a/modules/access/rtp/rtp.c b/modules/access/rtp/rtp.c
index 455c0e8..be3cd58 100644
--- a/modules/access/rtp/rtp.c
+++ b/modules/access/rtp/rtp.c
@@ -381,7 +381,7 @@ static int Control (demux_t *demux, int query, va_list args)
case DEMUX_GET_PTS_DELAY:
{
int64_t *v = va_arg (args, int64_t *);
- *v = INT64_C(1000) * var_InheritInteger (demux, "network-caching");
+ *v = INT64_C(1000) * var_InheritInteger (demux, "live-network-caching");
return VLC_SUCCESS;
}
diff --git a/modules/access/rtsp/access.c b/modules/access/rtsp/access.c
index 2a52a1b..c8807e4 100644
--- a/modules/access/rtsp/access.c
+++ b/modules/access/rtsp/access.c
@@ -323,7 +323,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
case ACCESS_GET_PTS_DELAY:
*va_arg( args, int64_t * ) = INT64_C(1000)
- * var_InheritInteger(p_access, "network-caching");
+ * var_InheritInteger(p_access, "live-network-caching");
break;
case ACCESS_SET_PAUSE_STATE:
diff --git a/modules/access/tcp.c b/modules/access/tcp.c
index 3fbf7f2..9beb6c4 100644
--- a/modules/access/tcp.c
+++ b/modules/access/tcp.c
@@ -175,7 +175,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
case ACCESS_GET_PTS_DELAY:
pi_64 = (int64_t*)va_arg( args, int64_t * );
*pi_64 = INT64_C(1000)
- * var_InheritInteger( p_access, "network-caching" );
+ * var_InheritInteger( p_access, "live-network-caching" );
break;
case ACCESS_SET_PAUSE_STATE:
diff --git a/modules/access/udp.c b/modules/access/udp.c
index c61bf8a..55f74a9 100644
--- a/modules/access/udp.c
+++ b/modules/access/udp.c
@@ -219,7 +219,7 @@ static int Control( access_t *p_access, int i_query, va_list args )
case ACCESS_GET_PTS_DELAY:
pi_64 = (int64_t*)va_arg( args, int64_t * );
*pi_64 = INT64_C(1000)
- * var_InheritInteger(p_access, "network-caching");
+ * var_InheritInteger(p_access, "live-network-caching");
break;
default:
diff --git a/modules/access/vnc.c b/modules/access/vnc.c
index 4a4a94f..608ce0e 100644
--- a/modules/access/vnc.c
+++ b/modules/access/vnc.c
@@ -298,7 +298,7 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
case DEMUX_GET_PTS_DELAY:
pi64 = (int64_t*)va_arg( args, int64_t * );
*pi64 = INT64_C(1000)
- * var_InheritInteger( p_demux, "network-caching" );
+ * var_InheritInteger( p_demux, "live-network-caching" );
return VLC_SUCCESS;
case DEMUX_GET_TIME:
diff --git a/modules/demux/dash/dash.cpp b/modules/demux/dash/dash.cpp
index ee9bada..c623aa3 100644
--- a/modules/demux/dash/dash.cpp
+++ b/modules/demux/dash/dash.cpp
@@ -241,7 +241,9 @@ static int Control (demux_t *p_demux, int i_query, va_list args)
case DEMUX_GET_PTS_DELAY:
*va_arg (args, int64_t *) = INT64_C(1000) *
- var_InheritInteger(p_demux, "network-caching");
+ p_sys->p_dashManager->seekAble() ?
+ var_InheritInteger(p_demux, "network-caching") :
+ var_InheritInteger(p_demux, "live-network-caching");
break;
case DEMUX_GET_META:
diff --git a/modules/stream_filter/hds/hds.c b/modules/stream_filter/hds/hds.c
index 9a74b67..9ee209b 100644
--- a/modules/stream_filter/hds/hds.c
+++ b/modules/stream_filter/hds/hds.c
@@ -1945,7 +1945,7 @@ static int Control( stream_t *s, int i_query, va_list args )
break;
case STREAM_GET_PTS_DELAY:
*va_arg (args, int64_t *) = INT64_C(1000) *
- var_InheritInteger(s, "network-caching");
+ var_InheritInteger(s, "live-network-caching");
break;
case STREAM_GET_POSITION:
*(va_arg (args, uint64_t *)) = s->p_sys->playback_offset;
diff --git a/modules/stream_filter/httplive.c b/modules/stream_filter/httplive.c
index 24b44c4..2705baf 100644
--- a/modules/stream_filter/httplive.c
+++ b/modules/stream_filter/httplive.c
@@ -2728,7 +2728,8 @@ static int Control(stream_t *s, int i_query, va_list args)
break;
case STREAM_GET_PTS_DELAY:
*va_arg (args, int64_t *) = INT64_C(1000) *
- var_InheritInteger(s, "network-caching");
+ hls_MaySeek(s) ? var_InheritInteger(s, "network-caching") :
+ var_InheritInteger(s, "live-network-caching");
break;
default:
return VLC_EGENERIC;
--
2.3.0
More information about the vlc-devel
mailing list