View Full Version : Opensource GraphEdit project


RadScorpion
19th January 2008, 16:32
Hello people. If you work with DirectShow you might be interested in this new project.

clsid gave me an idea of a new graph information project and because I've been missing lot of cool features in graphedit myself I've decided to start a new project - GraphStudio.

Project is free with open source. You can find screenshots, binaries and source on my blog here :
http://blog.monogram.sk/janos/tools/monogram-graphstudio/

As of this moment, the application si really simple, but any ideas/hints/reports are more than welcome.

Igor

Sharktooth
19th January 2008, 16:45
oh! an OSS alternative to graphedit!
nice, im going to try it asap:)
thanx

RadScorpion
20th January 2008, 16:53
Updated version is up. You can follow the original link from the first post to download the latest version.

I've added some new features like:

added seekbar
added play/stop/pause controls
added Graph Events window with copy-to-clipboard feature
added logging of all known DirectShow events
EC_USERABORT now stops the graph


Igor

Kurtnoise
20th January 2008, 17:05
Great...:)

Some ideas for the next releases:
Drag & Drop
Loading Filters interface with the right click.

RadScorpion
20th January 2008, 17:06
Yepp.. as well as enumerating all compatible filters for pin via rightclick :)

clsid
20th January 2008, 17:34
You already know my most desired feature:
Text based representation of the graph.

What about a tabbed view with the following tabs:
- Visual representation of the graph
- Text representation of the graph (for each filter: name, clsid, filename, merit) (possibly also some pin information)
- Graph events
Options in view menu for enabling/disabling which tabs get shown.

In case of multiple active graphs, you could add a number to each tab title to distinguish between graphs. For example: "Graph (1)", "Graph Details (1)", "Graph Events (1), "Graph (2)", etc.


I think it would be useful if the "Open" button on the toolbar can be used to open files of all types. Let the file extension determine the action to take: .grf -> open graph, .ifo -> render DVD, everything else -> render media file.

RadScorpion
20th January 2008, 20:12
I was thinking of the format how the text report should look like.
What do you think of this ?


-------------------------------------------------------------------
Filters
-------------------------------------------------------------------
1. D:\Friends.avi {CLSID_AsyncReader}
2. AVI Splitter {CLSID_AviSplitter}
3. ffdshow MPEG-4 Video Decoder {04FE9017-F873-410E-817E-AB91661A4EF7}
4. Video Renderer {CLSID_VideoMixingRenderer}
5. ffdshow Audio Decoder {0F40E1E5-4F79-f988-B1A9-CC98794E6B55}
6. Default DirectSound Device {CLSID_AudioRenderer}

-------------------------------------------------------------------
Filters Details
-------------------------------------------------------------------
TODO:

-------------------------------------------------------------------
Connections
-------------------------------------------------------------------
[D:\Friends.avi]
|
+-- (Output) -> (input pin)
[AVI Splitter]
|
+-- (Stream 00) -> (In)
| [ffdshow MPEG-4 Video Decoder]
| |
| +-- (Out) -> (VMR Input0)
| [Video Renderer]
|
+-- (Stream 01) -> (In)
[ffdshow Audio Decoder]
|
+-- (Out) -> (Audio input pin(rendered))
[Default DirectSound Device]

-------------------------------------------------------------------
Connection Details
-------------------------------------------------------------------
1. [D:\Friends.avi]/(Output) -> [AVI Splitter]/(input pin)
Major: MEDIATYPE_Stream
Subtype: MEDIASUBTYPE_Avi
Format: GUID_NULL

2. [AVI Splitter]/(Stream 00) -> [ffdshow MPEG-4 Video Decoder]/(In)
Major: MEDIATYPE_Video
Subtype: {44495658-0000-0010-8000-00AA00389B71} - FourCC(XVID)
Format: FORMAT_VideoInfo
VIDEOINFOHEADER:
576x532 ... TODO:

3. [ffdshow MPEG-4 Video Decoder]/(Out) -> [Video Renderer]/(VMR Input0)
Major: MEDIATYPE_Video
Subtype: MEDIASUBTYPE_YV12
Format: FORMAT_VideoInfo2
VIDEOINFOHEADER2:
Size: 576x432
Aspect Ratio: 4x3
Interlace format: Frames
rcSrc: (0,0,576,432)
rcDst: (0,0,576,432)

clsid
20th January 2008, 22:19
First of all I think it would be useful to be able to configure the level of detail. For most users the filters list and filter detail information will be sufficient. Connection info is more for expert users (like here on Doom9).

I would suggest to only use the filter's names under the "Filters" header. The CLSID should go under "Filter Details". I think that will improve readability.

Perhaps the "Connections" part can be skipped? You could just list all 5 connections under "Connection Details".

Maybe hide the pin name when there is only 1 input (or output) pin on a filter. I think that will improve readability.

Some extra spaces to line up text:
Major: MEDIATYPE_Stream
Subtype: MEDIASUBTYPE_Avi
Format: GUID_NULL

CruNcher
21st January 2008, 07:13
Nice Rad i had expected to find this in the Development Section of the Board tough hehe :)

Feature Request:
Inteligent Connection Spy for the Render Media File mode (like Matroskadiag does, so you know to wich filters it connects and where it might fail, great for Debuging)
Also a little Proccess Explorer functunality would be nice (so you right click on the node and can see from wich dll,ax it is executed this way you could identifiy especialy file Parsers very easy)

Btw: I see you stoped? Radlight and with it the Delphi times,congrats to your Master :)

RadScorpion
21st January 2008, 09:14
:) I'm always unsure if I chose the right board section.

Yes. The IC-spy feature can be easily done with the IAMGraphBuilderCallback interface. This way it could be possible to abort a never-ending loop when the graph builder goes mad.

As for the RadLight thing. After we had some problems with Martin there have been some things that kept us from working on RL. But since these problems have been settled recently we can freely write stuff again and perhaps prepare some basics for new RL. We've created a new company (the MONOGRAM Multimedia) together with another slovak IT company (MONOGRAM Technologies). As the result we at MM work together with MT on larger projects and can write free/opensource stuff labeled with the magic M word partly in working hours as a kind of promotion... So everyone wins.

RadScorpion
21st January 2008, 20:48
Okay. I've uploaded a new 0.1.2.0 build.
Added new window for text reports with report type combo box. Currently there are just dummies and the highest detail level is used.
I've also added parser for WAVEFORMATEX structure.
What do you think?

clsid
21st January 2008, 23:36
Filters are listed in reverse order in the log. Or is that intentional?

A small cosmetic request: could you capitalize the hex numbers of the merits in the "Insert Filters" dialog? That way they will line up nicely.

RadScorpion
22nd January 2008, 22:03
Yet another updated version :)
[0.1.3.0 - Alpha 22/Jan/2008]

added Drag&Drop support for opening files
filters dialog now displays merits formatted as uppercase
inserted filters are checked for IFileSourceFilter
filters exposing IFileSourceFilter are named after the file they deliver
added IFileSourceFilter dialog that keeps list of recently used files/urls
added “Insert File Source (Async.)” shortcut into the Graph menu
added parser for VIDEOINFOHEADER, VIDEOINFOHEADER2, BITMAPINFOHEADER and MPEG2VIDEOINFO
added 5 levels of details for text report


cu
Igor

clsid
24th January 2008, 16:07
This file (http://red.cachefly.net/video/crossing1.mov) can make GraphStudio crash. To reproduce: drag&drop the file into GraphStudio, then drag&drop it in a second time. Crash. Tried the same with several other files, but it only happens with this specific file.

An inconsistency: Insert a source filter. No other filters. The visual graph will display the name of the opened file (= correct behavior). The text log however, will show the name of the filter instead of the filename.

Another inconsistency (perhaps intentional): Drag&drop will clear the window and create a new graph. "File -> Render media file" does not clear the window. So that can result in multiple active graphs.

Text Information currently behaves like a log. I personally would prefer if it only reflected the active graphs in GraphStudio. I would suggest the following:
- Remove the refresh and clear buttons
- Automatically clear and refresh the contents of the text information window when (1) a change to the graph(s) is made, or (2) a display setting (such as report detail) is changed.
- Add a save button that opens a "Save File" dialog where a user can save the info as a .txt file.
- Currently the text information is a combination of all displayed graphs. That is a bit confusing. It would be better to write the information as separated pieces of text. So first the info for graph 1, then the info for graph 2, etc. Or maybe add a dropdown selection box where the user can select for which graph to display information. The name of the first filter in each graph could be used a titles in the dropdown.

Could you disable (make them "greyed out") the buttons whos functionality has not been implemented yet.

The default renderer that is used is VMR(7?). Is it possible to an option to use a different renderer? Maybe by right-clicking on the video renderer in the graph and having an option like "Change video renderer" that opens a dialog that lists all available renderers.

Another useful feature could be a frame grab function to take screenshots. Or perhaps even something similar to the "Save Thumbnails" function of MPC.

RadScorpion
24th January 2008, 23:02
Good work with testing :) thank you.

I did not have time yet to check the file but I'll try as soon as possible.

Yes. You are right with the filter names in text report and graph. At the moment I just wanted to test how the text reports would look like and I would like to rewrite the graph analysis part so the output would not only be limited to static text reports. My idea was a tree structure with abstract classes where nodes would represent structures and leaves would represent "key=value" pairs with type info so there could be different actions/views possible. E.g. GUID type could be copied to memory as {XXXXXXXX-XXXX-XXXX....} or also as a piece of C++ code that would declare the given GUID. For FOURCC codes the hexadecimal display could be used or four character strings... With this tree structure simple class could export information into HTML or XML as well.

As for the Drag&Drop behavior. I have observed how graphedit behaves on this one. The "open file" item stops any graph that may be active, releases everything and creates a new graph. Then the specified file is checked for extension and a new graph is constructed either from GRF file or using IGraphBuilder::RenderFile.

"Render media file" item can only be used when the graph is stopped and it will add necessary filters to existing graph to render specified file.

In both cases only one existing graph may remain. When a file is dropped into the GraphStudio, it is being processed by the "open file" method.

Hmm.. the report thing is a bit more complicated. It is possible to detect changes in graph by reacting on the EC_GRAPH_CHANGED event. But this only covers addition and removal of filters. E.g. dynamic format changes can not be traced this way... and you can see that e.g. the format between decoder and video renderer is different when you first build the graph and after you start it.

Perhaps there could be more views. One that would only reflect the filters and connections. And another one that would also display detailed information about formats.

@disable buttons: yes
@different renderer: yes
@screenshot: definitely :)

I just don't know where to start with so many features :)

Thanks again for testing.

Igor

squid_80
25th January 2008, 04:29
Pretty please could you look at implementing the Connect to Remote Graph option? I'm so sick of restarting apps because they crash after I use graphedt to check that everything's being connected properly. Or graphedt just randomly fails, and has to be repeatedly retried until it works.

clsid
25th January 2008, 12:35
Hmm.. the report thing is a bit more complicated. It is possible to detect changes in graph by reacting on the EC_GRAPH_CHANGED event. But this only covers addition and removal of filters. E.g. dynamic format changes can not be traced this way... and you can see that e.g. the format between decoder and video renderer is different when you first build the graph and after you start it.I see. In that case you could let it update automatically when the graph is changed, and keep the refresh button so users can manually update the info to see the effects of dynamic changes.


I just don't know where to start with so many features Start with the last few missing features in GraphStudio that are present in GraphEdit. Like viewing property pages and the remote graph. Then everyone can dump GraphEdit and switch to your tool.
After that you could add some filter management functionality. Unregister filters and changing merits. That is used very often.
Then implement the tree structure for storing the filter and connection objects.
After that add "Filter Details" section to the Text Information.

RadScorpion
26th January 2008, 22:39
I've uploaded a new build - 0.1.4.0.


[0.1.4.0 - Alpha 26/Jan/2008]
+ GraphStudio can now display property pages
+ added rightclick menu on filters/pins
+ doubleclicking a filter will show its property page
+ the "Property page" button in "Filters" window now works
+ added shourcut - doubleclicking a filter in the "Filters" window will add it to the graph
+ added "Render pin" feature
+ not-implemented buttons are disabled now
+ added vista-style tool bars


As for the crash thing I think I may have a clue. It appears that the crash happens when releasing a filter graph with certain filters. But I think this may have something to do with the filters themselves. I have tested it with one of my filters that contained a stupid bug. When I released and removed all filters manually and then released the graph the crash did not happen.

clsid
26th January 2008, 22:54
Just tested the new version.

"Render pin" feature is cool :)
Could you hide the option from the menu (instead of disabling it) when a pin is already rendered?

The properties option will open an empty window (with ok, close, apply buttons) for filters that have no property page.

Another addition for the ToDo list: volume slider and/or mute button

RadScorpion
26th January 2008, 23:02
Could you hide the option from the menu (instead of disabling it) when a pin is already rendered?
Okay. A cool feature could be to display a list of compatible filters in the right-click menu of a pin so you could directly select the next filter in the chain without the need to dig though the complete filter list.

The properties option will open an empty window (with ok, close, apply buttons) for filters that have no property page.Yes.. for the moment. There will always be at least one page for filter/pin displaying the information such as filter name, file, version, clsid, mediatype, ..etc. I'd also like to implement property pages for the most common interfaces such as IFileSourceFilter.

