forked from bdhero/bdhero
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO.txt
235 lines (170 loc) · 8.75 KB
/
TODO.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
Chores
======
[ ] UPDATE Build/Tools NuGet Package!!!
[ ] Add WyDay to LicenseUtils (SplitButton, LinkLabel2, etc.)
[ ] Create new library that calls the native or managed API for each OS (e.g., DrawThemedTextBoxBorder)
[ ] Use HandleRef instead of IntPtr
[ ] Use try/catch around P/Invoke calls instead of #if !__MonoCS__?
[ ] Normalize capitalization of Win32 classes/structs/enums
[ ] Missing XML comment for publicly visible type or member ...
[ ] Break up DotNetUtils into separate projects
[ ] Test silent installs and updates
[ ] Add /portable command line arg
[ ] Convert batch files to MSBuild
[ ] Centralize BDHero project URLs
[ ] Move plugin enabling/disabling code to Controller
[ ] Add logging
[ ] ProcessUtils and DotNetUtils?
[ ] Unit tests
[ ] Exception handling in all scenarios
[ ] Remove unused outputPath args in Controller.cs
[ ] Clean up temp files
[ ] FFmpegMuxerPlugin: %TEMP%/FFmpegMuxerPlugin/%PID%/..?
[ ] AutoUpdate: %TEMP%/bdhero/update/*.exe
[ ] Installer rollback: %TEMP%/bdhero/rollback
Bugs
====
[ ] ffmpeg:
[-] 00001.mpls: (2011) The Day
[ ] 00000.mpls: (2012) The Three Stooges
[Q] 00000.mpls: (2011) The Mechanic
[Q] 00000.mpls: (1997) Titanic
! Stream map '0:2' matches no streams.
[-] 00000.mpls: (2008) Transporter 3
[-] 00000.mpls: (1988) Who Framed Roger Rabbit
? 1080i @ 25fps
[ ] Path redaction: spaces in file paths without quotes
- e.g.: https://github.com/bdhero/bdhero/issues/37
[ ] "Filter Playlists" and "Filter Tracks" settings no longer work
[ ] 500_DAYS_OF_SUMMER: bdmt_eng.xml title sanitized is blank: sanitization removes (... and everything after it, and BDMT title is (500) Days of Summer
Detection
=========
[ ] Battle Los Angeles (2011)
Features
========
[ ] known ffmpeg defect alert
[ ] max resync size reached, could not find sync byte
- https://github.com/bdhero/bdhero/issues/32
- https://github.com/bdhero/bdhero/issues/24
[ ] mkvmerge plugin
[ ] old ffmpeg versions
[ ] Detection/auto-selection:
[ ] "Rate" tracks/playlists based on "evidence" - confidence level that they are main feature
[ ] Apply certain filters only AFTER main playlists have been determined
- e.g., "4 possible main playlists, but only 1 has ChapterDb results" (The Expendables 2)
[ ] Primary audio -OR- subtitle language
[ ] Most common first audio track language (main movie playlists only)
[ ] If no audio (e.g., silent film - NOSFERATU), use same algorithm w/ subtitles
[ ] Select primary language tracks -AND- tracks w/ the user's preferred language (e.g., Pan's Labyrinth)
[ ] Configurable via preferences
[ ] Prompt user for preferred language on first run?
[ ] Suggest languages from:
- InstalledUICulture: en-US
- CurrentCulture: bs-Latn-BA
- CurrentUICulture: en-US
[ ] Add ChapterGrabber preferences for adding leading chapter numbers
[X] Remove "1 - " (e.g.: "Killers" (2010)) (needs to be tested)
[ ] Machete (2010)
[ ] Battle Los Angeles (2011)
- Kapitola 1...16
[ ] Clean up path placeholders in FileNamerPrefs (including upgrade search/replace)
[ ] Add "use last folder" option to File Namer preference dialog
[ ] Expand placeholders in ALL paths (e.g., FormMain output path FileTextBox, command line)
[ ] Add "Disc Info" icons to main form
[ ] Cache folder?
[ ] Customizable timeout values for ISAN, ChapterDb, and TMDb plugins
[ ] Allow user to cancel HTTP requests (e.g., TMDb is taking too long)
[ ] Allow to save as .MKA / .MKS
[ ] Centralize cover art dimensions
[ ] Download larger cover art as necessary when window is resized
[ ] Be smart about downloading smallest sizes first
[ ] Cache images on disk? (w/ user preference?)
[ ] Finish FormMediaCustom.cs (incl. drag-n-drop from browsers)
[ ] Compile custom FFmpeg and/or MKVToolNix builds
[ ] Remember window size and position (support aero snap) w/ preference to enable/disable
[ ] "Resize Window" form: handle maximized/aero snap
[ ] Decide whether to keep or remove subtitle track count in Playlist.IsPossibleMainFeature
[ ] Revamp "Disc Info" dialog
[ ] Context menu for Playlist listitems: add "Language" option
[ ] Fix or remove "low quality" playlist detection
[ ] Consider chapter count and timestamps when looking for duplicate playlists (playlists w/ identical streams but different chapters are not dups)
[ ] Plugin hooks for UI events:
[ ] Select a movie/TV show
[ ] Re-configure playlist (change Cut, Language, selected tracks) -- (for updating output file name, MKV title, track title)
[ ] Re-configure tracks (change Cut, Language, selected tracks) -- (for updating output file name, MKV title, track title)
Mono
====
Critical
--------
1. Use Mono build of Ninject.dll
2. ICSharpCode.TextEditor.dll - Net20 NuGet package must be copied to Net40 folder
3. Newtonsoft.Json.dll not getting copied to BDHeroGUI/bin/Debug
Important
---------
2. Replace ffmpeg.exe and mkvmerge.exe with Mac versions
Meh
---
[ ] Remove Mono compile-time checks (via #if __MonoCS__) and use runtime checks instead: http://stackoverflow.com/a/329072/467582. Don't compile w/ Xamarin Studio - only use Visual Studio.
Backlog
=======
[ ] Format specifiers for placeholder variables (e.g., lower/upper-case, short, long)
[ ] "About 1 hour remaining" when estimates are in flux
[ ] Estimate progress for the last 5 seconds (ever 5 seconds reset the counters for "time started" and "initial progress percentage")
[ ] Scrape more information out of bdmt_eng.xml (e.g., "Charade (1963)")
[ ] <di:numSets>1</di:numSets>
[ ] <di:setNumber>1</di:setNumber>
[ ] <di:titleName titleNumber="1">Main Feature</di:titleName> (00001.MPLS)
[ ] <di:language>eng</di:language>
[ ] What does AnyDVD HD report when it can't auto-detect the region code of a region-locked disc (e.g., Region A) and AnyDVD is configured to NOT remove region codes? What does it report when it DOES remove the region code?
[ ] Allow individual plugins to be "skipped" at runtime via "Cancel" button dropdown
[ ] Offline detection
[ ] Remember playlist/track filters
[ ] Allow user to maintain a list of playlist/track filter presets
[ ] Make HyperlinkLabels draggable
[ ] Prompt user for "Scan or convert? (Remember choice)" when user presses <ENTER> in FormMain
[ ] Prompt user "Are you sure you want to cancel muxing?" when they press "Cancel" button (w/ "Remember choice")
[ ] Allow opening Blu-ray discs w/ BDHero (Windows association)
[ ] Investigate 3D scanning output from BDInfo:
4352 2043000 5.32
4352 1911000 4.98
4352 2061000 5.37
4352 2034000 5.30
4352 2112000 5.50
4352 2157000 5.62
[ ] Don't erase the user's custom chapter titles when they re-select "Default"
[ ] Add "Always show details" checkbox in error dialog
[ ] Add stream files listview?
[ ] Context menu and double click to play for playlists
[ ] Context menu and double click to view codec info for tracks?
[ ] Group input FileTextBox and buttons into panel; do same w/ output FileTextBox and buttons
[ ] Allow pausing of tasks
[ ] Angle support
[ ] Validate filter window inputs
[ ] Display drives above input textbox (like VidCoder)
[ ] Background thread for drive detection
[ ] Centralize drive detection logic
[ ] Handle exceptions during drive detection
[ ] CLI prompt to select TMDb search result, playlist, angle, overwrite existing file
[ ] CLI arg to dump list of main movie playlist files
[ ] Asynchronous TMDb poster/cover art getter thread (use futures?)
[ ] Add Windows 7 Taskbar buttons for pause/resume and cancel
[ ] Add Windows 7 Taskbar jump lists?
[ ] Code Completion:
[ ] When suggestion list is open, filter the list as the user types and close the suggestion list if no suggestions match what the user has typed (the text to the left of the caret).
[ ] Handle "%UserName%| \" (caret placed at the '|')
[ ] Handle "%|\" (caret placed at the '|')
[ ] TAB/ENTER key: disable default behavior when code completion window is open
[ ] Broken on Mono
[ ] Home/end key should jump to start/end of line when completion window is open (WPF)
[ ] Allow user to use their own GitHub OAuth token (for error reporting, etc.)
Chris' Plugins
==============
[ ] TMDb: Report more detailed, fine-grained progress when loading lots of search results and poster images
[ ] Chapter Grabber: (THE MATRIX REVOLUTIONS):
01:57:31.210: Freedom and Sunlight
02:00:12.371: End Credits
02:09:13.745:
[ ] URI encoding (e.g., http://chapterdb.org/chapters/search?title=BLACK HAWK DOWN&chapterCount=0)
[ ] Unescape XML/HTML entities (e.g., "&" -> "&")
[ ] Search ALL media types in Chapter Grabber plugin (not just Blu-ray)
[ ] Use chapter grabber plugin to auto-detect main movie by comparing playlists to ChapterDb search results