From f6a6bcc86d47c80b2903bc9b69cc159a4adfa177 Mon Sep 17 00:00:00 2001 From: Martchus Date: Tue, 3 Mar 2026 22:48:36 +0100 Subject: [PATCH] Allow seeking on devices that check headers for supported features This makes streaming work on my Samsung TV with Tizen OS which otherwise will not allow seeking (and not even pausing/resuming). --- src/web/handlers.rs | 4 +++- src/web/xml.rs | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/web/handlers.rs b/src/web/handlers.rs index 3fb80d3..649a093 100644 --- a/src/web/handlers.rs +++ b/src/web/handlers.rs @@ -489,7 +489,9 @@ pub async fn serve_media( let mut response_builder = Response::builder() .header(header::CONTENT_TYPE, file_info.mime_type) - .header(header::ACCEPT_RANGES, "bytes"); + .header(header::ACCEPT_RANGES, "bytes") + .header("transferMode.dlna.org", "Streaming") + .header("contentFeatures.dlna.org", "DLNA.ORG_OP=11;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000"); let (start, end) = if let Some(range_header) = headers.get(header::RANGE) { let range_str = range_header.to_str().map_err(|_| AppError::InvalidRange)?; diff --git a/src/web/xml.rs b/src/web/xml.rs index 8dd2f6a..84a5597 100644 --- a/src/web/xml.rs +++ b/src/web/xml.rs @@ -261,9 +261,9 @@ pub async fn generate_browse_response_with_totals( // Use enhanced DLNA flags that support autoplay and streaming let dlna_flags = if state.config.media.autoplay_enabled { - "DLNA.ORG_PN=;DLNA.ORG_OP=01;DLNA.ORG_FLAGS=01700000000000000000000000000000" + "DLNA.ORG_PN=;DLNA.ORG_OP=11;DLNA.ORG_FLAGS=01700000000000000000000000000000" } else { - "DLNA.ORG_PN=;DLNA.ORG_OP=01;DLNA.ORG_FLAGS=00D00000000000000000000000000000" + "DLNA.ORG_PN=;DLNA.ORG_OP=11;DLNA.ORG_FLAGS=00D00000000000000000000000000000" }; let item_xml = format!(