Another addition for the ToDo list: volume slider and/or mute buttonor a vertical sliderbar that would be located directly in the box of any filter exposing IBasicAudio interface. It could be alpha blended and fade in/out as you approach the fitler with your mouse cursor :). This way each of audio renderers could be configured separately in case more audio streams are present in the graph.

RadScorpion
3rd February 2008, 09:51
Hello. Here is a fresh new build of GS.

Changes since last version:

* added most recently used list (with Clear button)
* filters are disconnected and removed manually when closing graph
* added screenshot-to-clipboard feature
* added Remote Graph feature
* GraphStudio can detect state changes from remote graph


Latest binary can be downloaded here:
http://dev.monogram.sk/websvn/filedetails.php?repname=graphstudio&path=/trunk/bin/graphstudio.exe

Igor

Gromozeka
4th February 2008, 09:26
HI Igor. My name is Igor too
I like compressed in Graphedit, but it is inconvenient
I hope your program (graphstudio.exe) will be convenient and functional
Badly that there is no toddler in your program:

graphedit:
http://keep4u.ru/imgs/s/080204/e9/e98c9cf46ed9b2b257.jpg (http://keep4u.ru/full/080204/e98c9cf46ed9b2b257/jpg)

graphstudio:
http://keep4u.ru/imgs/s/080204/6d/6da1adb473a14f6cdd.jpg (http://keep4u.ru/full/080204/6da1adb473a14f6cdd/jpg)

RadScorpion
4th February 2008, 15:23
You mean to have an alternative filter placement algorithm that would break long graphs into several rows ?

check
4th February 2008, 15:43
Nice tool, the 'upcoming' feature list is also very interesting. What's the preferred way to report existing bugs? Just to post them in here?

clsid
4th February 2008, 15:45
You mean to have an alternative filter placement algorithm that would break long graphs into several rows ?I think he just means a scrollbar.

RadScorpion
4th February 2008, 16:44
Nice tool, the 'upcoming' feature list is also very interesting. What's the preferred way to report existing bugs? Just to post them in here?

You can do it either here or at the discussion board at my blog (which would I prefer):
http://dev.monogram.sk/forum/viewforum.php?f=4

Gromozeka
4th February 2008, 23:24
You mean to have an alternative filter placement algorithm that would break long graphs into several rows ?

But what to do when filters it is a lot of?
Filters are not located in a chain graph's

RadScorpion
9th February 2008, 14:17
Hello people.

Latest build of GS contains the following changes:

[0.1.6.0 - Alpha 09/Feb/2008]
+ added scrollbars when graph is larger than view area
+ added zoom (50%, 75%, 100%, 150%, 200%)
+ faster graph rendering
+ screenshot will contain whole graph even if it is not completely visible in the view area
+ added IFileSinkFilter handling page
+ added shortcuts to create File Writer

You can download the executable here : http://blog.monogram.sk/janos/download/dl-graphstudio.php

Igor

clsid
9th February 2008, 15:34
There is a weird behavior with the "Render media file" functionality:
The graph for the first file will be constructed correctly. But if I try to render a second file (without clearing window), then the graph is not correct. The second graph doesn't use the ffdshow video decoder, even if it should do so. The result can be that the video pin is not connected, or it connects to the AVI Decompressor.
GraphEdit has the same problem. Opening the same two files in two player instances works without problems.
By default ffdshow video decoder prevents multiple instances in the same graph. Does that mean that Graph* are treating the two graphs as one?

I personally would prefer if the window would automatically be cleared when I render a new file. Perhaps you can add an option for that, or make it the default behavior.

It keeps a recent file list in the registry. There is an option to clear it. But I don't see the list itself anywhere in the application.

RadScorpion
9th February 2008, 16:19
The "render media file" is supposed to add another chain of filters that would be able to process the file into the existing graph. Perhaps it would be more obvious if it was named "Add media file" but I tried to follow original naming from GraphEdit.

If you try to "open a file" you should use the "Open graph" feature. it can open both GRF files as well as other media files. This function will stop and clear the existing graph first and then renders the specified file. ... okay I agree. A checkbox to clear the graph would probably be the best solution.

The recent list is only triggered by "Open/Save/SaveAs Graph". You're right. This should probably be linked to render file as well.

clsid
9th February 2008, 16:40
The "render media file" is supposed to add another chain of filters that would be able to process the file into the existing graph. Perhaps it would be more obvious if it was named "Add media file" but I tried to follow original naming from GraphEdit.What is the usefulness of rendering multiple files in a single graph? One graph per file is more logical to me.

RadScorpion
9th February 2008, 16:44
You might want to have an encoding chain of filters constructed and then add input streams by "rendering the files". This is usefull e.g. when creating an MPEG-TS stream with multiple programs inside.

Gromozeka
9th February 2008, 20:16
But how to allocate it is a lot of filters (as in graphedit-e) that them to remove at once?

http://keep4u.ru/imgs/s/080209/e9/e92d671889661fe84e.jpg (http://keep4u.ru/full/080209/e92d671889661fe84e/jpg)

At saving of the project expansion GRF does not register and the name is not appropriated automatically

http://keep4u.ru/imgs/s/080209/0f/0fb2b3abfb6457c4f9.jpg (http://keep4u.ru/full/080209/0fb2b3abfb6457c4f9/jpg)

RadScorpion
9th February 2008, 21:34
Right now you can select multiple filters by holding the SHIFT key and clicking them one-by-one. I'll add the selection rectangle in the next build.

@missing file extension: thank you, I'll fix that.

Gromozeka
9th February 2008, 21:57
You in the future can realize it? :)

http://keep4u.ru/imgs/s/080209/7b/7bc44b061303d60b75.jpg (http://keep4u.ru/full/080209/7bc44b061303d60b75/jpg)

RadScorpion
9th February 2008, 22:08
I suppose yes. I'll try to do some seekbar upgrades... though it is strange that on XP the seekbar doesn't display the progress inside :\.

On vista the seekbar looks like this:

Gromozeka
9th February 2008, 23:08
I suppose yes. I'll try to do some seekbar upgrades... though it is strange that on XP the seekbar doesn't display the progress inside :\.

On vista the seekbar looks like this:

P.S:
No, I thought, that it was so (as in virtualDub or avidemux)

When I move a toddler the active window go to in the second plan. It delivers inconveniences as I do not see film, when move a toddler
It is probable to make the built in window?

Like it



http://keep4u.ru/imgs/s/080210/4e/4eaa2eebba4fe266d3.jpg (http://keep4u.ru/full/080210/4eaa2eebba4fe266d3/jpg)

RadScorpion
14th February 2008, 22:52
Hello. I've upgraded a few things before I start working on the favorite filters.

[0.1.7.0 - Alpha 14/Feb/2008]
+ .grf extension is now added automatically when saving graph
+ "Render Media File" behavior changed to reset&clear exiting graph
+ added "Add Media File" that has the original "Render Media File" functionality
+ rendered files are now loaded into the recently used list
+ added shortcuts to Video and Audio renderers
+ fixed media type parsing
+ Windows XP fixes - at startup window does not flicker and move
+ warning sound is played when trying to remove filters from a running graph
+ added selection box to select multiple filters
+ added "Ctrl+D" shortcut to insert another instance(s) of currently selected filter(s)
+ added Increase/Decrease zoom level shortcuts
+ added favorite filters with subcategories (not ready)
+ added form to manage favorite filters (not ready)

Download link is the same : http://blog.monogram.sk/janos/download/dl-graphstudio.php

Igor

Gromozeka
15th February 2008, 17:42
May be you can add batch list to graph for 1,2,3,4... video file converter? :)

RadScorpion
17th February 2008, 13:45
I plan to do some automated processing based on some input XML file. But this is far too distant future :)

Meawhile you can try this.
I've just uploaded latest build of GS. The most important new feature is the ability to use favorite filters. In contrast to GraphEdit favorite filters can have multiple groups and can be organized in a tree scructure.

To add a favorite filter you need to check the "favorite filter" checkbox in the filters dialog. Once you have all your favorite filters marked you can open the "Favorite Filters" dialog. Use the rightclick menu to create any groups you want and drag&drop all filters in them.

[0.1.8.0 - Alpha 17/Feb/2008]
+ favorite filters and managing form now work
+ DMO filters are displayed in green color
+ KSProxy filters are displayed in orange color

Igor

clsid
17th February 2008, 15:02
Under "Insert Video Renderer" it shows "Full Screen Renderer", but I am unable to insert that filter. Perhaps this filter should be hidden? It also shows "Windows Media Update Filter" as a video renderer.

The renderer called "Video Renderer" is the Overlay Mixer, right? Perhaps you could replace the official filter name with "Video Renderer (Overlay)". That would be more clear for the users.

It think "Duplicate Selected Filters" would be a better name than "Double Selected Filters".

Perhaps you could add an "Add Favorite(s)" button in the "Favorite Filters" window, that opens the "Filters" window.

Maybe bind the Delete button for deleting filters/groups in the "Favorite Filters" window.

The "Open" dialog only allows to select "GraphEdit files". It should let the user be able to select media files as well.

RadScorpion
17th February 2008, 15:22
The list of video renderers is retrieved automatically using the IFilterMapper2 interface and filtered so it only contains filters with no output pins and input pins which can accept MEDIATYPE_Video (as found from the registry data). I liked this better than using a fixed list of renderers... the disadvantage is that the list may contain filters like the Windows Media Update Filter :-|.
As for the Fullscreen renderer... on my system it can be created. perhaps I could add a feature that would ask you if you'd like to blacklist filters that can't be created from the shortcut menus.

Video Renderer is the old video renderer. I've only renamed VMR7 to "Video Mixing Renderer 7" so there would be no confusion... okay. I could add the "(Overlay)" thing.

.."Duplicat" - okay. I agree.

As for the Favorite filters dialog I'm also not completely satisfied with the usability. I think let's wait for a few days and use it for a while and let the best way reveal itself :)

hm... open dialog and extension filters... perhaps the extenions from windows media player could be used. I would not like to use fixed filters.

clsid
17th February 2008, 16:03
Just hide the Windows Media Update Filter. Further blacklisting options are not yet needed I think.

You could start with adding an "All files (*.*)" file filter (and maybe make that the default one). Windows Media Player only has a fairly limited number of file extensions in its open dialog. I think it would be better to define file filters yourself. Perhaps one for all video file types and one for all audio file types?

shambles
18th February 2008, 19:01
running this graph:

file -> ac3filter -> wav dest -> null renderer

and then closing graphstudio, it'll keep running and take 100% of one core until i terminate it via task manager. same thing happens with graphedit so might not be a bug with gs, but it would be nice if it could be fixed..

also if possible, i wish splitters would display the name of the splitter aswell as the filename.. sometimes when using 'render media file' it can be impossible to tell which splitter is being used.

anyway, great stuff. thanks!

RadScorpion
18th February 2008, 19:18
IMHO this is not a bug of GS nor GE but the combination of WAVEDest + NULL Renderer. WAVE Dest delivers data in a "stream" mode - the timestamps are byte positions in the file and the NULL Renderer thinks it's time.

@splitter names. I suppose this is the case of a "splitter-source" filter, like the Haali media splitter. Right? Yes, this is a nice idea. I'll add an option to toggle file names / filter names.

shambles
19th February 2008, 19:55
IMHO this is not a bug of GS nor GE but the combination of WAVEDest + NULL Renderer. WAVE Dest delivers data in a "stream" mode - the timestamps are byte positions in the file and the NULL Renderer thinks it's time.

hmm shame.. i wonder if there's any other way to make ac3filter feed the frames/samples not in real-time but using 100% cpu..

@splitter names. I suppose this is the case of a "splitter-source" filter, like the Haali media splitter. Right? Yes, this is a nice idea. I'll add an option to toggle file names / filter names.

yep that's what i mean. great! :)

DMD
21st February 2008, 22:01
I would like to ask if it is possible to insert in GraphStudio the option to save the files in formed XML as the old versions of GraphEdit

Kindest regards
Domenico

RadScorpion
21st February 2008, 22:36
Yes. I'm currently working on XML loading/saving functionality.

DMD
21st February 2008, 22:48
Thanks!

Gromozeka
22nd February 2008, 19:25
I'm not use ffdshow video decoder!
:(

Shinigami-Sama
22nd February 2008, 21:51
I'm not use ffdshow video decoder!
:(

uhhh
try again?
I don't get it

Gromozeka
23rd February 2008, 08:16
uhhh
try again?
I don't get it

No, no, no - its always - I'm not use ffdshow video decoder, but graphedit work with him

Shinigami-Sama
23rd February 2008, 10:15
No, no, no - its always - I'm not use ffdshow video decoder, but graphedit work with him

I actually ment I couldn't understand you the first time

Gromozeka
23rd February 2008, 11:10
Shinigami-Sama
Hm, it is my bad English??? (I wrote without the dictionary).
But I can in Russian :)

RadScorpion
24th February 2008, 19:38
@Gromozeka: Yes :) Sometimes you are difficult to understand.

