From eb11b928af43c937f8b8888a21482566daac876c Mon Sep 17 00:00:00 2001 From: Fredrik Burmester Date: Fri, 4 Oct 2024 16:51:26 +0200 Subject: [PATCH] fix: update device profile --- components/DownloadItem.tsx | 3 ++- components/ItemContent.tsx | 3 ++- components/music/SongsListItem.tsx | 3 ++- utils/jellyfin/media/getStreamUrl.ts | 3 ++- utils/jellyfin/session/capabilities.ts | 3 ++- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/components/DownloadItem.tsx b/components/DownloadItem.tsx index 37ebcb0e..e6c7617b 100644 --- a/components/DownloadItem.tsx +++ b/components/DownloadItem.tsx @@ -30,6 +30,7 @@ import { MediaSourceSelector } from "./MediaSourceSelector"; import ProgressCircle from "./ProgressCircle"; import { SubtitleTrackSelector } from "./SubtitleTrackSelector"; import { toast } from "sonner-native"; +import iosFmp4 from "@/utils/profiles/iosFmp4"; interface DownloadProps extends ViewProps { item: BaseItemDto; @@ -82,7 +83,7 @@ export const DownloadItem: React.FC = ({ item, ...props }) => { ); } - let deviceProfile: any = ios; + let deviceProfile: any = iosFmp4; if (settings?.deviceProfile === "Native") { deviceProfile = native; diff --git a/components/ItemContent.tsx b/components/ItemContent.tsx index 47f97e9a..e40d895f 100644 --- a/components/ItemContent.tsx +++ b/components/ItemContent.tsx @@ -20,6 +20,7 @@ import { getStreamUrl } from "@/utils/jellyfin/media/getStreamUrl"; import { getUserItemData } from "@/utils/jellyfin/user-library/getUserItemData"; import { chromecastProfile } from "@/utils/profiles/chromecast"; import ios from "@/utils/profiles/ios"; +import iosFmp4 from "@/utils/profiles/iosFmp4"; import native from "@/utils/profiles/native"; import old from "@/utils/profiles/old"; import { MediaSourceInfo } from "@jellyfin/sdk/lib/generated-client/models"; @@ -201,7 +202,7 @@ export const ItemContent: React.FC<{ id: string }> = React.memo(({ id }) => { if (!api || !user?.Id || !sessionData || !selectedMediaSource?.Id) return null; - let deviceProfile: any = ios; + let deviceProfile: any = iosFmp4; if (castDevice?.deviceId) { deviceProfile = chromecastProfile; diff --git a/components/music/SongsListItem.tsx b/components/music/SongsListItem.tsx index 12dcba1d..edc88f66 100644 --- a/components/music/SongsListItem.tsx +++ b/components/music/SongsListItem.tsx @@ -4,6 +4,7 @@ import { usePlayback } from "@/providers/PlaybackProvider"; import { getStreamUrl } from "@/utils/jellyfin/media/getStreamUrl"; import { chromecastProfile } from "@/utils/profiles/chromecast"; import ios from "@/utils/profiles/ios"; +import iosFmp4 from "@/utils/profiles/iosFmp4"; import { runtimeTicksToSeconds } from "@/utils/time"; import { useActionSheet } from "@expo/react-native-action-sheet"; import { BaseItemDto } from "@jellyfin/sdk/lib/generated-client/models"; @@ -90,7 +91,7 @@ export const SongsListItem: React.FC = ({ item, startTimeTicks: item?.UserData?.PlaybackPositionTicks || 0, sessionData, - deviceProfile: castDevice?.deviceId ? chromecastProfile : ios, + deviceProfile: castDevice?.deviceId ? chromecastProfile : iosFmp4, mediaSourceId: item.Id, }); diff --git a/utils/jellyfin/media/getStreamUrl.ts b/utils/jellyfin/media/getStreamUrl.ts index df13af1f..c83d3d6b 100644 --- a/utils/jellyfin/media/getStreamUrl.ts +++ b/utils/jellyfin/media/getStreamUrl.ts @@ -6,6 +6,7 @@ import { PlaybackInfoResponse, } from "@jellyfin/sdk/lib/generated-client/models"; import { getAuthHeaders } from "../jellyfin"; +import iosFmp4 from "@/utils/profiles/iosFmp4"; export const getStreamUrl = async ({ api, @@ -14,7 +15,7 @@ export const getStreamUrl = async ({ startTimeTicks = 0, maxStreamingBitrate, sessionData, - deviceProfile = ios, + deviceProfile = iosFmp4, audioStreamIndex = 0, subtitleStreamIndex = undefined, forceDirectPlay = false, diff --git a/utils/jellyfin/session/capabilities.ts b/utils/jellyfin/session/capabilities.ts index b7a3e795..0d26b813 100644 --- a/utils/jellyfin/session/capabilities.ts +++ b/utils/jellyfin/session/capabilities.ts @@ -6,6 +6,7 @@ import { Api } from "@jellyfin/sdk"; import { AxiosError, AxiosResponse } from "axios"; import { useMemo } from "react"; import { getAuthHeaders } from "../jellyfin"; +import iosFmp4 from "@/utils/profiles/iosFmp4"; interface PostCapabilitiesParams { api: Api | null | undefined; @@ -30,7 +31,7 @@ export const postCapabilities = async ({ throw new Error("Missing parameters for marking item as not played"); } - let profile: any = ios; + let profile: any = iosFmp4; if (deviceProfile === "Native") { profile = native;