Skip to content

Commit 38b6332

Browse files
committed
* Adding #544 Download HDR10 Metadata button in Source Details tab for exporting mastering display and content light level data in x265-compatible format (thanks to yundebian918)
1 parent 9798278 commit 38b6332

15 files changed

Lines changed: 186 additions & 15 deletions

File tree

CHANGES

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
* Adding #682 HE-AAC and HE-AAC v2 audio profile selection for AAC and libfdk_aac codecs (thanks to Augusto7743)
2121
* Adding Reverse Video option in the Advanced panel (applies FFmpeg reverse video filter and areverse audio filter for converted tracks)
2222
* Adding rigaya encoder support for Equalizer (--vpp-tweak), Denoise (--vpp-nlmeans/knn/pmd), Deblock (--vpp-deblock), Output FPS (--vpp-fps), and Video Track Title — only Video Speed and Reverse Video remain unsupported
23+
* Adding #544 Download HDR10 Metadata button in Source Details tab for exporting mastering display and content light level data in x265-compatible format (thanks to yundebian918)
2324
* Adding structured table view to Source Details tab with grouped sections, human-readable value formatting, Download JSON export, and full path tooltips on source/output filename fields
2425
* Adding warning in Data & Attachments tab and reason text when tracks are incompatible with the output format (e.g. data streams in MKV)
2526
* Changing Advanced panel layout to use QGroupBox sections (Video Details, Frame Rate, Video Processing, Color & Appearance, Color, Output) with restoration filters separated from color correction filters
@@ -35,6 +36,7 @@
3536
* Fixing HDR tonemapping failing with zscale "no path between colorspaces" by passing complete source colorspace parameters (primaries, matrix, transfer) to the zscale filter, with fallback retry for crop previews when tonemapping still fails
3637
* Fixing bitrate combobox being unreadably small on x264 and x265 encoders — combo now sizes to fit its widest item
3738
* Fixing rigaya encoder pad/letterbox calculation ignoring crop dimensions due to incorrect type check
39+
* Fixing rigaya encoders (NVEncC, QSVEncC, VCEEncC) crashing with no output when data streams are copied to non-MKV containers — `--data-copy` and `--attachment-copy` are now only emitted for Matroska output
3840
* Fixing startup crash when queue file exists but is missing the 'queue' key
3941

4042
## Version 6.2.1

fastflix/data/languages.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1723,6 +1723,10 @@ Download JSON:
17231723
ukr: Завантажити JSON
17241724
kor: JSON 다운로드
17251725
ron: Descărcați JSON
1726+
Download HDR10:
1727+
eng: Download HDR10
1728+
Text Files:
1729+
eng: Text Files
17261730
Download Cancelled:
17271731
deu: Download abgebrochen
17281732
eng: Download Cancelled
@@ -13752,6 +13756,8 @@ Data streams are not supported in this output format:
1375213756
ukr: Потоки даних не підтримуються у цьому форматі виводу
1375313757
kor: 이 출력 형식에서는 데이터 스트림이 지원되지 않습니다.
1375413758
ron: Fluxurile de date nu sunt acceptate în acest format de ieșire
13759+
Data and attachment streams are not supported by hardware encoders for this output format:
13760+
eng: Data and attachment streams are not supported by hardware encoders for this output format
1375513761
Downloading HDR10+ Tool:
1375613762
eng: Downloading HDR10+ Tool
1375713763
deu: Herunterladen des HDR10+ Tools