As for the XML. There is one issue I think we could discuss. I have found an example of graphedit XML file (http://www.sunflower.com/~shagenlo/cuttergraph.xgr)
and it appears quite static to me. It also describes filter instances by their CLSID which may not be sufficient in case of WDM filters. That's why I thought of two variants that could make sense.

1. Static graph. You build a graph of common filters (or load previously saved GRF file) and save it as XML. It will contain descriptions just like the XGR file and will only work with filters which have a valid CLSID.

2. Dynamic graph. You enable a sort of "XML mode" and graphstudio will keep track of all actions the user does. Such as adding filters (described by display name) and also keep track of events such as "render pin"... etc. It could also remember the order of operations the user has performed so when the graph is loaded from XML it would be constructed in the same way as the user did it before.

Example XML : http://dev.monogram.sk/websvn/filedetails.php?repname=graphstudio&path=%2Ftrunk%2Fexample%2Fgraph.xml

What do you think?

salehin
24th February 2008, 19:42
Just found it due to the last reply. Thanks a lot for your hard work, RadScorpion :)

RadScorpion
24th February 2008, 23:20
Another week passed by and another minor update of GraphStudio is available :)

[0.1.9.0 - Alpha 24/Feb/2008]
+ added automatic graph restart schedule (currently only for 04:00 AM :) - don’t ask why)
+ added capability to construct graphs from XML files
+ added extension filters for opening dialogs
+ added option to display filter name instead of filename of a source/sink filter
+ added link to filters form into the favorites form
+ added DEL keyboard shortcut to delete filters and groups
+ non-existing filters are marked with a red “(!)”

Download here :
http://blog.monogram.sk/janos/download/dl-graphstudio.php

Igor

Gromozeka
26th February 2008, 08:17
graphstudio.exe Demands xmllite.dll - without it it is not started
:(

RadScorpion
26th February 2008, 19:49
Yes. I'm using XMLLite as the underlying XML parsing api for my classes. I think I'll start looking for an installer that will also install additional stuff that may be necessary such as xmllite.dll.

shambles
27th February 2008, 08:01
i can't seem to insert null renderer from favourite filters, works fine from the filter list though. i also don't see the dmo filters on the list at all

it would be wonderful to have an option to toggle drag n drop behaviour as add/render file

dts, evo and m2ts should be in the audio and video formats and i'd also love for both video and audio files to be shown by default when adding/rendering file (or maybe this could be toggled by an option too)

shambles
27th February 2008, 08:15
another thing that would be useful for me, an option to render video or audio only when opening a graph or a file

buzzqw
27th February 2008, 09:18
whould be possible to add a "wizard" for encoding ?

like this:
start the wizard
ask for input file
ask for output file
ask for directshow encoder and allow tuning parameters

the better would be to present only know directshow encoder

thanks!

BHH

RadScorpion
28th February 2008, 10:27
Yes. That is an interesting idea. I'll put it into the todolist.

buzzqw
28th February 2008, 10:45
:thanks: for your work!

graphedit is an awesome tool.. just a bit offusched to use..

maybe more "wizard" could be added.. i will think about it :p

BHH

RadScorpion
4th March 2008, 20:13
Hello people,

there is a new build of GraphStudio available. It contains several cosmetic bug fixes and a start of a very important feature - detail pages on filters and pins/media types. The visual component is not completely finished so you’ll not be able to select and copy the text values from the property page, but at least you can see something :)

Changes:

* Added filter details form
* Added pin details form
* Support for WAVEFORMATEX, VIDEOINFOHEADER, VIDEOINFOHEADER2 and BITMAPINFOHEADER structures
* Property page drawing fixes (XP-related)
* Fixed a bug with non-functional favorite filter links
* Better filter name detection

In the following builds I’ll try to focus on finishing the property page and adding a simple installer… and of course fixing some bugs.

Download here : graphstudio.exe (820 KB) (http://blog.monogram.sk/janos/download/dl-graphstudio.php)

Enjoy,

Igor

Gromozeka
5th March 2008, 07:58
http://keep4u.ru/imgs/s/080305/5f/5f4aebed165cf3f5af.jpg (http://keep4u.ru/full/080305/5f4aebed165cf3f5af/jpg)

" The appendix did not manage to be started, as xmlLite.dll was not found "

Where I will can download xmllite.dll?

buzzqw
5th March 2008, 08:15
here ?
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=d7b5dc81-ad14-4de2-8ad5-8c4a9aab5992

BHH

Gromozeka
5th March 2008, 09:38
Thanks, I download WindowsXP-KB915865-v11-x86-RUS.exe
:)

clsid
6th March 2008, 16:51
Open file dialog:
- missing from "video files": .evo .flv .mov .hdmov .ifo .vob .rm .rmvb .wmv .asf
- missing from "audio files": .ra .flac .wv .m4a .tta .dts .spx .mp2 .ofr .ofs .mpa
- not belonging to "audio files": .ogm

clsid
6th March 2008, 20:35
The slider for the playback position doesn't move during playback. It also doesn't reset to zero position when rendering a new file.

RadScorpion
6th March 2008, 20:47
Half true :) The slider was supposed to signal where did the user seek. On Vista there is a blue bar inside the slider that displays the actual position. It doesn't work with XP naturally.. so I'm gonna have to fix this soon.

yonta
7th March 2008, 09:41
I don't see any DMO filters.
They should appear green in DirectShow Filters category, right?
They appear green and work fine with GraphEdit.

RadScorpion
7th March 2008, 09:48
DMO listing is currently not implemented. Already in the TODO list.

yonta
7th March 2008, 10:13
Thanks for the quick answer.

One more thing.
graphstudio seems to be automatically arranging filters and intelligent-connecting filters when necessary.
Any chance that these will be options like graphedit?

RadScorpion
8th March 2008, 11:40
You mean to allow for direct connection?

RadScorpion
15th March 2008, 13:49
Hello there,

there is a new version of GraphStudio available so please do some testing and report how it works :).

Changes:

* more drawing fixes
* added some more extensions into opendialog filters
* added registered pin details and media types
* added MPEG1VIDEOINFO and MPEG2VIDEOINFO structure details
* property-tree integrated with the filters form
* remote-graph bugfix (thanks to Christian Steindl)
* Ctrl+G shortcut works also when connected to remote graph
* added Render URL feature
* added DirectConnect toggle
* ActiveMovie Window now also contains filter name in the title

