From ea182d4ddbde0ec2ea97be3c932d0e3bf2cfb304 Mon Sep 17 00:00:00 2001 From: Maveno Date: Fri, 8 Nov 2024 19:06:32 +0100 Subject: [PATCH] Fixes track swap, codec in DataTables --- bin/ffx/ffx_controller.py | 13 +++++++------ bin/ffx/media_details_screen.py | 9 ++++++--- bin/ffx/model/track.py | 4 ++-- bin/ffx/pattern_delete_screen.py | 2 +- bin/ffx/track_descriptor.py | 5 +++-- bin/ffx/track_details_screen.py | 4 ++++ 6 files changed, 23 insertions(+), 14 deletions(-) diff --git a/bin/ffx/ffx_controller.py b/bin/ffx/ffx_controller.py index 9e0a73c..4ca5689 100644 --- a/bin/ffx/ffx_controller.py +++ b/bin/ffx/ffx_controller.py @@ -112,12 +112,6 @@ class FfxController(): return ['-ss', str(cropStart), '-t', str(cropLength)] - # strength: float = 3.0 - # patchSize: int = 12 - # chromaPatchSize: int = 8 - # researchWindow: int = 20 - # chromaResearchWindow: int= 12 - def generateDenoiseTokens(self, strength: float = 2.8, patchSize: int = 12, @@ -143,6 +137,13 @@ class FfxController(): Better filtering but costly rc: int research window for chroma planes (from 0 to 99) (default 0) + + Good values to denoise film grain that was subobtimally encoded: + strength: float = 2.8 + patchSize: int = 12 + chromaPatchSize: int = 8 + researchWindow: int = 22 + chromaResearchWindow: int= 16 """ filterName = 'nlmeans_opencl' if useHardware else 'nlmeans' diff --git a/bin/ffx/media_details_screen.py b/bin/ffx/media_details_screen.py index 514abf7..217d70a 100644 --- a/bin/ffx/media_details_screen.py +++ b/bin/ffx/media_details_screen.py @@ -44,7 +44,7 @@ class MediaDetailsScreen(Screen): Grid { grid-size: 5 8; grid-rows: 8 2 2 2 8 2 2 8; - grid-columns: 25 25 100 10 75; + grid-columns: 25 25 120 10 75; height: 100%; width: 100%; padding: 1; @@ -305,6 +305,7 @@ class MediaDetailsScreen(Screen): row = (td.getIndex(), trackType.label(), typeCounter[trackType], + td.getCodec(), td.getAudioLayout().label() if trackType == TrackType.AUDIO else ' ', td.getLanguage().label(), td.getTitle(), @@ -343,7 +344,8 @@ class MediaDetailsScreen(Screen): # Define the columns with headers self.column_key_track_index = self.tracksTable.add_column("Index", width=5) self.column_key_track_type = self.tracksTable.add_column("Type", width=10) - self.column_key_track_sub_index = self.tracksTable.add_column("Subindex", width=5) + self.column_key_track_sub_index = self.tracksTable.add_column("SubIndex", width=8) + self.column_key_track_codec = self.tracksTable.add_column("Codec", width=10) self.column_key_track_layout = self.tracksTable.add_column("Layout", width=10) self.column_key_track_language = self.tracksTable.add_column("Language", width=15) self.column_key_track_title = self.tracksTable.add_column("Title", width=48) @@ -456,7 +458,8 @@ class MediaDetailsScreen(Screen): kwargs[TrackDescriptor.INDEX_KEY] = int(selected_track_data[0]) kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.fromLabel(selected_track_data[1]) kwargs[TrackDescriptor.SUB_INDEX_KEY] = int(selected_track_data[2]) - kwargs[TrackDescriptor.AUDIO_LAYOUT_KEY] = AudioLayout.fromLabel(selected_track_data[3]) + kwargs[TrackDescriptor.CODEC_NAME_KEY] = int(selected_track_data[3]) + kwargs[TrackDescriptor.AUDIO_LAYOUT_KEY] = AudioLayout.fromLabel(selected_track_data[4]) return TrackDescriptor(**kwargs) else: diff --git a/bin/ffx/model/track.py b/bin/ffx/model/track.py index 5ce2e08..db24343 100644 --- a/bin/ffx/model/track.py +++ b/bin/ffx/model/track.py @@ -151,9 +151,9 @@ class Track(Base): def getType(self): return TrackType.fromIndex(self.track_type) - + def getCodec(self): - return str(self.codec_name) + return self.codec_name def getIndex(self): return int(self.index) if self.index is not None else -1 diff --git a/bin/ffx/pattern_delete_screen.py b/bin/ffx/pattern_delete_screen.py index 25323b0..fde42df 100644 --- a/bin/ffx/pattern_delete_screen.py +++ b/bin/ffx/pattern_delete_screen.py @@ -96,7 +96,7 @@ class PatternDeleteScreen(Screen): if event.button.id == "delete_button": - if self.pattern_id is None: + if self.__patternId is None: raise click.ClickException('PatternDeleteScreen.on_button_pressed(): pattern id is undefined') if self.__pc.deletePattern(self.__patternId): diff --git a/bin/ffx/track_descriptor.py b/bin/ffx/track_descriptor.py index 2e0b758..91d01ef 100644 --- a/bin/ffx/track_descriptor.py +++ b/bin/ffx/track_descriptor.py @@ -1,4 +1,5 @@ import logging +from typing import Self from .iso_language import IsoLanguage from .track_type import TrackType @@ -273,7 +274,7 @@ class TrackDescriptor: return self.__trackType def getCodec(self): - return self.__codecName + return str(self.__codecName) def getLanguage(self): if "language" in self.__trackTags.keys(): @@ -305,7 +306,7 @@ class TrackDescriptor: else: self.__dispositionSet.discard(disposition) - def compare(self, vsTrackDescriptor): + def compare(self, vsTrackDescriptor: Self): compareResult = {} diff --git a/bin/ffx/track_details_screen.py b/bin/ffx/track_details_screen.py index c87c7ab..e64397f 100644 --- a/bin/ffx/track_details_screen.py +++ b/bin/ffx/track_details_screen.py @@ -99,6 +99,7 @@ class TrackDetailsScreen(Screen): self.__isNew = trackDescriptor is None if self.__isNew: self.__trackType = trackType + self.__codec = '' self.__audioLayout = AudioLayout.LAYOUT_UNDEFINED self.__index = index self.__subIndex = subIndex @@ -106,6 +107,7 @@ class TrackDetailsScreen(Screen): self.__pattern : Pattern = self.__pc.getPattern(patternId) if patternId is not None else {} else: self.__trackType = trackDescriptor.getType() + self.__codec = trackDescriptor.getCodec() self.__audioLayout = trackDescriptor.getAudioLayout() self.__index = trackDescriptor.getIndex() self.__subIndex = trackDescriptor.getSubIndex() @@ -276,6 +278,8 @@ class TrackDetailsScreen(Screen): kwargs[TrackDescriptor.SUB_INDEX_KEY] = self.__subIndex #! kwargs[TrackDescriptor.TRACK_TYPE_KEY] = TrackType.fromLabel(self.query_one("#type_select", Select).value) + + kwargs[TrackDescriptor.CODEC_NAME_KEY] = self.__codec kwargs[TrackDescriptor.AUDIO_LAYOUT_KEY] = AudioLayout.fromLabel(self.query_one("#audio_layout_select", Select).value) trackTags = {}