Log in

View Full Version : Opensource GraphEdit project


Pages : 1 2 3 4 [5] 6

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]"