mirror of
https://github.com/FluxaMedia/fluxa.git
synced 2026-07-27 20:32:11 +00:00
mpv: - Set ao=audiotrack explicitly so the AudioTrack output is guaranteed (avoids openSLES which lacks encoded passthrough) - Add audio-channels=7.1,5.1,stereo so mpv negotiates multichannel instead of defaulting to auto-safe stereo downmix - Build audio-spdif at init time by querying AudioManager output device encodings; only advertises AC3/E-AC3/DTS/DTS-HD/TrueHD formats the device actually reports ExoPlayer: - Guard setVideoEffects(emptyList()) behind a videoEffectsActive flag: only call it when IptPqc2ToneMapEffect was actually installed, never on a clean path — the empty-list call triggers the GL VideoFrameProcessor pipeline in media3 1.10.1 which tone-maps HDR even for an empty effect list - detectPreferredVideoMimeType now accepts Context and checks display + decoder DV capability first; on fully DV-capable devices it returns VIDEO_DOLBY_VISION so DV variant tracks are preferred rather than deprioritized behind H.265/H.264
310 lines
No EOL
9.3 KiB
JSON
310 lines
No EOL
9.3 KiB
JSON
{
|
|
"formatVersion": 1,
|
|
"database": {
|
|
"version": 9,
|
|
"identityHash": "2abcf22154237076f68a698eb41e6eee",
|
|
"entities": [
|
|
{
|
|
"tableName": "content_items",
|
|
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`profileId` TEXT NOT NULL, `contentId` TEXT NOT NULL, `name` TEXT NOT NULL, `type` TEXT NOT NULL, `poster` TEXT, `background` TEXT, `logo` TEXT, `description` TEXT, `rating` TEXT, `releaseInfo` TEXT, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`profileId`, `contentId`))",
|
|
"fields": [
|
|
{
|
|
"fieldPath": "profileId",
|
|
"columnName": "profileId",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "contentId",
|
|
"columnName": "contentId",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "name",
|
|
"columnName": "name",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "type",
|
|
"columnName": "type",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "poster",
|
|
"columnName": "poster",
|
|
"affinity": "TEXT"
|
|
},
|
|
{
|
|
"fieldPath": "background",
|
|
"columnName": "background",
|
|
"affinity": "TEXT"
|
|
},
|
|
{
|
|
"fieldPath": "logo",
|
|
"columnName": "logo",
|
|
"affinity": "TEXT"
|
|
},
|
|
{
|
|
"fieldPath": "description",
|
|
"columnName": "description",
|
|
"affinity": "TEXT"
|
|
},
|
|
{
|
|
"fieldPath": "rating",
|
|
"columnName": "rating",
|
|
"affinity": "TEXT"
|
|
},
|
|
{
|
|
"fieldPath": "releaseInfo",
|
|
"columnName": "releaseInfo",
|
|
"affinity": "TEXT"
|
|
},
|
|
{
|
|
"fieldPath": "updatedAt",
|
|
"columnName": "updatedAt",
|
|
"affinity": "INTEGER",
|
|
"notNull": true
|
|
}
|
|
],
|
|
"primaryKey": {
|
|
"autoGenerate": false,
|
|
"columnNames": [
|
|
"profileId",
|
|
"contentId"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"tableName": "watchlist_entries",
|
|
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`profileId` TEXT NOT NULL, `contentId` TEXT NOT NULL, `addedAt` INTEGER NOT NULL, PRIMARY KEY(`profileId`, `contentId`))",
|
|
"fields": [
|
|
{
|
|
"fieldPath": "profileId",
|
|
"columnName": "profileId",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "contentId",
|
|
"columnName": "contentId",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "addedAt",
|
|
"columnName": "addedAt",
|
|
"affinity": "INTEGER",
|
|
"notNull": true
|
|
}
|
|
],
|
|
"primaryKey": {
|
|
"autoGenerate": false,
|
|
"columnNames": [
|
|
"profileId",
|
|
"contentId"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"tableName": "playback_progress",
|
|
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`profileId` TEXT NOT NULL, `contentId` TEXT NOT NULL, `videoId` TEXT, `timeOffset` INTEGER NOT NULL, `duration` INTEGER NOT NULL, `lastStreamIndex` INTEGER, `lastEpisodeName` TEXT, `lastStreamUrl` TEXT, `lastStreamTitle` TEXT, `continueWatchingPoster` TEXT, `continueWatchingBackground` TEXT, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`profileId`, `contentId`))",
|
|
"fields": [
|
|
{
|
|
"fieldPath": "profileId",
|
|
"columnName": "profileId",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "contentId",
|
|
"columnName": "contentId",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "videoId",
|
|
"columnName": "videoId",
|
|
"affinity": "TEXT"
|
|
},
|
|
{
|
|
"fieldPath": "timeOffset",
|
|
"columnName": "timeOffset",
|
|
"affinity": "INTEGER",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "duration",
|
|
"columnName": "duration",
|
|
"affinity": "INTEGER",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "lastStreamIndex",
|
|
"columnName": "lastStreamIndex",
|
|
"affinity": "INTEGER"
|
|
},
|
|
{
|
|
"fieldPath": "lastEpisodeName",
|
|
"columnName": "lastEpisodeName",
|
|
"affinity": "TEXT"
|
|
},
|
|
{
|
|
"fieldPath": "lastStreamUrl",
|
|
"columnName": "lastStreamUrl",
|
|
"affinity": "TEXT"
|
|
},
|
|
{
|
|
"fieldPath": "lastStreamTitle",
|
|
"columnName": "lastStreamTitle",
|
|
"affinity": "TEXT"
|
|
},
|
|
{
|
|
"fieldPath": "continueWatchingPoster",
|
|
"columnName": "continueWatchingPoster",
|
|
"affinity": "TEXT"
|
|
},
|
|
{
|
|
"fieldPath": "continueWatchingBackground",
|
|
"columnName": "continueWatchingBackground",
|
|
"affinity": "TEXT"
|
|
},
|
|
{
|
|
"fieldPath": "updatedAt",
|
|
"columnName": "updatedAt",
|
|
"affinity": "INTEGER",
|
|
"notNull": true
|
|
}
|
|
],
|
|
"primaryKey": {
|
|
"autoGenerate": false,
|
|
"columnNames": [
|
|
"profileId",
|
|
"contentId"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"tableName": "user_feedback",
|
|
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`profileId` TEXT NOT NULL, `contentId` TEXT NOT NULL, `isLiked` INTEGER, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`profileId`, `contentId`))",
|
|
"fields": [
|
|
{
|
|
"fieldPath": "profileId",
|
|
"columnName": "profileId",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "contentId",
|
|
"columnName": "contentId",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "isLiked",
|
|
"columnName": "isLiked",
|
|
"affinity": "INTEGER"
|
|
},
|
|
{
|
|
"fieldPath": "updatedAt",
|
|
"columnName": "updatedAt",
|
|
"affinity": "INTEGER",
|
|
"notNull": true
|
|
}
|
|
],
|
|
"primaryKey": {
|
|
"autoGenerate": false,
|
|
"columnNames": [
|
|
"profileId",
|
|
"contentId"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"tableName": "track_preferences",
|
|
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`profileId` TEXT NOT NULL, `contentId` TEXT NOT NULL, `lastAudioLanguage` TEXT, `lastSubtitleLanguage` TEXT, `updatedAt` INTEGER NOT NULL, PRIMARY KEY(`profileId`, `contentId`))",
|
|
"fields": [
|
|
{
|
|
"fieldPath": "profileId",
|
|
"columnName": "profileId",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "contentId",
|
|
"columnName": "contentId",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "lastAudioLanguage",
|
|
"columnName": "lastAudioLanguage",
|
|
"affinity": "TEXT"
|
|
},
|
|
{
|
|
"fieldPath": "lastSubtitleLanguage",
|
|
"columnName": "lastSubtitleLanguage",
|
|
"affinity": "TEXT"
|
|
},
|
|
{
|
|
"fieldPath": "updatedAt",
|
|
"columnName": "updatedAt",
|
|
"affinity": "INTEGER",
|
|
"notNull": true
|
|
}
|
|
],
|
|
"primaryKey": {
|
|
"autoGenerate": false,
|
|
"columnNames": [
|
|
"profileId",
|
|
"contentId"
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"tableName": "watched_episodes",
|
|
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`profileId` TEXT NOT NULL, `seriesId` TEXT NOT NULL, `videoId` TEXT NOT NULL, `watchedAt` INTEGER NOT NULL, PRIMARY KEY(`profileId`, `seriesId`, `videoId`))",
|
|
"fields": [
|
|
{
|
|
"fieldPath": "profileId",
|
|
"columnName": "profileId",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "seriesId",
|
|
"columnName": "seriesId",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "videoId",
|
|
"columnName": "videoId",
|
|
"affinity": "TEXT",
|
|
"notNull": true
|
|
},
|
|
{
|
|
"fieldPath": "watchedAt",
|
|
"columnName": "watchedAt",
|
|
"affinity": "INTEGER",
|
|
"notNull": true
|
|
}
|
|
],
|
|
"primaryKey": {
|
|
"autoGenerate": false,
|
|
"columnNames": [
|
|
"profileId",
|
|
"seriesId",
|
|
"videoId"
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"setupQueries": [
|
|
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
|
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '2abcf22154237076f68a698eb41e6eee')"
|
|
]
|
|
}
|
|
} |