[PR #13771] [MERGED] Import Keyframes into database #13706

Closed
opened 2026-02-07 07:17:45 +03:00 by OVERLORD · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/jellyfin/jellyfin/pull/13771
Author: @Shadowghost
Created: 3/25/2025
Status: Merged
Merged: 4/3/2025
Merged by: @crobibero

Base: masterHead: import-keyframes


📝 Commits (3)

  • 4168ac1 Migrate keyframe data into database
  • 0a9ab23 Clear database table before import to handle failed migrations
  • a2e3b5f Merge branch 'master' into import-keyframes

📊 Changes

22 files changed (+2128 additions, -78 deletions)

View changed files

📝 Emby.Server.Implementations/ApplicationHost.cs (+1 -0)
📝 Jellyfin.Api/Controllers/DynamicHlsController.cs (+1 -0)
📝 Jellyfin.Server.Implementations/Item/BaseItemRepository.cs (+1 -0)
Jellyfin.Server.Implementations/Item/KeyframeRepository.cs (+64 -0)
📝 Jellyfin.Server/Migrations/MigrationRunner.cs (+1 -0)
Jellyfin.Server/Migrations/Routines/MigrateKeyframeData.cs (+173 -0)
📝 MediaBrowser.Controller/MediaBrowser.Controller.csproj (+1 -0)
MediaBrowser.Controller/Persistence/IKeyframeRepository.cs (+29 -0)
src/Jellyfin.Database/Jellyfin.Database.Implementations/Entities/KeyframeData.cs (+32 -0)
📝 src/Jellyfin.Database/Jellyfin.Database.Implementations/JellyfinDbContext.cs (+5 -0)
src/Jellyfin.Database/Jellyfin.Database.Implementations/ModelConfiguration/KeyframeDataConfiguration.cs (+18 -0)
src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Migrations/20250327101120_AddKeyframeData.Designer.cs (+1681 -0)
src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Migrations/20250327101120_AddKeyframeData.cs (+41 -0)
📝 src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Migrations/JellyfinDbModelSnapshot.cs (+29 -0)
📝 src/Jellyfin.MediaEncoding.Hls/Cache/CacheDecorator.cs (+22 -57)
📝 src/Jellyfin.MediaEncoding.Hls/Extractors/FfProbeKeyframeExtractor.cs (+1 -1)
📝 src/Jellyfin.MediaEncoding.Hls/Extractors/IKeyframeExtractor.cs (+3 -1)
📝 src/Jellyfin.MediaEncoding.Hls/Extractors/MatroskaKeyframeExtractor.cs (+1 -1)
📝 src/Jellyfin.MediaEncoding.Hls/Jellyfin.MediaEncoding.Hls.csproj (+1 -0)
📝 src/Jellyfin.MediaEncoding.Hls/Playlist/CreateMainPlaylistRequest.cs (+10 -1)

...and 2 more files

📄 Description

Keyframe data is currently saved in JSON files. This PR migrates the data into the database and properly cleans it up when the item is removed.

A mediaSource is always an item.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/jellyfin/jellyfin/pull/13771 **Author:** [@Shadowghost](https://github.com/Shadowghost) **Created:** 3/25/2025 **Status:** ✅ Merged **Merged:** 4/3/2025 **Merged by:** [@crobibero](https://github.com/crobibero) **Base:** `master` ← **Head:** `import-keyframes` --- ### 📝 Commits (3) - [`4168ac1`](https://github.com/jellyfin/jellyfin/commit/4168ac1efc4711c6ad947d33b796b35002d9776e) Migrate keyframe data into database - [`0a9ab23`](https://github.com/jellyfin/jellyfin/commit/0a9ab238f8b77ab73bd5654b267143bb7e2d8563) Clear database table before import to handle failed migrations - [`a2e3b5f`](https://github.com/jellyfin/jellyfin/commit/a2e3b5f0425d42cb2998e0c148d6ac15f7b3ac81) Merge branch 'master' into import-keyframes ### 📊 Changes **22 files changed** (+2128 additions, -78 deletions) <details> <summary>View changed files</summary> 📝 `Emby.Server.Implementations/ApplicationHost.cs` (+1 -0) 📝 `Jellyfin.Api/Controllers/DynamicHlsController.cs` (+1 -0) 📝 `Jellyfin.Server.Implementations/Item/BaseItemRepository.cs` (+1 -0) ➕ `Jellyfin.Server.Implementations/Item/KeyframeRepository.cs` (+64 -0) 📝 `Jellyfin.Server/Migrations/MigrationRunner.cs` (+1 -0) ➕ `Jellyfin.Server/Migrations/Routines/MigrateKeyframeData.cs` (+173 -0) 📝 `MediaBrowser.Controller/MediaBrowser.Controller.csproj` (+1 -0) ➕ `MediaBrowser.Controller/Persistence/IKeyframeRepository.cs` (+29 -0) ➕ `src/Jellyfin.Database/Jellyfin.Database.Implementations/Entities/KeyframeData.cs` (+32 -0) 📝 `src/Jellyfin.Database/Jellyfin.Database.Implementations/JellyfinDbContext.cs` (+5 -0) ➕ `src/Jellyfin.Database/Jellyfin.Database.Implementations/ModelConfiguration/KeyframeDataConfiguration.cs` (+18 -0) ➕ `src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Migrations/20250327101120_AddKeyframeData.Designer.cs` (+1681 -0) ➕ `src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Migrations/20250327101120_AddKeyframeData.cs` (+41 -0) 📝 `src/Jellyfin.Database/Jellyfin.Database.Providers.Sqlite/Migrations/JellyfinDbModelSnapshot.cs` (+29 -0) 📝 `src/Jellyfin.MediaEncoding.Hls/Cache/CacheDecorator.cs` (+22 -57) 📝 `src/Jellyfin.MediaEncoding.Hls/Extractors/FfProbeKeyframeExtractor.cs` (+1 -1) 📝 `src/Jellyfin.MediaEncoding.Hls/Extractors/IKeyframeExtractor.cs` (+3 -1) 📝 `src/Jellyfin.MediaEncoding.Hls/Extractors/MatroskaKeyframeExtractor.cs` (+1 -1) 📝 `src/Jellyfin.MediaEncoding.Hls/Jellyfin.MediaEncoding.Hls.csproj` (+1 -0) 📝 `src/Jellyfin.MediaEncoding.Hls/Playlist/CreateMainPlaylistRequest.cs` (+10 -1) _...and 2 more files_ </details> ### 📄 Description Keyframe data is currently saved in JSON files. This PR migrates the data into the database and properly cleans it up when the item is removed. A mediaSource is always an item. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
OVERLORD added the pull-request label 2026-02-07 07:17:45 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#13706