[WINDOWS] Internal Directshow Based Player [NO LONGER DEVELOPED] - Printable Version +- Kodi Community Forum (https://forum.kodi.tv) +-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33) +--- Forum: General Support (https://forum.kodi.tv/forumdisplay.php?fid=111) +---- Forum: Windows (https://forum.kodi.tv/forumdisplay.php?fid=59) +---- Thread: [WINDOWS] Internal Directshow Based Player [NO LONGER DEVELOPED] (/showthread.php?tid=61355) Pages:
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
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
|
- cl0ud - 2010-11-06 Currently in DSPlayer how does the rendering of the frame and gui work? does DSPlayer call being scene then pass the surface and the frame to be rendered to the renderer then render the gui once the renderer has finished rendering the frame onto the surface and then call end scene to present the scene? If that is the case then yeah I don't see how it would be possible to use a renderer that creates its own surface unless you could copy the rendered scene from madvr onto the surface used by xbmc and then render the xbmc surface. The only other problem is that when madvr calls end scene the scene will be presented on screen overwriting anything that xbmc has drawn. I guess then that madvr would have to render to an offscreen buffer only (not flip the buffer onto the screen) and pass that buffer back to xbmc via a callback so that xbmc can copy the buffered frame onto its 3d surface and then render its controls before presenting the final frame. I just don't get how other plays like MPC-HC is able to render its controls onscreen when madvr is running in 3d fullscreen exclusive mode or any other renderer for that matter. - SpectreX - 2010-11-13 I have a small issue with DS player. Apple Trailers and youtube videos do not work. When you press play nothing happens. Looking at the log i see an error regarding the MP4 splitter which is not connecting to the graph. Any ideas? . I`m using the default (latest) DSPlayer build, set as the default player, no other codecs installed. - tiben20 - 2010-11-13 cl0ud Wrote:Currently in DSPlayer how does the rendering of the frame and gui work?First, i'll let you know that was really tricky to insert the renderer into xbmc. The way it works xbmc as an application process which always do 1-waiting for a frame to be ready(dvdplayer is calling this from CDVDPlayer::Outputpicture,in the dsplayer case both renderers are processing the d3d surface and then call the main thread to tell him their a frame ready) 2-begin scene 3-renderthegui 4-render the video frame (if the wait for frame wasn't called before the end of the timer the video frame will not be displayer)(also dvdplayer there is copying the picture to the d3dsurface(not the same for the dxva2 rendering)(for dsplayer the current renderer(vmr9 or evr) will get a callback to process the d3dsurface that was processed when it gave the call from step 1) 5-end scene SpectreX:its a codec problem you can try in monogram graphedit to see if its connecting with those filters. I'm currently developing in vb.net a config editor for the dsplayer it's almost ready for public testing ill let know in this post when it is. For the plugin i need some time to work this out - albain - 2010-11-14 Hi, I am a ffdshow team developer and I would like to work on the integration of the ffdshow's subtitles engine into DSPlayer. I have done this work already in Windows Media Center and MediaPortal. The benefits that I can see : - Internal & external subtitles support - More subtitles formats supported (including bluray subs) - Integration with XBMC UI : subtitles delay, streams switching or external subtitles switching... FFDShow already has the APIs to communicate with 3rd party applications (2 different ways actually). Please tell me what you think about it and by advance thanks your for your help Regards Damien - liquidskin76 - 2010-11-14 Hi Albain, It's good to see the man who single-handedly brought HD audio bitstreaming (via ffdshow) to the masses on the xbmc scene! Welcome! - SpectreX - 2010-11-14 @tiben20 - Thx for the quick reply. This happens only on streaming content. If i download and play a trailer via the D&Play option in Apple Trailers, it work just fine. Also, the trailers from HD-Trailers (the ones that you can play by default for the movies XBMC library) work, but when you press stop XBMC freezes. Should i get you an entire debug log, maybe it will help? I`ll try GraphEdit tonight and see what i can come up with. @liquidskin76 - And the best software decoder, with pristine PQ. DSPlayer + MPC-HC video codecs + ffdshow for audio or video = pristine PQ and AQ - blinkseb - 2010-11-15 albain Wrote:Hi, Hi! DSPlayer has already his own subtitles engine, based on mpc-hc one. Using ffdshow one would force the users to actually use ffdshow if they want subtitles support, so it's not a long term option. Moreover, our engine is already deeply integrated into XBMC, and works very well (we also have bluray subs support :p). If someone absolutely want to use ffdshow subtitles engine, the best way is enabling it from the property panel of ffdshow. Adding ffdshow specific code for subtitles (and so UI options) will only confuse end users. But, if you want to submit a patch to add support for ffdshow subtitles, you're more than welcome, but you need to make sure that the default subs engine is used if ffdshow isn't in the graph. - albain - 2010-11-15 Hi blinkSeb and thanks for your answer I have found how it works and indeed MPCHC engine is well integrated into XBMC code but I have found a clean way to add FFDShow subtitles engine without modifying/breaking the existing code. FFDShow engine is enabled by a setting, and even though it won't be loaded if FFDShow is not in the graph Personally I prefer FFDShow subtitles engine because there are more settings and I prefer the rendering About bluray subs, last time I worked on it my PGS implementation inside FFDShow was the most advanced one but it may have changed since Anyway, I understand for sure that you guys don't want to have a mess in the existing code and I'll do my best to prevent this. So I'll submit a patch when I have finished then Damien - tiben20 - 2010-11-15 albain Wrote:Hi blinkSeb and thanks for your answerI'm happy too see someone with experience who want to help with the developement of the project. Just remember to follow the xbmc coding syntax. It is really really different from what i seen in ffdshow. For more information about this see http://forum.xbmc.org/showthread.php?tid=5238 - blinkseb - 2010-11-15 albain Wrote:Hi blinkSeb and thanks for your answer Have fun then What I meant in my post it's, if you want to integrate ffdshow with xbmc gui (for example, subtitles switching, etc.), you should not forget that : 1) the user may not want ffdshow to render the subs 2) ffdshow may not be in the graph for 1), a gui option should be enough, or at least an option in the xml settings. for 2), you should loop over the graph to be sure ffdshow is loaded. You need to know that dsplayer does not work like other DirectShow players: the users choose which filters he wants to use in a xml file, and we load it. DirectShow merit system is *not* used at all. Quote:About bluray subs, last time I worked on it my PGS implementation inside FFDShow was the most advanced one but it may have changed since I rewrote most of the mpchc engine for blu ray subs to support animation on pgs subs. You may want to look at it Quote:Anyway, I understand for sure that you guys don't want to have a mess in the existing code and I'll do my best to prevent this. Existing code is already a mess, it needs a lot of cleanup I think you should look at the SubtitlesManager class, and maybe do something like a subtitles factory to switch between ffdshow / dsplayer engine. If you need anything, don't hesitate to ask, I'm always around. [HS] Il me semble que tu es français non? Je suis sur Lyon! Si jamais tu as des questions, tu peux me pm en français, ça peut peut être aider! Bon courage! [/HS] - albain - 2010-11-16 Ok merci, et moi from Paris.... This is what I've done already : 1/ if video codec is ffdshow or ffdshow DXVA => ok 2/ else others codecs are looped into and I look after ffdshow subtitles or raw filter If ffdshow not present, then fallback to the default engine. Modifications : 1/ CSubtitleManager derivates from new virtual class ISubtitleManager 2/ New class CFFDShowSubtitleManager derivates from ISubtitleManager too 3/ The engine is chosen inside StreamsManager according to settings and a test of ffdshow presence. This should not be long to finish. Otherwise I have found a bug in the VS2008 project : the file SystemGlobals.h should be replaced with SystemGlobals.cpp otherwise the link fails - blinkseb - 2010-11-16 albain Wrote:Ok merci, et moi from Paris.... Perfect, that's what I had in mind! I personally don't use vs2008 so, indeed, it may have some issues, thanks for reporting, i'll fix that! - tiben20 - 2010-11-16 albain Wrote:Ok merci, et moi from Paris.... albain Wrote:Ok merci, et moi from Paris....lol un autre moi je suis du québec. Another french developing under windows. Could you keep development related reply in the development thread http://forum.xbmc.org/showthread.php?tid=59610 - steelman1991 - 2010-11-16 Its a takeover - tiben20 - 2010-11-17 Here a preview of the first part of the .net application i'm doing to configure the dsplayer xml files. This part is currently working for saving the xml from a changed rules The drag and drop from this part is working but i didn't complete the entire filters loading for testing a config. Ill still need to do some important part related with the setttings before putting this as a public beta |