Download here : graphstudio.exe (840 KB)
(http://blog.monogram.sk/janos/download/dl-graphstudio.php)
Enjoy,

Igor

dalleyg
19th March 2008, 20:10
This is really cool! I'd like to add a few feature requests (the first one being most desired by me)...

(a) Newer versions of Microsoft's GraphEdit (e.g. >= Oct 2004) have a single-step option to go frame-by-frame through a video. I've found this essential for diagnosing some codec issues. It would be really nice to add a button that did that.

(b) A lower-priority request would be to have keyboard shortcuts for play, pause, stop, and stepping. Arrow keys for forward/backward stepping would be nice.

(c) It would be handy to have a popup dialog or a textbox next to the seekbar so users could manually select the frame and/or timestamp for seeking. I'm thinking of the capabilities in VirtualDub accessible through Ctrl-G.

RadScorpion
24th March 2008, 19:23
Hello people,

make sure you check out the latest GraphStudio build. The following changes have been made:

* added frame-step button
* values in property pages can now be selected and put into clipboard
* added key shortcuts (ESC = stop, Space = Play/Pause toggle, Right arrow = frame step)
* GraphStudio now displays list of available media types for unconnected pins
* GraphStudio can accept a filename to open via command line
* added graph refresh feature (Ctrl+F5)
* added AAC format parser

Download here : graphstudio.exe (844 KB) (http://blog.monogram.sk/janos/download/dl-graphstudio.php)

Enjoy,

Igor

clsid
24th March 2008, 19:36
Framestep is useful. But perhaps it would be better to automatically mute the sound when taking framesteps?

buzzqw
24th March 2008, 20:02
i wait for wizard.. :o thanks!

BHH

RadScorpion
24th March 2008, 21:57
@clsid. yes. that might be usefull.

@buzzqw: do you already have any ideas how the wizard may look like?

dalleyg
25th March 2008, 00:19
Thanks for adding single-step and keyboard shortcuts so quickly.

Another request...at some point it would be nice to have an x64 build (64-bit apps and 32-bit apps can only use 64-bit and 32-bit filters, respectively).

buzzqw
25th March 2008, 08:41
well.. you have already separated video compression and audio compression, that's a good thing

i think for a wizard based on simple "previus <-> next" mask

in first mask the input file
on next go ask video encoder, show the list and add a button to "configure" the codec.
I saw that not all codec respond to "property page", in that case the gui must use an alternative calling (for example xvid codec will not respond to property page, but using "rundll32.exe xvidvfw.dll, Configure" will work.. the same for x264vfw.dll,.. look at virtualdub...)

let user configure the codec then on next ask for audio codec.

Note that users can go previus mask to rechange any already made selection
On next ask for file destination AND show a little grid on what decoders and coders are used. Add here the usually previus, the Start button and Exit button

most probably you must show only "configurable" codec... and in next updates add new codecs (as you found how to configure it.. and save configuration!)

just some "simple" (:p) ideas

thanks!!

BHH

clsid
25th March 2008, 14:46
I noticed that for ACM/ICM stuff, GraphStudio shows the properties of the wrappers (qcap.dll, quartz.dll). That should be fixed. Then opening the config dialogs might start working as well.

mamekudz
16th April 2008, 00:02
@redscorpion: graphstudio works nice under window vista. i hope, that “save xml” function will be coming soon J to make batch rendering available. under xp i have written a short script to generate xml-graphs for files in a folder based on a xml template including placeholders. the placehold looks like this:

<FILTER ID="12._Source_0" clsid="{E206E4DE-A7EE-4A62-B3E9-4FBC8FE84C73}">
<PARAM name="src" value="{{sourcepathfilename/}}.MP4"/>
</FILTER>

i use it to convert stereoscopic movies and to convert movies of my sanyo hd cams.

it would be nice, if a similar function will be available in graphstudio. also a function to render multiple xgr-files sequencely would also be nice.

greetings, meinolf

RadScorpion
17th April 2008, 21:22
Yes. I'm working on the XML graph support. But I'm kinda short on time these days :(. I'm also trying to figure out a way how to integrate batch processing with XML graphs (with a sort of parameters that could be set for the whole batch) and wizards....

crypto
19th April 2008, 17:18
Thanks Igor, for this wonderful piece of work. It runs perfectly.

rica
20th April 2008, 16:09
Thanks a lot RadScorpion; i've just noticed this thread, downloaded GraphStudio and given it a go.

I have to report an EVR issue; i've never been able to play any video with EVR. The remaining video renderers work?
(I've tried with many splitters and decoders)

EVR is default renderer on my Vista32 and both Graphedit and GraphStudio place it as video renderer automatically.

Graphedit works with EVR BTW.

Thanks in advance!

DigitAl56K
24th April 2008, 17:36
RadScorpion, GraphStudio is really nice!

I am wondering if at some time you can add performance measurement into the program. Take for example Haali TimeCodec, we can use it to examine the performance of video decoders connected to various renderers (although I read there are issues with threaded decoders). It might be nice if we could do the same in GraphStudio, e.g. run the graph at maximum speed, maybe include null renderer filters that accept all media types if we want to exclude the renderer from the filtergraph, etc. Monitoring things like the user and kernel time since the graph was started until it finishes and so forth.

RadScorpion
26th April 2008, 23:38
Hello people,

after some time there is a new version of GraphStudio available with the following changes:

* added some more XML filter interfaces (mainly monogram filters)
* added ALLOCATOR_PROPERTIES information for pin connection
* added "Progress View" form
* fixed a strange menu event problem
* added volume & balance controls for filters exposing the IBasicAudio interface
* MPEG1VIDEOINFO and MPEG2VIDEOINFO now displays sequence header data
* added internal dump filter
* added shortcuts to Null Renderer & Dump into the rightclick menu

Download here : graphstudio.exe (910 KB)
(http://blog.monogram.sk/janos/download/dl-graphstudio.php)
Enjoy,

@DigitAl56K:
That is a very good idea. I'll see what I can do. This might also be interesting when testing various encoders. Combined with the YUV Source (http://blog.monogram.sk/janos/2007/12/17/monogram-yuv-source-v1001/) filter and a possible future PSNR (and/or other objective quality measurement) filter it could be quite easy to setup a simple codec shootout application.

@rica:
The EVR does not offer a rendering window by itself but instead it must be given a window to render video into. That's why it's not working yet. I plan to add EVR support soon.


Igor

rica
27th April 2008, 16:33
@rica:
The EVR does not offer a rendering window by itself but instead it must be given a window to render video into. That's why it's not working yet. I plan to add EVR support soon.


Igor

Thanks igor for the explanation and congrats to you for your hard work !
I believe GraphStudio is gonna be the most popular application in the very close future.

Dmitry Vergheles
27th April 2008, 17:57
Hello, sorry i did not read the topic completely and mey be such a feature was already suggested.

What is absent in the current MS graph editor is full seekin implementation in GUI. Current time/Overall Time/Possiblility to seek to tcertain time/frame etc.

RadScorpion
28th April 2008, 08:30
Yes. Such request has already been made. It might appear in the next release.

Revgen
7th May 2008, 08:01
@RedScorpion

Would you be interested in adding a Time Scheduler to Stop/Record? I have to use Graphstudio or Graphedit to capture Huffyuv files with my Capture card (Blackmagic Intensity Pro) because only Blackmagic's codecs are supported in VirtualDub for some reason. It would make it easier for me to schedule my recordings.

Thanks! Keep up the good work!

RadScorpion
7th May 2008, 20:21
Not a bad idea. But i'm not completely sure how this would work. Because I assume you might need to set different file names for each recorded file etc... Can you try to draw a sketch of the form where this could be configured ?

Revgen
8th May 2008, 01:30
Not a bad idea. But i'm not completely sure how this would work. Because I assume you might need to set different file names for each recorded file etc... Can you try to draw a sketch of the form where this could be configured ?

I'm not exactly sure what you mean by the bolded statement, but here is my setup.

http://img211.imageshack.us/img211/3114/huffob3.png (http://imageshack.us)
http://img211.imageshack.us/img211/3114/huffob3.c7457a2a7f.jpg (http://g.imageshack.us/g.php?h=211&i=huffob3.png)

Once I set it up the way I do above, then I press the green ► button to start capping, then I press the red ■ button to stop the capture.

I can set up the capture process the way it is above. All I'm really looking for is some way to make the ► and ■ functions operate while I'm away from the computer so I don't have to be around.

As far as multiple file recording goes, that would be nice too, but the ► and ■ thing is what I'm really looking for.

Thanks for the response!

DigitAl56K
8th May 2008, 02:55
RadScorpion,

One thing that I find lacking in GraphStudio is an option to run the graph with the clock disabled. It would be a nice add.

RadScorpion
8th May 2008, 09:58
@DigitAl56k: Sure. Not a problem. You can expect this to appear in the next build (possibly this sunday).

@revgen: I thought of the user interface form. How the windows should look like where you'd like to setup the Start/Stop times/dates.

Revgen
9th May 2008, 02:00
@revgen: I thought of the user interface form. How the windows should look like where you'd like to setup the Start/Stop times/dates.

The program I use to cap my digital HDTV streams is CapDVHS LINK (http://www.videohelp.com/tools/CapDVHS)

The things I like about it are.

- Automated stop. You can manually tell the program to start capping while having a madantory recording limit based on time. Once the limit is reached, the program automatacally stops recording.

- Automated Stop and Start. Choose the exact time when the capping starts, and when it ends.

- Separate Jobs. Have different start/stop jobs listed for different times.



That's the best idea I can up with for now.

RadScorpion
11th May 2008, 10:17
Hello people.
Unluckily I had a little bit less time than I thought but at least I've managed to implement the clock control.

Download 0.2.4.0 : graphstudio.exe (920 KB) (http://blog.monogram.sk/janos/download/dl-graphstudio.php)

Penecho
11th May 2008, 11:09
Hi, I wanted to try the software, but when i try to start it, it tells me, xmllite.dll was not found. Where can i get this *.dll file from??


Cu



Penecho

RadScorpion
11th May 2008, 11:11
Here: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=d7b5dc81-ad14-4de2-8ad5-8c4a9aab5992

It has already been discussed in the thread

Revgen
11th May 2008, 18:09
You can also get it here.

http://afreedll.com/dll/info/xmllite_dll.html

I hate M$'s WGA crap.

CiNcH
11th May 2008, 20:02
What is the cool thing about disabling the clock? To see whether certain problems are caused by synchronization?

BTW, this is really a nice tool, RadScorpion. Love most things you have made in this direction, like the MONOGRAM AAC LOAS/LATM decoder or FilterManager.

RadScorpion
11th May 2008, 20:42
Disabling the clock might also be good if you're testing performance of certain filters like encoders or decoders. I've also found this usefull when testing behavior of splitters.

Thanks :) good to know I'm not just wasting my time.

shevegen
11th May 2008, 23:23
Hmm funny... when I look at the graphs, I think this is exactly what I was looking for, just without the graphs on the commandline via pipe (hehehehehe) :)

(I mean this: Filter data from one sink to the next)

Is it possible to use it via commandline only by the way? (I am talking about very simple setups... data comes in from the "left", and will leave to the "right", without any exception)

Havent yet thought whether it is possible in a commandline to use multiple sinks/sources hmmmm

Schrade
13th May 2008, 08:08
Here: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=d7b5dc81-ad14-4de2-8ad5-8c4a9aab5992

I has already been discussed in the thread

Direct download from Microsoft without having to bother with the stupid WGA crap:

http://download.microsoft.com/download/f/9/6/f964059a-3747-4ed8-9326-ba1e639031b1/WindowsXP-KB915865-v11-x86-ENU.exe

audyovydeo
13th May 2008, 23:17
graphstudio creates a working rendering chain for a given avi file.

Except that I want to save it to a new file, so I add the File Writer filter and give it a filename.

trouble is, no filter from the rendering chain wants to connect to File Writer's pin. What am I missing ?

avi is lagarith, no audio.
XP SP2, DX9 vMarch2008

thanks,
audyovydeo

Leak
14th May 2008, 09:17
trouble is, no filter from the rendering chain wants to connect to File Writer's pin. What am I missing ?
The AVI muxer?

The File Writer will only write fully muxed AVI streams, not raw ones.

There's a filter called dump.ax that will happily write anything you throw at it to a file, but I think it's one of the filters that come with the DirectShow SDK - it was packaged up with some packaged versions of GraphEdit, though, so you can look for it there.

np: O M 1 - Opium (Köln Kompakt 1)

audyovydeo
14th May 2008, 10:39
The muxer it was !

thanks.
a/v

Revgen
21st May 2008, 21:21
The program I use to cap my digital HDTV streams is CapDVHS LINK (http://www.videohelp.com/tools/CapDVHS)

The things I like about it are.

- Automated stop. You can manually tell the program to start capping while having a madantory recording limit based on time. Once the limit is reached, the program automatacally stops recording.

- Automated Stop and Start. Choose the exact time when the capping starts, and when it ends.

- Separate Jobs. Have different start/stop jobs listed for different times.



That's the best idea I can up with for now.

I was able to find a tool to schedule the recordings.

http://www.autohotkey.com/

I was able to record my mouse clicks to start and stop recording, and then just changed the time in the .ahk file to the time I wanted the program to end.

It's not perfect (no split recordings, which would be nice since AVI Mux is limited to 510GB), but that's okay.

asdfsauce
27th May 2008, 22:10
I hope this isn't considered OT, but is it possible to use a filter in a filtergraph without registering it?

RadScorpion
28th May 2008, 17:25
Sure it is possible. The only difference is that you cannot use CoCreateInstance function to create the filter instance but rather a more complicated way of loading the proper DLL by yourself and then using the GetClassObject function and proper class factory object.

RadScorpion
17th June 2008, 14:16
Hello people,

after some time there is finally a new build of GraphStudio available. I’ve added some more detailed information on WAVEFORMATEXTENSIBLE, added a seeking dialog and also a nice scheduling form so tasks like Stop / Start / Restart could easily be configured.

The time format for time events is “HH:MM:SS” - 24 hours/day mode. You can also use “*” as a wildcard and “*/10″ to specify periodicity for all - hours, minutes or seconds.

Download here : graphstudio.exe (976 KB) (http://blog.monogram.sk/janos/download/graphstudio.exe)

Enjoy,

Igor

Gromozeka
22nd June 2008, 09:06
Thank you - good news
I'm testing it
:thanks:

RadScorpion
22nd June 2008, 12:55
Yet another update :)

[0.2.6.0 - Beta 22/June/2008]
+ fixed bug with bad offset of VIDEOINFOHEADER2 extradata
+ added support for VFW property pages
+ added support for IAMVideoCompression interface

Download : graphstudio.exe (984 KB) (http://blog.monogram.sk/janos/download/dl-graphstudio.php)

Igor

Gromozeka
22nd June 2008, 18:45
+ added support for VFW property pages

You the genius!
Now it is possible to code in x264vfw and XviD - at once in mkv and mp4 (using directshow filters and audio codecs)
You can will add plugins from virtualDub? :)

Revgen
23rd June 2008, 04:15
I'll be checking out these new features sometime this week.

Thanks. :)

rica
24th June 2008, 02:21
Thanks igor, expecting good news on EVR support as well :)

Revgen
28th June 2008, 22:56
Checked out the scheduling feature.
It works great!

Now if only you could make it to split the caps at a specific size like VDub does if it's not too time consuming. If not, then it's fine. I'll just have to stop, rename, and restart manually to avoid hitting the 510GB limit for AVIMux.

RadScorpion
29th June 2008, 12:35
As for the EVR - I'm currently working on it right now. Also the next release should contain a property page to set formats for ACM codecs (or filters exposing IAMStreamConfig). As for the file size limit... hmm this might be a bit tricky but let's see.. perhaps I'll figure something simple & easy out.

rica
8th July 2008, 18:36
As for the EVR - I'm currently working on it right now. Also the next release should contain a property page to set formats for ACM codecs (or filters exposing IAMStreamConfig). As for the file size limit... hmm this might be a bit tricky but let's see.. perhaps I'll figure something simple & easy out.


:thanks: :)

sanjiechen
9th July 2008, 08:37
i'm failed when build the project in windows xp, because lacking for three files: xmllite.dll,xmllite.lib,xmllite.h.
Please send to my email if you have them, thanx.
e-mail: sanjiechen@yahoo.com.cn

CiNcH
9th July 2008, 08:50
IAMStreamSelect is also a nice interface ;) .

Placio74
9th July 2008, 08:57
i'm failed when build the project in windows xp, because lacking for three files: xmllite.dll,xmllite.lib,xmllite.h.
...

XMLLite for Windows XP (KB915865) (http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=d7b5dc81-ad14-4de2-8ad5-8c4a9aab5992)...?

sanjiechen
9th July 2008, 09:22
yeah, it just place xmllite.dll in system32 after installing, and i also need xmllite.h and xmllite.lib.

foxyshadis
9th July 2008, 19:10
It's all at the bottom of the MSDN page (http://msdn.microsoft.com/en-us/library/ms752838.aspx). Short answer: You need the latest Windows SDK.

RadScorpion
24th July 2008, 20:18
Hello people,

there is a new build of GraphStudio available with the following changes :

* added support for Enhanced Video Renderer
* added support for DMO objects (but it’s not possible to duplicate “CTRL-D” a DMO filter once created) (many thanks to Griga from DVBViewer community)

Download here : graphstudio.exe (992 KB) (http://blog.monogram.sk/janos/download/dl-graphstudio.php)

Enjoy,

Igor

Sharktooth
25th July 2008, 01:57
You're becoming my hero... thanx.

Ranguvar
25th July 2008, 04:39
Awesome! Just about to ask for DMO. Thanks!

CiNcH
25th July 2008, 08:00
This tool becomes better and better! EVR and DMO were two things I was looking for :) .

Got a question though... Are the infos within ALLOCATOR_PROPERTIES supposed to always be true? It says that Haali Media Splitter propagates 1K Samples (cbBuffer 1024) in case of H.264 which can't be true as it delivers a whole compressed frame at a time.

RadScorpion
25th July 2008, 18:52
Thanks. I'm glad you like it :)

As for the allocator properties... this depends on the transport the filters are using. If the filters use the classic memory allocators for allocation of sample buffers then the information should be correct. However I can easily think of a solution where the information might just be bogus. E.g. if the splitter filter used IMediaSample instances to point to its own internal buffers (to avoid extra memory allocation/copy) when passing A/V frames downstream then the whole memory allocator idea would not be necessary at all and you might set any numbers into the ALLOCATOR_PROPERTIES structure.

RadScorpion
26th July 2008, 10:58
You might also check out the latest version from SVN : graphstudio.exe (http://dev.monogram.sk/websvn/filedetails.php?repname=graphstudio&path=%2Ftrunk%2Fbin%2Fgraphstudio.exe)

Not a full new release but contains property page to configure ACM codecs via the IAMStreamConfig interface.

rica
27th July 2008, 18:55
RadScorpion, thanks, thanks, thanks.

It's working with EVR anymore: i tried with vc1 and h264 files in ts and m2ts containers using Arcsoft, Cyberlink filters...
Even DMO has worked in HA deinterlacing mode. (HWA decoding doesn't work with DMO via nVidia yet)

http://img399.imageshack.us/img399/2671/radscorpion01qh2.th.png (http://img399.imageshack.us/my.php?image=radscorpion01qh2.png)

RadScorpion
30th July 2008, 21:00
RadScorpion, GraphStudio is really nice!

I am wondering if at some time you can add performance measurement into the program. Take for example Haali TimeCodec, we can use it to examine the performance of video decoders connected to various renderers (although I read there are issues with threaded decoders). It might be nice if we could do the same in GraphStudio, e.g. run the graph at maximum speed, maybe include null renderer filters that accept all media types if we want to exclude the renderer from the filtergraph, etc. Monitoring things like the user and kernel time since the graph was started until it finishes and so forth.
I've tried to implement a sort of form to test decoder performance. This is my first form design. Does anyone have any more ideas ?
The "Time Measurement Filter" would be a built-in trans-in-place filter that would retrieve data from the graph and produce some nice results.

rica
30th July 2008, 22:20
Feature request:
"Edit" in menu bar is missing.

RadScorpion
31st July 2008, 07:44
And what would be in the "Edit" menu ?

rica
31st July 2008, 17:14
These are sufficient, i think:

Undo
Repeat
Delete
Disconnect pins

mamekudz
15th August 2008, 10:16
@RadScorpion: Thanks for the new version! It works fine. But whats about your plan to support xml save & load. In current version filter connections are not supported. I want to use batch processing via xml, so it would be great to get this function.

regards, Meinolf

sheppaul
22nd August 2008, 14:23
Would you please make the homepage link clickable in about monogram dialog? :wink:

rica
25th August 2008, 00:58
another feature request:
drag and drop function...
:thanks:

rt87
25th August 2008, 11:18
Feature request:
I want to know about seeking capabilities of the media stream.
:thanks:

RadScorpion
25th August 2008, 21:07
Hey. :) wow, so many requests. Cool.

I've been a bit busy with some commercial projects. But we're just about to be done with them so I can get back to opensource programming again. I've thought of some new features for graphstudio and I think I might implement them in the following order:

1. finish the decoder performance page
2. implement IAMBufferNegotiation interface property page for audio capture filter (I really need this one)
3. finish the XML saving (I also need this for the mentioned commercial projects :) )
4. implement a list of compatible filters in the output pin's rightclick menu (it should be possible to insert them directly via the menu)
5. some user interface cosmetics

I've also thought of some autoupdate or update notification feature.

Igor

CiNcH
26th August 2008, 06:37
If you like requests... +g+

It would be cool to be able to change a filter's merit. Then we could dump both GraphEdit and FilterManager (sorry +g+) for one hell of a tool...

buzzqw
26th August 2008, 07:22
@RadScorpion
... please add the Encoding Wizard to the list... :p :thanks:

BHH

RadScorpion
26th August 2008, 08:23
As for the encoding wizard. I've realized that there are very few free muxers and encoders available. The encoding wizard might be quite useless with only one output format :-\. If I happen to have some time I hope to write some muxers at least for FLV, TS/PS, MP4. I've already started and wrote a nice muxer baseclass (How to make a DirectShow Muxer Filter - Part 1 (http://blog.monogram.sk/janos/2008/08/23/how-to-make-a-directshow-muxer-filter-part-1/)). Also a configurable audio / video processing filter might come handy for an encoding wizard. Unluckily ffdshow is quite difficult to configure programatically. We have such filters at MONOGRAM but it's not that easy :) since I'm almost at the edge of my NDA. We'll see...

clsid
26th August 2008, 13:18
+1 for the merit changing ability.

I would also like to see the Text Information functionality improved. See my previous suggestions somewhere at the beginning of this topic.

buzzqw
26th August 2008, 13:40
@RadScorpion

outputting raw then muxing with with command line muxer (mkvmerge/mp4box) isn't good ?

thanks for your interest!

BHH

RadScorpion
26th August 2008, 14:03
@clsid: damn I've almost forgot about that. Perhaps I might think of some TRAC system so feature requests would not get lost.

@buzzqw: that depends on the usage. If we only wanted to produce files then commandline encoders / muxers might be feasible (or as the first simple solution). My idea was to be able to do also streaming with wizards :)

buzzqw
26th August 2008, 14:10
My idea was to be able to do also streaming with wizards :)

thanks good! ... but meanwhile...

anyway, thanks, this software is GREAT!

BHH

RadScorpion
31st August 2008, 13:12
I've had a few hours this weekend so here's a little update... again a not full release since the merit changing feature is not completely implemented.

Changes :
+ added decoder performance testing tool
+ pressing "Enter" in the filters form will create a new instance of a filter
+ added "Locate" button to find filter DLL files quickly
+ added "Unregister" feature to remove filters. (works also for missing DLLs)


Download link (from the webSVN) :
graphstudio.exe (http://dev.monogram.sk/websvn/filedetails.php?repname=graphstudio&path=%2Ftrunk%2Fbin%2Fgraphstudio.exe)

Igor

CiNcH
31st August 2008, 13:50
Thanks again!

+ added "Unregister" feature to remove filters. (works also for missing DLLs)

It would be cool if you added the unregistered filters to a list and allowed for fast reregistration (so do not delete the ax or dll and remember the path...). Could be very usefull IMHO.

RadScorpion
31st August 2008, 13:57
Great idea :) Putting this to my todo list. It could be also cool to remember different versions of the filter - e.g. when developing debug/release or stable/unstable filters. Or when different versions of the filter are used in multiple projects.

clsid
31st August 2008, 14:00
Small bug: I think some path constants are not expanded properly. For example: %systemroot%\system32\mpeg2data.ax

RadScorpion
31st August 2008, 22:51
@clsid: Where did you encounter the problem with path expansion ?

@all:
Okay. So here's the full 0.2.8.0 build.
* added support for ACM codec configuration (via IAMStreamConfig interface)
* added support for stream selection via IAMStreamSelect interface
* added decoder performance testing tool
* pressing "Enter" in the filters form will create a new instance of a filter
* added "Locate" button to find filter DLL files quickly
* added "Unregister" feature to remove filters. (works also for missing DLLs)
* added merit changing functionality
* seeking form now displays current seeking capabilities and supported time formats

Download here : graphstudio.exe (1060 KB) (http://blog.monogram.sk/janos/download/dl-graphstudio.php)

Enjoy,

Igor

rica
1st September 2008, 01:35
igor :thanks:

rt87
1st September 2008, 02:32
RadScorpion :thanks:

buzzqw
1st September 2008, 07:23
:thanks:

another great update, with very interesting fuctions (merit and benchmark)

BHH

clsid
1st September 2008, 13:42
%systemroot%\system32\mpeg2data.ax

Gives problem with 'Locate' button. Says it doesn't exist.
There also is a red exclamation point in front of the filter in the filters list.

I have reregistered the filter, and now it has a proper expanded path.

clsid
1st September 2008, 13:48
Additional merits:
DO_NOT_USE + 1
UNLIKELY + 1
Custom value ?

Maybe also add a 'Manage filters' menu item under Filters? Using Graph->Insert Filter is a bit counter-intuitive for some use cases.

RadScorpion
1st September 2008, 19:18
okey, I'm gonna investigate the path expansion problem. Haven't really noticed anything like that on my home system.
As for the merit values - it is possible to manually enter any desired value both hexadecimal (with 0x prefix) and decimal.
But some more presets won't hurt...

Casimir666
7th September 2008, 15:22
Hello RadScorpion,
First of all thank you very much for you great works, I'm dreaming to find a better tool than GraphEdit for a very long time!

I have seem you added a "Decoder performance" option in latest release, but unfortunately it was unable to recognize "MPC - VideoDecoder" filter. The reason of this problem is the output MediaType. Could you add the following patch in your next release :


Index: src/dsutil.cpp
===================================================================
--- src/dsutil.cpp (revision 74)
+++ src/dsutil.cpp (working copy)
@@ -1221,6 +1221,7 @@
subtype == MEDIASUBTYPE_YUY2 ||
subtype == MEDIASUBTYPE_YUYV ||
subtype == MEDIASUBTYPE_YV12 ||
+ subtype == MEDIASUBTYPE_NV12 ||
subtype == MEDIASUBTYPE_Y211 ||
subtype == MEDIASUBTYPE_Y411 ||
subtype == MEDIASUBTYPE_Y41P ||


Thanks a lot

RadScorpion
8th September 2008, 19:22
Sure. no problem. Thanks for the hint.

alihan1988
16th September 2008, 23:55
:thanks:

RadScorpion
5th October 2008, 12:43
Hello everybody,

another update to the GraphStudio project is available with the following changes:

* added MEDIASUBTYPE_NV12 to the list of uncompressed video subtypes
* added "Insert File Writer" item for output pins delivering MEDIATYPE_Stream (e.g. mux filter output)
* added "MERIT_DO_NOT_USE+1" and "MERIT_UNLIKELY+1" presets into the merit changer form
* %PROGRAMFILES%, %SYSTEMROOT%, %WINDIR% are now properly expanded
* added "Comatible filters" submenu for output pins

Download here : graphstudio.exe (1060 KB) (http://blog.monogram.sk/janos/download/dl-graphstudio.php)

Enjoy,

Igor

CiNcH
7th October 2008, 06:48
* added "Comatible filters" submenu for output pins
That one is great! :thanks:

rica
7th October 2008, 22:02
* added "Compatible filters" submenu for output pins


This feature is really perfect, thanks igor once again :thanks:


_ _ __

sfortier
15th October 2008, 01:14
Hi!
I´m trying to make a filter graph to view ISDB-Tb 1-seg programs with a ISDB-T usb dongle. With dvb-t network provider, tuner, demod, mpeg2 demultiplexer, microsoft tif filter, I can tune the right channel. But ISDB-Tb 1-seg streams use H264 and he-aac V2. The microsoft mpeg2 demultiplexer can´t create a pin for h264 or aac. Using a ininite tee filter, I can use a second demux to do the job.
The arcsoft mpeg demux are the only demuxer to demux the ISDB-Tb 1-seg TS correctly in pull mode (The arcosft demuxer in pull mode recognizes the TS with h264 video and mpeg4 audio, and good playbeack), but in push mode I must create the pin with the correct mediatype and associate with PID.
In push mode, neither microsoft or arcsoft demuxer have h264 and mpeg4 audio to select on pull-down mediatype list when creating a output pin.
What I want:
- A option on graphstudio to use directshow code and create a output pin on demuxers.
or better
- After the demuxer is selected, a option on graphstudio to create that pin.

This can be done?

Thanks.

RadScorpion
16th October 2008, 12:59
I think it could be possible to implement a new property page for the MPEG-2 Demux. One that would also allow the user to create pins with AAC and H.264 types. I'll put it into the todo list.

sfortier
16th October 2008, 22:38
thanks.
:)

RadScorpion
19th October 2008, 21:38
Hmm.. Thinking of this new page I've got an idea - MediaType Editor. GraphStudio could contain a list of named mediatypes. This way you could either create a specific mediatype in an interactive way (also with pregenerated format buffer/sequence header/etc...) or pick an existing mediatype from an existing pin connection and save it for further use. Once the media type has been created it could be either used to create pins for filters like MPEG-2 Demux, or the type could be dumped as a raw buffer into clipboard or a binary file, or it could be exported as a C++ source code that would generate precisely the same mediatype.

Any ideas?

sfortier
21st October 2008, 20:48
That will be great!
The option to save a mediatype of a working pin to use again later is fantastic. Can be implemented?

CiNcH
24th October 2008, 20:20
A cool feature from GraphEdit:

After connecting to the remote graph it is possible to disconnect/delete filters on-the-fly.

mariner
4th November 2008, 07:44
Remote Graph not working.

Greetings RadScorpion. Thanks for the wonderful software.

I am having difficulty getting remote graph to work . It will conect to a remote graph, and playback can be controlled using the play/stop button, but no graph is displayed in graphstudio. What should I do to get it working?

I have tested using both MPC and PowerDVD on XP3.

Appreciate your kind assistance.

RadScorpion
4th November 2008, 08:47
This is a known issue with Platform SDK and Windows Vista or XP. The remote graph functionality has been moved to another DLL. If you register again your System32\quartz.dll with regsvr32 you should be okay again.

mariner
4th November 2008, 11:28
Thanks RadScorpion,. You are brilliant.

Best regards.

sipper
9th November 2008, 12:25
Hi,

This is perfect work!

I've got a question about a small feature.
The WMAudio Decoder DMO, which is the only decoders existing for decodig multichannel WMA pro files, needs a parameter when starting to decode in multichannel.
By default it downmixes to 2 channels.

Information about this issue is found at: http://msdn.microsoft.com/en-us/library/aa390550(VS.85).aspx
I can send you an example file and an example grf file if needed.

Avisynth had fixed this problem (had the same problem there with an older version), see http://forum.doom9.org/showthread.php?t=116044.
But you're GraphStudio application is so much nicer and flexible.

Is it possible to load the filter with this parameter enabled by default? Or enable it as a parameter under the properties?

Thanks for your support.

Cris

RadScorpion
10th November 2008, 10:13
Nice. I'll take a look at it. But unfortunately I have very little time to code hobby projects right now so I can't promise any release dates.

rt87
10th November 2008, 17:33
maybe a bug:
If graphstudio is connecting to a remote graph and remote graph application dies, graphstudio will popup a dialog for waiting rpc server.

sipper
15th November 2008, 13:21
Nice. I'll take a look at it. But unfortunately I have very little time to code hobby projects right now so I can't promise any release dates.

ok, I'm happy you want to put it on your list.
Thanks,
Sipper

sipper
17th November 2008, 10:20
Nice. I'll take a look at it. But unfortunately I have very little time to code hobby projects right now so I can't promise any release dates.


Hi, I've tested the _HIRESOUTPUT with a small Delphi application.
When I connect to the WMADecoder in 2 channel mode, I can connect to your AC3 encoder filter with no problem.

But when I connect the WMADecoder in 6 channel mode, it does not work...
I can visualize it in your GraphStudio. I can send you screenshots (with filter and pin information) if you like.
Is there somekind of setting I have to do to connect to your filter?

Thanks for your support.

Sipper

RadScorpion
17th November 2008, 11:34
I think it may have something to do with 24-bit output of the DMO decoder in HIRESOUTPUT mode. Currently the AC3 encoder only accepts 16-bit.

sipper
18th November 2008, 19:43
maybe a bug:
If graphstudio is connecting to a remote graph and remote graph application dies, graphstudio will popup a dialog for waiting rpc server.


Yep, its 24 bit.
Is it easy and possible for you to let your AC3Encoder accept 24bit audio?

RadScorpion
18th November 2008, 19:59
I think it's not a big problem, but until I make it work you might try to use some audio processor to convert it to 16-bit. I think ffdshow audio processor should do the job fine.

RadScorpion
21st November 2008, 19:05
Hi,

finally I’ve found a few hours to work on the new release of GraphStudio. These are the changes made so far :

* added support for MPEGLAYER3WAVEFORMAT structure
* added support for MPEG1WAVEFORMAT structure
* BITMAPINFOHEADER::biCompression is now also displayed as fourCC string
* added property page for IAMBufferNegotiation interface
* AboutBox MONOGRAM link navigates to home page
* added high resolution output property page for WMA DMO Decoder

Download here : graphstudio.exe (1084 KB)
(http://blog.monogram.sk/janos/download/dl-graphstudio.php)
Enjoy,

Igor

crypto
21st November 2008, 19:31
Hi Igor,

Thank you for the new version. High res output for wma 5.1 works great.

AC3Filter can also convert to PCM16:

Decoding chain:
(PCM24 3/2.1 (5.1) 48000) -> Processor -> (PCM16 3/2.1 (5.1) 48000) -> Dejitter -> (PCM16 3/2.1 (5.1) 48000)

sipper
26th November 2008, 00:31
Hi,

finally I’ve found a few hours to work on the new release of GraphStudio. These are the changes made so far :



Super!

De HiRes option works perfect indeed.

As mentioned before I cannot connect your AC3 encoder directly. But, there is another issue with your AC3 encoder. De channels are not mapped correctly to the output file.
Its a known issue with ffmpeg. Check this URL for some information: http://pytivo.krkeegan.com/rdian06-s-ffmpeg-builds-t468.html
I've used Aften.dll earlier which does not have any problem.

Workaround for now is the use of MatrixMixer filter. I let MatrixMixer output in 16bit and do the right mapping of the channels, which is:

L>L
R>C
C>R
LFE>SR
SL>LFE
SR>SL

I've have converted my first movie with WMA Pro 5.1 audio to a MKV container with AC3 (resulting in a VC-1/AC3 movie). With the speed of just copying the file. Perfect!

clsid
27th November 2008, 17:10
Connect to remote graph is not working for me. Nothing happens when I select the name of the graph. Any idea what could be wrong?

RadScorpion
27th November 2008, 17:21
Sure. This issue has been discussed on the previous page.
Register your system32\quartz.dll again.

Andrey /MAG/
28th November 2008, 07:37
I found that the Decoder Performance tool is very usefull for me. But can it be implemented from command line?

The GraphStudio is the only tool that can determine performance of AVS script with full CPU load. I use Nero Convert filter and Null renderer.
The parameters are: AVS script name, Filter Name, Renderer Name, Number of pass.
How can I to pass these parameters to GraphStudio to get the result? Is it possible or can we get this functionality in near future?

Thanks

RadScorpion
5th December 2008, 19:30
Yes, quite possibly. At the moment I'm trying to make GraphStudio abort neverending render operations and to produce some nice reports (e.g. how long did the rendering operation take and what filters were used). After that a more robust commandline is at the very top of my wishlist.

Emp3r0r
9th December 2008, 02:01
Can this tool show and work with x64 codecs?

LoRd_MuldeR
10th December 2008, 00:01
Can this tool show and work with x64 codecs?

The only available pre-compiled binary of GraphStudio is a 32-Bit executable. So it can't load any 64-Bit filters for obvious reasons.

Unless somebody compiles a 64-Bit executable of GraphStudio, you won't be able to work with 64-Bit codecs. I got no idea if anybody has tried to do that yet...

dalleyg
10th December 2008, 00:07
The only available pre-compiled binary of GraphStudio is a 32-Bit executable. So it can't load any 64-Bit filters for obvious reasons.

Unless somebody compiles a 64-Bit executable of GraphStudio, you won't be able to work with 64-Bit codecs. I got no idea if anybody has tried to do that yet...

If you have Visual Studio, you can compile it to 64-bit by loading the project, then going to Build | Configuration Manager. Pull down the "Active solution platform" in the upper right and pick "<New...>". Select "x64" in the upper combo box and have it copy settings from "Win32". You might have to tweak some of the libraries a little, but it should compile (I got it working a while back, but I don't remember if I had to do more than what I just described).

rica
10th December 2008, 01:53
RadScorpion,
I have to use keyboard to delete an unwanted filter since there is still no Edit/delete option.

Emp3r0r
12th December 2008, 23:28
If you have Visual Studio, you can compile it to 64-bit by loading the project, then going to Build | Configuration Manager. Pull down the "Active solution platform" in the upper right and pick "<New...>". Select "x64" in the upper combo box and have it copy settings from "Win32". You might have to tweak some of the libraries a little, but it should compile (I got it working a while back, but I don't remember if I had to do more than what I just described).I've tried this but with no luck. I'm guessing I need the WinSDK...? Anybody else already compiled this for x64 or know of where I can find a program that can change the merits of installed 64 bit codecs?

clsid
13th December 2008, 00:00
You can do it with RegEdit by manually hexediting the filterdata.

An example. The red numbers are the merit. So always value 5 to 8. The merit is backwards, in the example 00600001.
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{083863F1-70DE-11d0-BD40-00A0C911CE86}\Instance\{DC257063-045F-4BE2-BD5B-E12279C464F0}]
"FriendlyName"="MPC - Mpeg Splitter (Gabest)"
"CLSID"="{DC257063-045F-4BE2-BD5B-E12279C464F0}"
"FilterData"=hex:02,00,00,00,01,00,60,00,02,00,00,00,00,00,00,00,30,70,69,33,\
00,00,00,00,00,00,00,00,05,00,00,00,00,00,00,00,00,00,00,00,30,74,79,33,00,\
00,00,00,90,00,00,00,a0,00,00,00,31,74,79,33,00,00,00,00,90,00,00,00,b0,00,\
00,00,32,74,79,33,00,00,00,00,90,00,00,00,c0,00,00,00,33,74,79,33,00,00,00,\
00,90,00,00,00,d0,00,00,00,34,74,79,33,00,00,00,00,90,00,00,00,e0,00,00,00,\
31,70,69,33,08,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,83,\
eb,36,e4,4f,52,ce,11,9f,53,00,20,af,0b,a7,70,84,eb,36,e4,4f,52,ce,11,9f,53,\
00,20,af,0b,a7,70,22,80,6d,e0,46,db,cf,11,b4,d1,00,80,5f,6c,bb,ea,23,80,6d,\
e0,46,db,cf,11,b4,d1,00,80,5f,6c,bb,ea,42,23,3a,0e,e2,f6,91,4c,bd,ae,87,c7,\
1e,ad,0d,63,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00

dalleyg
13th December 2008, 00:30
I've tried this but with no luck. I'm guessing I need the WinSDK...? Anybody else already compiled this for x64 or know of where I can find a program that can change the merits of installed 64 bit codecs?

Yeah, you probably need the Windows (or Platform) SDK. It's a free download from Microsoft.

I like using the DirectShow Filter Manager from softella.com for changing merits and adjusting default options.

Emp3r0r
13th December 2008, 05:11
@clsid: thanks, I'll give this a try

@dalleyg: that filter manager only works for 32bit just like every other filter manager out there

RadScorpion
13th December 2008, 11:23
I think 64-bit support is not a big deal - the next release will appear as both 32 and 64 bit builds.

@rica: perhaps a small button that will appear in the upper-left corner of the filter as you enter its area by your mouse should do the job. Edit->Delete is 2 clicks away. If you select multiple objects there could be a delete item in the right-click menu.

RadScorpion
13th December 2008, 20:17
Hi,

a new version of GraphStudio is available for download with the following changes:

* never-ending render operation is aborted after 10 seconds
* GraphStudio generates a list of all selected and inserted filters after a render operation
* GraphStudio is now also compiled for x64 architecture

Download here :

* graphstudio.exe (win32) (1148 KB) (http://blog.monogram.sk/janos/download/dl-graphstudio.php)
* graphstudio64.exe (x64) (1913 KB) (http://blog.monogram.sk/janos/download/graphstudio64.exe)

Enjoy,

Igor

Emp3r0r
14th December 2008, 06:05
Thanks RadScorpian! The x64 version is first time I've been able dig in and see what is going on with my x64 codecs.

I'm finally able to get a file to playback using MPC Video Decoder outside of MPC-HC by manually building a graph. If I try to render this file automatically it just says "Cannot render file".

Any tips on what may be causing the graph not construct properly? Is there a log file that will tell me more information than "Cannot render file"?

Thanks again for the x64 version!

RadScorpion
14th December 2008, 10:12
I've added a feature that lists all used filters when rendering a file but unluckily it appears not to catch the first filter in graph - the one that is created with IGraphBuilder::AddSourceFilter call. My (wild) guess would be that the graphbuilder is instructed by templates from 32-bit filters (either Haali or Gabest source/demux filters) to use some 32-bit source/demux instead of "File Source (Async.)" that for obvious reasons won't work and then the graphbuilder stops trying. To verify this you might simply check the result value of a IGraphBuilder::AddSourceFilter call.

clsid
14th December 2008, 15:52
The settings in this registry key are used to configure the default source filters:
HKEY_CLASSES_ROOT\Media Type\Extensions

Microsoft was stupid enough to make this keys shared between 32/64bit. This means that playback will break in many applications if you have got different source filters installed for 32/64 bit. Media Player Classic is the only DS player I know of that can cope with this issue.

Emp3r0r
15th December 2008, 04:20
:thanks:

I deleted the key "HKEY_CLASSES_ROOT\Media Type\Extensions\.mkv" and then the graph built automatically.

You guys made my day. I'm finally able to playback video's using MPCVideoDec.ax x64 filter in Vista Media Center.

Finally, I won't have to launch video's for my wife. :)

mrkazador
15th December 2008, 17:54
Why is it that I cannot save the .GRF?
Its a simple graph but I get an error, Cannot Save File. I tried using different media types and connections, same problem...

clsid
11th January 2009, 16:06
Some suggestions for the Text Information window:

1) Ctrl+A does not work for selecting all text.
2) Copy button is not implemented. Should copy all text to clipboard.
3) Clear and Refresh buttons could be merged into a single button that performs both actions.
4) I would really like to see an addition section in the generated log called "Filter details" which shows for each filter in the graph the following information: name, clsid, file location. (higher report levels could additionally add: file version, md5, company name)

RadScorpion
11th January 2009, 19:51
Thanks. I'll take a look...

CruNcher
13th January 2009, 10:55
might be of interest to some http://vlafy.iulabs.com/agm.htm it's not free though :( thx to fizick for the info

MatMaul
13th January 2009, 16:47
might be of interest to some http://vlafy.iulabs.com/agm.htm it's not free though :( thx to fizick for the info
the only thing graphstudio doesn't have is the listing of all the interfaces supported by a filter.

RadScorpion, can you put that on your todo list ? :)

RadScorpion
13th January 2009, 17:41
@MatMaul: Sure... I don't want to be bored in 2009.

@clsid: I'm thinking of the text reports... Do you think that HTML / XML output might be more useful than plain text?

Leak
13th January 2009, 18:45
If I might make a tiny request: please add an icon to the toolbar to bring up the "Insert filter" dialog. :)