fastflix/encoders/common/encc_helpers.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,9 +268,17 @@ def build_subtitle(subtitle_tracks: list[SubtitleTrack], subtitle_streams, video
268268
return result
269269

270270

271-
def build_data(data_tracks: list[DataTrack], data_streams, attachment_streams) -> List[str]:
271+
def build_data(data_tracks: list[DataTrack], data_streams, attachment_streams, output_path=None) -> List[str]:
272272
if not data_tracks:
273273
return []
274+
275+
# Rigaya encoders can only copy data/attachment streams to Matroska containers.
276+
# MP4/MOV and other formats crash because the muxer can't handle data streams.
277+
if output_path:
278+
ext = str(output_path).rsplit(".", 1)[-1].lower() if "." in str(output_path) else ""
279+
if f".{ext}" not in {".mkv", ".mka"}:
280+
return []
281+
274282
command_list = []
275283
data_copies = []
276284
attachment_copies = []

fastflix/encoders/nvencc_av1/command_builder.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,12 @@ def build(fastflix: FastFlix):
182182
command.extend(build_audio(video.audio_tracks, video.streams.audio))
183183
command.extend(build_subtitle(video.subtitle_tracks, video.streams.subtitle, video_height=video.height))
184184
command.extend(
185-
build_data(video.data_tracks, getattr(video.streams, "data", []), getattr(video.streams, "attachment", []))
185+
build_data(
186+
video.data_tracks,
187+
getattr(video.streams, "data", []),
188+
getattr(video.streams, "attachment", []),
189+
video.video_settings.output_path,
190+
)
186191
)
187192

188193
if settings.extra:

fastflix/encoders/nvencc_avc/command_builder.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,12 @@ def build(fastflix: FastFlix):
152152
command.extend(build_audio(video.audio_tracks, video.streams.audio))
153153
command.extend(build_subtitle(video.subtitle_tracks, video.streams.subtitle, video_height=video.height))
154154
command.extend(
155-
build_data(video.data_tracks, getattr(video.streams, "data", []), getattr(video.streams, "attachment", []))
155+
build_data(
156+
video.data_tracks,
157+
getattr(video.streams, "data", []),
158+
getattr(video.streams, "attachment", []),
159+
video.video_settings.output_path,
160+
)
156161
)
157162

158163
if settings.extra:

fastflix/encoders/nvencc_hevc/command_builder.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,12 @@ def build(fastflix: FastFlix):
182182
command.extend(build_audio(video.audio_tracks, video.streams.audio))
183183
command.extend(build_subtitle(video.subtitle_tracks, video.streams.subtitle, video_height=video.height))
184184
command.extend(
185-
build_data(video.data_tracks, getattr(video.streams, "data", []), getattr(video.streams, "attachment", []))
185+
build_data(
186+
video.data_tracks,
187+
getattr(video.streams, "data", []),
188+
getattr(video.streams, "attachment", []),
189+
video.video_settings.output_path,
190+
)
186191
)
187192

188193
if settings.extra:

fastflix/encoders/qsvencc_av1/command_builder.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,12 @@ def build(fastflix: FastFlix):
186186
command.extend(build_audio(video.audio_tracks, video.streams.audio))
187187
command.extend(build_subtitle(video.subtitle_tracks, video.streams.subtitle, video_height=video.height))
188188
command.extend(
189-
build_data(video.data_tracks, getattr(video.streams, "data", []), getattr(video.streams, "attachment", []))
189+
build_data(
190+
video.data_tracks,
191+
getattr(video.streams, "data", []),
192+
getattr(video.streams, "attachment", []),
193+
video.video_settings.output_path,
194+
)
190195
)
191196

192197
if settings.extra:

fastflix/encoders/qsvencc_avc/command_builder.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,12 @@ def build(fastflix: FastFlix):
165165
command.extend(build_audio(video.audio_tracks, video.streams.audio))
166166
command.extend(build_subtitle(video.subtitle_tracks, video.streams.subtitle, video_height=video.height))
167167
command.extend(
168-
build_data(video.data_tracks, getattr(video.streams, "data", []), getattr(video.streams, "attachment", []))
168+
build_data(
169+
video.data_tracks,
170+
getattr(video.streams, "data", []),
171+
getattr(video.streams, "attachment", []),
172+
video.video_settings.output_path,
173+
)
169174
)
170175

171176
if settings.extra:

fastflix/encoders/qsvencc_hevc/command_builder.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,12 @@ def build(fastflix: FastFlix):
186186
command.extend(build_audio(video.audio_tracks, video.streams.audio))
187187
command.extend(build_subtitle(video.subtitle_tracks, video.streams.subtitle, video_height=video.height))
188188
command.extend(
189-
build_data(video.data_tracks, getattr(video.streams, "data", []), getattr(video.streams, "attachment", []))
189+
build_data(
190+
video.data_tracks,
191+
getattr(video.streams, "data", []),
192+
getattr(video.streams, "attachment", []),
193+
video.video_settings.output_path,
194+
)
190195
)
191196

192197
if settings.extra:

fastflix/encoders/vceencc_av1/command_builder.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,12 @@ def build(fastflix: FastFlix):
158158
command.extend(build_audio(video.audio_tracks, video.streams.audio))
159159
command.extend(build_subtitle(video.subtitle_tracks, video.streams.subtitle, video_height=video.height))
160160
command.extend(
161-
build_data(video.data_tracks, getattr(video.streams, "data", []), getattr(video.streams, "attachment", []))
161+
build_data(
162+
video.data_tracks,
163+
getattr(video.streams, "data", []),
164+
getattr(video.streams, "attachment", []),
165+
video.video_settings.output_path,
166+
)
162167
)
163168

164169
if settings.extra:

0 commit comments

Comments
 (0)