Also, could you please add "Delete" to the context menu and/or toolbar to delete a filter without having to resort to the keyboard or menu.

Oh, and being able to insert filters (even if it's just from the favourites) when right clicking in empty space would be killer... :)

np: Sigur Rós - Með blóðnasir (Takk...)

RadScorpion
13th January 2009, 20:32
Actually you've just given me a nice idea - a sort of "context tool panel" that might hover in the upper corner of a selection. Something like M$ Word has.
Rightclick in empty space is a must - no doubt about it.

clsid
13th January 2009, 22:04
I prefer a plain text report. That way it can easily be copy&pasted into a forum post.

sipper
21st January 2009, 08:59
Hi RadScorpion,

I hope I may drop a question about your AC3Encoder here.
Earlier you mentioned that the encoder does only support 16bit streams. I use Matrix mixer now the convert a 24bit stream to 16 bit. Also correcting the mixed up channel mapping with it.

Now it seems like that the encoder does not support 96Khz streams, only 44Khz and 48Khz.

Do you have a suggestion to solve this 'problem'?

Thanks for your support.

Sipper

p.s.

I've pasted some info here about the channel mix-up.

===================================
Because the AC3 encoder is based on ffmpeg which seems to have no dynamic channel mapping for the different audio types.
FFMPeg expects AC3 channel-order input like defined in the "Digital Audio Compression Standard (AC-3, E-AC-3) Revision B" document. Also al couple of other encoders do this, don't be surprised if all voices are coming from your right speaker after converting....
So we have to map the channel-order from WAV order to AC3 order.

A/52B AC3 channel order: 1-L 2-C 3-R 4-SL 5-SR 6-LFE
Microsofts WAVE_FORMAT_PCM channel order: 1-L 2-R 3-C 4-LFE 5-SL 6-SR

Then the mapping will be:
L>L
C>R
R>C
SL>LFE
SR>SL
LFE>SR
===================================

RadScorpion
21st January 2009, 09:03
Right now I can't really tell what the problem is. This week I hope to do some update for the AAC decoder filter and then I may try to look at this issue. I hope it's okay.

Leak
21st January 2009, 09:25
By the way - Germany's c't magazine has a (short) article (http://www.heise.de/ct/suche/?q=graphstudio&rm=search&channel=ct) about GraphStudio in it's current issue... :)

RadScorpion
21st January 2009, 09:28
I know :) They emailed me for permission to include GraphStudio in their DVD.

sipper
22nd January 2009, 08:52
Right now I can't really tell what the problem is. This week I hope to do some update for the AAC decoder filter and then I may try to look at this issue. I hope it's okay.

Yes, Super.

cpp2005
25th January 2009, 11:25
When connected to remote graph, there are no filter's own properties. For example, for ffdshow, there is no ffdshow tab. Is it possible to fix it?

clsid
27th January 2009, 16:21
On Vista, GraphStudio will give an error when trying to change the merit of a filter, even when run on an admin account. If I explicitly run GraphStudio with admin privileges, then it works ok.

Vista by default gives low privileges to applications. You should be able to fix that by adding a manifest to the executable.
Something like this:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<assemblyIdentity name="GraphStudio" processorArchitecture="x86" version="1.0.0.0" type="win32" />
<description>GraphStudio</description>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

Edit: hmmm, it worked ok last time I tried on Vista. Nevermind then.

rica
20th February 2009, 01:45
Igor, i've been wondering if it is possible you to add WASAPI support over Madflac?

EDIT: Sorry Igor, it is wrong address.

six13
1st March 2009, 22:12
I am looking at a .dvr-ms file my friled sent me that he recorded on media center and is trying to conver to mpg so he can write to DVD. This is a movie recorded from satelite dish. Previously he used to take the .dvr-ms file and easily convert to mpg with DRVmstoolbox but all he gets is an error after 5 seconds. I looked at the file with Graphedit and this is what I see. Is there a workaround? If so please explain as I am a new to video editing but find it very intersting. I have been serching but can't fidn the solution in plain english. Pleae see screen shot.

Thank you very much.

Sex13

clsid
4th March 2009, 13:46
I noticed a small issue in the "Text Information". A long file path gets truncated to 128 characters.

Maik
25th March 2009, 14:59
Hi there,

in our video editing software, we are encountering the following problem:

Sometimes, during graph creation, direct show uses filters we don't want it to use within the graph or at least tries to use them. Especially specific codecs can be problematic, so we try to avoid those in our graph.

At the moment, we implement the IAMGraphBuilderCallback Interface to prohibit the use of those filters, which works fine, provided we know the GUIDS beforehand. ( We hold all unwanted GUIDs in a "Blacklist", as well as known and uncritical filters in a "Whitelist". )

But, in case an unknown filter might be used, we can not analyze if the filter is really added to the graph. We can only see if it was handled by our class implementing the above mentioned interface via it's CreatedFilter() or SelectedFilter() methods.

So the question is:
How can we get the GUIDs for all filters actually added to our running graph from within our application?

( We already tried the EnumFilters()method, too. This only gives us an object called "Big Switch", which, when running the graph, obviously is expanded. We called the method before and/or after the ->Run(), to no avail... )

I'm looking at the GraphStudio source code at the moment to get a hint of how it's done there, but i just don't get i, to be honest.

Cheers & Thanx in advance
Maik

RadScorpion
25th March 2009, 15:35
Hmm... this is kinda tough issue. There is no interface that would notify you that a filter has been added or removed to/from a graph.

You might try to enumerate all filters twice - once before the render operation and once after it has been finished... and then compare the two lists. But this will not help you fight unwanted filters.

I would strongly recommend to use the ICaptureGraphBuilder2 interface (don't get confused - it can be used for any graph, not only capture) which has a very powerful method - RenderStream. You can specify source-, mid- and sink filters for a single rendered chain. e.g. RenderStream( type_video, splitter, NULL, video_procesor ) will only build a video decoding chain and won't end up with a deep filter tree in case a stupid filter happens to get in the way.

Igor

Maik
25th March 2009, 15:58
Thanx Igor for the quick response :)

RenderStream (...) is called somewhere in our code already,
so we may be able to tinker with it some more, like you suggested, to get the desired results.

Anyway i will report here about our progress.

Cheers
Maik

Maik
26th March 2009, 16:46
One more question:

How can i download the complete Head-Revision trunk?
I managed to download the "tags" .zip files, but the trunk view only offers some html views of the source-files.

I tried to copy the URL "http://dev.monogram.sk/websvn/" into my SVN client's (Tortoise) Repo-Browser,
but this doesn't seem to work either.

Greetings
Maik

RadScorpion
26th March 2009, 16:48
There is a link published on this page : http://blog.monogram.sk/janos/tools/monogram-graphstudio/

The svn URL is :

svn co svn://dev.monogram.sk/public/graphstudio/trunk

Brazil2
5th April 2009, 12:27
There is an annoyance with the Render URL option. The number of characters that can be used for the URL is limited to the width of the text input window.

For instance, I can't enter more than 65 digits:
12345678901234567890123456789012345678901234567890123456789012345

and only 39 W's:
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW

This is way too short for most URL's, especially Akamai's ones.

kalia
5th April 2009, 16:21
I noticed a small issue in the "Text Information". A long file path gets truncated to 128 characters.

i've been experiencing truncation issues aswell. not a major issue and one that i can work around but has anyone sorted this out yet? http://www.photopile.info/img/c/8.gif

kalia.

turbojet
10th May 2009, 16:15
Any chance of unregistering and changing merits of multiple items in the filters page?

RadScorpion
11th May 2009, 17:20
Hi. Sorry for the late reply.

@turbojet: yes, that might be possible. I'm planing a larger release soon focused mainly on user interface issues so any ideas that might come handy are welcome.

I'm also reading the Media Foundation documentation intensively and hope to find some time to write some GraphStudio-like tool for Media Foundation as well.

CiNcH
11th May 2009, 17:59
Little issue..

.. it is only possible to connect to a remote graph once. If you disconnect from it, the graph will not be available in the connect list any longer afterwards. The application which created the graph has to be restarted to make it available within GraphStudio again.


A feature that saves GraphEdit from being deleted is removing filters from the remote graph on-the-fly, so during graph runtime.

RadScorpion
11th May 2009, 18:05
I'm doing exactly this quite often and do not experience any such problems. What applications are you referring to ?

CiNcH
11th May 2009, 18:34
I'm doing exactly this quite often and do not experience any such problems. What applications are you referring to ?
DVBViewer Pro. No problem with GraphEdit. Only if I connected to the remote graph with GraphStudio once, it is afterwards also not available within GraphEdit any longer. But within GraphEdit only, I can connect/disconnect as often as I want.

Using Windows XP SP3 here.

rica
11th May 2009, 21:30
DVBViewer Pro. No problem with GraphEdit. Only if I connected to the remote graph with GraphStudio once, it is afterwards also not available within GraphEdit any longer. But within GraphEdit only, I can connect/disconnect as often as I want.

Using Windows XP SP3 here.

Confirmed for Vista32+DVBViewer as well.
We have two graphs behind the application as you know; one for capturing, the other one for playing.
When i connect and disconnect and after try to connect again to the playing graph, i can't see that but untouched capture graph remains but you will see both graphs in second trial with graphedit.


Another point:
I can't use nero audio decoder2 in graphstudio while i can do it in graphedit.
BTW, i can use your mm_aac decoder filter even with problematic aac files; thanks for that.

turbojet
12th May 2009, 11:29
Hi. Sorry for the late reply.

@turbojet: yes, that might be possible. I'm planing a larger release soon focused mainly on user interface issues so any ideas that might come handy are welcome.

Thanks. I will keep my eyes open for other things.

I'm also reading the Media Foundation documentation intensively and hope to find some time to write some GraphStudio-like tool for Media Foundation as well.

Sounds interesting and with Windows 7 coming soon it would be very welcome. Good luck on your ventures.

RadScorpion
14th June 2009, 12:40
Hello people,

a new build of GraphStudio is available with the following changes:

* Render URL can accept more characters than the width of the input box is
* File name truncations fixed in “Text Information” form
* “Copy” button copies the text report into the clipboard
* Small “Text Information” form redesign
* “Delete Selection” added to filter context menu
* GraphStudio makes sure it is located on a visible portion of the screen at start

Download:

* 32-bit graphstudio.exe (1148 KB) (http://blog.monogram.sk/janos/download/dl-graphstudio.php)
* 64-bit graphstudio64.exe (1918 KB)
(http://blog.monogram.sk/janos/download/graphstudio64.exe)
Enjoy,

Igor

clsid
14th June 2009, 13:07
Some suggestions for the "Text Information":
1) Under the "Filters" heading, it shows the file name twice. Once as filter name (regardless of option "display as file name"), and once behind "File:". May I suggest it always displays the name of the source filter and the file name below?
2) Could you add the guid of each filter to the "Filters" list?
3) Same for the location of the file belonging to a filter. This info is useful when helping others with playback issues.
4) Under "Connections" it also shows the file name instead of the source filter. I suggest using the source filter name there too.

An example entry for filters section:

3. ffdshow video decoder
{04FE9017-F873-410E-871E-AB91661A4EF7}
c:\program files\ffdshow\ffdshow.ax

rica
14th June 2009, 22:45
Confirmed for Vista32+DVBViewer as well.
We have two graphs behind the application as you know; one for capturing, the other one for playing.
When i connect and disconnect and after try to connect again to the playing graph, i can't see that but untouched capture graph remains but you will see both graphs in second trial with graphedit.



Still same here...

Inspector.Gadget
14th June 2009, 23:17
Is DVD rendering implemented yet? The option always remains greyed out on the File menu. Thanks.

Leak
15th June 2009, 00:37
Is DVD rendering implemented yet? The option always remains greyed out on the File menu. Thanks.
I've said it before, I'll say it again:
void CGraphView::OnFileRenderdvd()
{
}
No, it's not implemented. Yet.

np: B. Fleischmann - Aldebaran Waltz (Not Given Lightly (Disc 2))

RadScorpion
15th June 2009, 09:33
... and I was beginning to worry that there was nothing left for me to finish.

SurFan
15th June 2009, 18:33
Hi,

saving to xml still doesn't save pin connections

Ralph

CiNcH
30th June 2009, 20:01
Hi,

got a question...

is every filter in a graph able to trigger stop/run or just the host application or Graph Builder? Is it possible to find out who did that, so can graph messages be caught somehow?

Keiyakusha
3rd July 2009, 19:57
I tried to run Decoder Performance test with Microsoft DTV-DVD Video Decoder (on Windows7) and result was quite promising! :D
http://www.petaimg.com/u322/479Untitled-1.png
Is this just me or this is some kind of bug?

Brazil2
4th July 2009, 02:01
It would be nice to add MTS and M2TS to the list of extensions for video files in the Open window dialog ;)

ipanema
7th July 2009, 22:32
I just found this thread - looks interesting.

The original GraphEdit seems to be unable to open .grf files which contain filters which are not present on the PC on which it is run. This might happen if the .grf file was created on a different PC, or one of more of the filters is "built-into" the program that created it (not an external DirectShow filter).

It's quite frustrating to be prevented from seeing any of the details in these .grf files when maybe only 1 filter is not present on your PC.

It would be great if it was possible to open these .grf files and see the filters and GUIDs, connections and media types even if some of the filters do not actually exist on the current PC.

Can this version of GraphEdit do that?

Later: I just managed to find a .grf file created by a program with an "internal" filter, and in GraphStudio it causes an error box which just says "Can not open file". Although the filter can not be found "externally" on the PC, the .grf file presumably still contains its GUID and information about how its pins are connected and their connection media types. So isn't it possible to just draw a dummy box for these filters labelled just with their GUID and with the pins properly connected?

JonE
10th July 2009, 14:27
@RadScorpion,
Minor bug to report.

I've had an instance of GraphStudio throwing an exception when interogating connected filter pins.

Exception is caused by not checking for a NULL when a media type indicates FORMAT_VideoInfo but pbFormat is NULL. (eg line 482 of object_details.cpp).

Strictly speaking, I guess this situation shouldn't occur ? However thing is this does not seem to effect the ye olde Microsoft GraphEdt.

Keep up the good work - GraphStudio is a fantastic util :thanks:

TTFN,
Jon

PS : Forgot to note version I downloaded via SVN but first line of changes.txt is "[0.3.1.0 - Beta 13/December/2008]"

Nexin
22nd July 2009, 14:06
re-write:

Icons disapearing from view, forever chasing them and keeping graphstudio work are clean.

Can we not find a better way of dealing with this. I had tried smaller icons but feel 100% it just perfect.

Rather not have icons dissapear with each filter insert etc vertically downwards, or horizontal sideways.

What of inset and they get added to a list (not favourite but on the graphedit workspace. As favourite list is for most used not the tryout filters.

I don't know but something better would be nice.





Other things:

A 10 second time out for incompatible filters, 3 seconds would be nice if 10 seconds really isn't essential.

The favourite filter list having a right click option to remove a filter.

Connection manager i notice likes to crash out same as graphedit does. :)

Nexin
22nd July 2009, 14:09
HAve been trying to build a graph recently for streaming pc1 to pc2 using a mpeg2 clip.

I have the stream via http file load thing and able to play it. Then it all goes wrong in trying to get it to transcode with directx xvid codec. I can do the audio but the video part find no filters to connect to the xvid encoder. Anyone through some help what goes between the avi mux and xvid encoder ?

Valeron
9th October 2009, 06:09
I just try measuring decoder performance with Chegepuga filter in GraphStudio, but that seems it doesn't work. I've unchecked "Use Clock", but it still playback at constant fps.

I've just try graphedit, it works. So I think this might be a bug in GraphStudio, I'm using the lastest 0.3.2.0 beta.

Keiyakusha
11th October 2009, 16:15
Is there any info when we can expect new version?
Small feature request: UAC elevation when user trying to unregister filter, change merit or something. Also it will be nice to add "register" button somewhere near "unregister".

Kurtnoise
14th October 2009, 15:36
Is it me or the madVR is not listed as Renderer in the combobox from the Video Decoder Performance Test window ?

I'm using the last version...

LoRd_MuldeR
14th October 2009, 19:39
It's listed under "Graph" -> "Insert Filter", but not under "Graph" -> "Insert Video Renderer".

My assumption would be that an unknown DirectShow filter cannot be classified as being a renderer easily and MadVR simply isn't in GraphStudio's list of "known" renderer's yet ;)

IanB
14th October 2009, 21:20
Anything with only input pins is likely to be a "Renderer". ;)

Possible issue :- Daft filters that grow output pins after input connections. Hopefully the set size == 0 :D

LoRd_MuldeR
14th October 2009, 21:51
Anything with only input pins is likely to be a "Renderer". ;)

Likely, but not necessary. There are other "sink" filters, like DirectShowSource in Avisynth and stuff.

Also: Is the number/kind of pins known in advance, before instantiating a filter ???

Kurtnoise
15th October 2009, 09:13
Also: Is the number/kind of pins known in advance, before instantiating a filter ???
I think yes...

IanB
15th October 2009, 21:36
Likely, but not necessary. There are other "sink" filters, like DirectShowSource in Avisynth and stuff.I guess it depends on your definition of renderer. To me DSS is a renderer (it renderers to AVS video frames and audio buffers). I guess the FileWriter might be the example you were looking for, but also that could be viewed as rendering to a file.:confused:

Also: Is the number/kind of pins known in advance, before instantiating a filter ???Well a filter only has to expose 1 pin at startup (else it's a pretty lame filter :rolleyes: ) and can grow pins as requires, i.e. Infinite Tee. And I guess this lameness definition implies that at least 1 input and 1 output pin be required at startup.

As for "before instantiating" well I guess it is very hard to IPin::EnumPins() without doing so. Suggestion withdrawn :cool:

LoRd_MuldeR
15th October 2009, 21:47
I guess it depends on your definition of renderer. To me DSS is a renderer (it renderers to AVS video frames and audio buffers). I guess the FileWriter might be the example you were looking for, but also that could be viewed as rendering to a file.:confused:

Well, we were talking about renders that would fit into GraphStudio's "Inset Video Renderer" menu and why MadVR is missing in that menu.

As a user, I'd expect such "renderers" to output the video to the screen in a way ;)

As for "before instantiating" well I guess it is very hard to IPin::EnumPins() without doing so. Suggestion withdrawn

So we would have to instantiate all DirectShow filters installed on the user's system in order to classify those filers with "only input pins" as "renderers".

Probably too slow to do this at application startup. So using a hardcoded list of "known" Video Renderers may be more reasonable...

squid_80
19th October 2009, 07:42
Regular directshow filters are registered using CLSID_LegacyAmFilterCategory. There is also CLSID_AudioRendererCategory (Audio Renderers) and CLSID_TransmitCategory (External Renderers) - but CLSID_TransmitCategory has MERIT_DO_NOT_USE so the filter mapper won't use any filters from that category when automatically constructing graphs. This probably discourages filter writers from using it.

w4tt4n4b3
21st October 2009, 05:37
This is a great tool. Radscorpion. Thanks a lot!
I am trying to put the scheduler into motion but when I try to set a future time it is not accepted. It corrects the time and brings it back to present time. Am I doing anything wrong?

I managed to set the timings and them being accepted.
Is there any option to schedule multiple recordings and output in more than 1 files?
Thanks.

RadScorpion
21st October 2009, 08:09
Whoa! Haven't been here for a long time. I'll try to catch up and read through all the hints.

@w4tt4n4b3: sorry, no multiple recordings so far.

Best,
Igor

w4tt4n4b3
21st October 2009, 10:59
Radscorpion if you could allow multiple recordings out of the scheduler, meaning multiple output files, that would be heavenly made...
Thanks, anyway...

w4tt4n4b3
21st October 2009, 11:09
Rad, may I ask something else? In the schedule you have 3 options, not only stop and start but restart. Since restart will erase the older file, what's the point to have restart and not only start, stop, start, stop?

RadScorpion
21st October 2009, 11:36
"Capture -> File" types of graph are not the only ones to take advantage of the schedule feature. For example I have used the restart option to fight evil hardware that caused desync issues when running for more than several hours.

mariner
21st October 2009, 14:46
Greetings RadScorpion.

Thanks for the great program. Any chance of doing something similar for Media Foundation Transform filters?

Best regards.

w4tt4n4b3
28th October 2009, 14:10
Radscorpion, let me ask you something.
I think the pause button in your application is one of the best features I have ever seen in an application like this, I mean whether it is freeware or not.
The thing is though that in order to use the pause button efficiently you have to be able to preview so that you know when to press the pause button.
I suspect that there may be another reason for that button to exist that I can't figure out...

And something else, in a 4 hours recording I did not notice any audio-video desync. At least it was not noticeable with naked eye-ear...

Could you explain to me how using restart can fight the audio-video desync problems?
I mean since restart overwrites the old recording...

When I wrote about multiple recording I did not mean simultaneous ones but successive-sequential ones...

Keiyakusha
12th November 2009, 02:21
RadScorpion
Any chances to expand Time Measure filter for testing audio decoders too?
And maybe even allow to put it in any place of the graph that I want and open its window when I hit "play" button or by double click on it, or something...

w4tt4n4b3
5th January 2010, 11:03
I am trying to create a graph that would enable me to capture in uncompressed avi.
I have added the Capture card crossbar and the video capture to the graph but from there on I am stuck...
Could anyone help?

Since I want to cap uncompressed I don't add any kind of encoder right?

doskabouter
9th January 2010, 16:53
Hi RadScorpion,

Great program, it helped me solve a LOT of problems!

I found one bug though, you recently fixed the file/url length issue in the inputbox at open file, but at the inputbox after graph/insert file source and graph/insert filter/file source I cannot enter a url/filename longer than the inputbox.

Any chance that this can be solved soon?

Alexandre Ustinov
7th April 2010, 13:46
Hi RadScorpion,

I had no luck to download sources via svn :(
The svn told "Can't connect to host 'dev.monogram.sk'". Just trying to checkout the trunk with the command
svn co svn://dev.monogram.sk/public/graphstudio/trunk
Do you have the ideas how can i get the source codes?
I'm completely tired from Microsoft's GraphEdit and looking for tool I can improve if needed.
Also I have the question about the GraphStudio project. Is it the only place where I can see the development plans, known bugs and so on?
And how I can commit the patch for GraphStudio if any?

With respect, Alex.

jolson
15th May 2010, 16:50
The original GraphEdit seems to be unable to open .grf files which contain filters which are not present on the PC on which it is run. This might happen if the .grf file was created on a different PC, or one of more of the filters is "built-into" the program that created it (not an external DirectShow filter).

It's quite frustrating to be prevented from seeing any of the details in these .grf files when maybe only 1 filter is not present on your PC.

It would be great if it was possible to open these .grf files and see the filters and GUIDs, connections and media types even if some of the filters do not actually exist on the current PC.
A somewhat similar note:

I'm using AC3File (http://ac3filter.net/projects/ac3file) to read a DTS-CD WAV file and am connecting it to SPDifer (http://ac3filter.net/projects/spdifer) and last to the Audigy renderer. This lets me send the audio bit-perfect over Toslink for the reciever to decode.

However, AC3File has to be "bound" to a source WAV file when I create the graph, and if the wav file can't be found (maybe on an external disk I forgot to turn on) Graphstudio can't open the graph. It would be nice to be able to open the graph anyway, especially if I have added more filters than in the above description.

CyberShadow
26th May 2010, 03:43
I found one bug though, you recently fixed the file/url length issue in the inputbox at open file, but at the inputbox after graph/insert file source and graph/insert filter/file source I cannot enter a url/filename longer than the inputbox.

Any chance that this can be solved soon?
Try this:
http://github.com/downloads/CyberShadow/graphstudio/graphstudio-22cfcb.7z

I created a fork for my own purposes on Github, here (http://github.com/CyberShadow/graphstudio).

Stockpile
6th June 2010, 22:08
As a user who haven't tried GraphEdit, I personally find GraphStudio quite useful, since I think my "Codec Library" is kinda unclean. Now I definetly know what codec is used to play my media files and in that way detect the violet snakes among the purple.

Oh, and btw The local discussion board link on your site is dead it seems.

CyberShadow
7th June 2010, 13:03
I have made a few improvements to GraphStudio:


As mentioned above, the limit for text entry in certain combo boxes has been removed
Basic XML graph saving support has been added (only filters and connections at the moment)
Pins are now referred by their indexes in XML rather than by ambiguous names
Added command-line /render parameter, which loads a graph, plays it and exits

XML support and /render allow scripted generation and rendering of XML graph files.

Source: http://github.com/CyberShadow/graphstudio/
Download: http://github.com/downloads/CyberShadow/graphstudio/graphstudio-534c11.7z

Mounir
29th November 2010, 02:06
I have trouble to find the right filters, someone has tried this software with terratec cards (cinergy 250 pci) or clones ? I'd love to see snapshots if so.
But before going into greater depth i wanna know if we can alter hue,sat,contrastbrithness and, above all, keep these changes in the recorded vide otherwise i think i'll stick with my old software.

robertcollier4
31st March 2013, 22:11
Can it be possible to send the output pin of a Graphedit chain to a command line EXE that could read the data from an input pipe? (For example, send the audio data via piped output / piped input to qaac.exe).

filler56789
31st March 2013, 22:57
Can it be possible to send the output pin of a Graphedit chain to a command line EXE that could read the data from an input pipe? (For example, send the audio data via piped output / piped input to qaac.exe).

Not sure if it's what you need, but wavi.exe can read the audio from a DirectShowSource Avisynth script and send it to stdout.

steakhutzeee
9th October 2017, 01:01
Is this no longer workin? I'm trying it using madvr and lav but it doesn't recognizes them.

huhn
9th October 2017, 02:59
31st March 2013 23:57

sounds dead to me.
try this: https://github.com/cplussharp/graph-studio-next

steakhutzeee
9th October 2017, 10:38
sounds dead to me.
try this: https://github.com/cplussharp/graph-studio-next

Thanks :) You use it? I tried but this is the result. Strange because i'm using madvr and lav.

https://postimg.org/image/3vyvwh5djv/

huhn
9th October 2017, 16:18
i used it to debug a problem.
sorry but you have to load madVR and lavfilter to well use madVR and lavfilter.
https://abload.de/img/ksp1kuy7.png

clsid
9th October 2017, 16:34
That result is perfectly normal. GraphStudioNext behaves like a standard DirectShow application. It uses the Microsoft decoders because those are set as "preferred" in Windows. It also uses the system default video renderer (which is VMR-7).

You can edit the graph if you want to test different filters.

steakhutzeee
9th October 2017, 21:13
Sorry, how can i do this?

What "you have to load madVR and lavfilter to well use madVR and lavfilter" means?

"You can edit the graph if you want to test different filters." so i can configure the application tu test if madvr and lav are working? how?

Thanks!

nussman
9th October 2017, 21:43
What do you want to debug with graphstudionext?
With "Connect to remote graph" you can see the loaded filters during media playback.

I would not recommend to use "advanced functions" for users who are not familiar with directshow.

steakhutzeee
10th October 2017, 14:56
What do you want to debug with graphstudionext?
With "Connect to remote graph" you can see the loaded filters during media playback.

I would not recommend to use "advanced functions" for users who are not familiar with directshow.

Just curious, i would like to learn something about this argument (video audio).

Any suggestion? Something i should read to learn, about madvr, filters, formats etc.?

When i try to use remothe graph, why i've two options? https://postimg.org/image/7lz6n03bob/
With both i've this error: https://postimg.org/image/4zc0j5syaj/

nussman
10th October 2017, 15:30
You need to register the proppage.dll to use this function first.
Its included in Windows SDK.

steakhutzeee
10th October 2017, 15:32
You need to register the proppage.dll to use this function first.
Its included in Windows SDK.I'm noob about this, there is a guide maybe on how to do this?
Why I have two mpc be?

What about my other questions?

Thanks :)

Inviato dal mio BLN-L21 utilizzando Tapatalk

nussman
10th October 2017, 16:12
Dont know if there is a guide for this ( and I have no time to explain atm sorry, maybe someone else can).

I still think graphedit etc. will not show you anything you need. Connect to remote graph shows the filter list. Thats sonething your player can do as well. Further informations about how filters talk to each other is more for developers to debug problems.

steakhutzeee
10th October 2017, 17:17
i used it to debug a problem.
sorry but you have to load madVR and lavfilter to well use madVR and lavfilter.
https://abload.de/img/ksp1kuy7.pngI was looking for something like this.
It's so difficult to have it on my system?

Inviato dal mio BLN-L21 utilizzando Tapatalk

clsid
10th October 2017, 18:14
What exactly do you want to do? And why?

You can edit the graph by deleting filters and inserting different ones through the menu. If you can't figure it out yourself, then I don't think this tool is useful for you.

steakhutzeee
10th October 2017, 18:19
What exactly do you want to do? And why?

You can edit the graph by deleting filters and inserting different ones through the menu. If you can't figure it out yourself, then I don't think this tool is useful for you.

Well, was my curiosity. I was thinking that loading a video I would have seen the filters map. Look at the relations etc.

clsid
10th October 2017, 18:36
MPC-HC can also show you details:
menu > play > filters