Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update release? #4

Open
rehdi93 opened this issue Feb 10, 2017 · 11 comments
Open

update release? #4

rehdi93 opened this issue Feb 10, 2017 · 11 comments

Comments

@rehdi93
Copy link
Contributor

rehdi93 commented Feb 10, 2017

hey buddy, super happy that you liked my patch 😄 feels awesome for a learner like me.

but i noticed that you did not update the release in your repo, with my changes it's important to have the Scripts folder and the EXE on the same folder or the program won't work. I did draft a release on my fork as a 7z file w/ both of those things.

@isti115
Copy link
Owner

isti115 commented Feb 10, 2017

I am definitely planning on updating it. Some features are still in the works on my side, but after I made some modifications and tested it for a while I will package it up into a release!

@rehdi93
Copy link
Contributor Author

rehdi93 commented Feb 10, 2017

Cool, I've also been working on my side as well, I want to add a config file to save stuff like paths, N# of processes, but I'm struggling a bit to find a method I understand 😐

@rehdi93
Copy link
Contributor Author

rehdi93 commented Feb 15, 2017

Update

I DID find a way using the standard app.confg, see my "setting_file" fork

@isti115
Copy link
Owner

isti115 commented Feb 24, 2017

Man, the amount of things you are adding to this repository is huge! :)
I mean, that cool README that you have on your fork, the ability to manually pick blender and ffmpeg instead of using PATH, etc...

I'm starting to feel like this program is closer to being yours than being mine. If you are fine with that I could pull your changes, obviously credit you in the README and publish a release here as well.

@jendabek
Copy link

jendabek commented Feb 25, 2017

RedRaptor93: It looks like we are synchroniously working on the same things :) Can you please look to my modifications to your older version? I think there are some really important changes but I don't think it would be mergeable to your current source.
I noticed you added nice readme but you didnt commit any changes 15 days so I could not try to keep it in sync with you.
The most important changes in my version are:

  • segments splitting is based on user-defined "chunk length" and all numeric inputs should be very fool-proof, there should never occur any non-sense settings (it automatically adapts to loaded .blend timeline etc.)
  • rearanged UI to make it more simple and straightforward
  • progressbar is displaying the progress by single frame accuraccy (by parsing Blender process output)
  • when hitting "Stop", it kills rendering processes, thats the same case on app close
  • mixdown audio now starts / ends as the video, it now auto-detects the file and is used by ffmpeg accordingly (it replaces original audio if mixdown exists)
  • some confirmation dialogs (stopping render, overwriting already rendered chunks etc), status info etc.
  • it works with relative paths, user doesnt have to care about what he set in Blender
  • code refactoring, but I kept the basic functionality (which is the most important of course, I would take me forever to figure it out myself!) and your design.

Today I have finished storing the settings (created a class named AppSettings that cares about all the settings) and tommorow I will add configurable paths to executables. Then it will become really usable for everyone I believe!
But I am not sure what to do with it when we will have similarily functional 2 different versions? :) We can just let users to decide which one they want to use?
I don't think we would be able to re-use any of our code in the project of the other :(
Sorry, I thought you are not working too much because didnt see any commits last weeks :(

@rehdi93
Copy link
Contributor Author

rehdi93 commented Feb 25, 2017 via email

@jendabek
Copy link

jendabek commented Feb 25, 2017

That Xamarin course could be very interesting, it is certainly nice tool to know :) I have never coded in C# before but I have some experience with Adobe AIR (ActionScript 3), which is some kind of multiplatform tool too. The language syntax is very similar to C#, fortunately! Still I struggle with some areas a lot so I think the author of this app should be noted as StackOverflow at the first place :)
No shame please! I think we will find a way how to get the best from both projects :)
Now I am working on startup detection of missing Blender & FFmpeg paths, test it properly and release it maybe as some beta / alpha / whatever version, is it ok? Of course names of you both will be included in that GitHub menu.

@isti115
Copy link
Owner

isti115 commented Feb 25, 2017

@RedRaptor93 You might be confusing something, because the first commit of @jendabek was on Feb 22, 2017. ;)

Anyway, I tried out your settings_file branch, and there seems to be some problem with empty paths being read and thus exceptions being thrown. I didn't have any time to tinker with it yet, so I have no idea what causes it, but if you could give me some clues I might be able to figure it out for the release.

The exception at expand.cs line 25:

An unhandled exception of type 'System.ArgumentException' occurred in mscorlib.dll

Additional information: The path is not of a legal form.

Upon inspecting I found that the exe variable contains an empty string that comes from MainForm.cs line 667:

reCheck(set.blender_path);

(My guess is that this could be because I didn't create any settings files, but in my opinion it should do it on it's own.)

@rehdi93
Copy link
Contributor Author

rehdi93 commented Feb 25, 2017

On my tests, declaring values in hard code, I don't recall getting that exception...

The way I did the checking for invalid paths is, well... Sub-Optimum to say the least (I was at my wits end, frustrated, just wanted it to work god dammit 😠 ) I'll explain how I did it.

FindExePath checks Env. PATH or working dir. for the file EXE/path supplied, if it exists in either, it return the FULL path for that EXE, else it throws FileNotFoundException, however it would throw this even if the user defined path was correct... So:

reCheck(str) runs FindExePath for the the supplied string, if FileNotFoundException is thrown it checks AGAIN to see if the file it self exists. If the EXE is neither in Env. PATH or the added check fails, returns FALSE, else it returns TRUE

checkEXE() then runs reCheck(str) for both EXEs (blender and ffmpeg) and returns a string depending on the conditions of reCheck(str) ( if reCheck(set.blender_path) is true and reCheck(set.ffmpeg_path) is false, return FFMPEG_NOT_FOUND

FINALLY the following code checks the above string and points to errorMsgs to return the error and block the buttons if necessary (this code is present on MainForm_Load and DoReadBlenderData)

            //settings check
            var chk = checkEXE();
            if (chk == "FFMPEG_NOT_FOUND")
            {
                errorMsgs(-24);
                return;
            }
            else if ((chk == "BLENDER_NOT_FOUND") || (chk == "BOTH_NOT_FOUND"))
            {
                errorMsgs(-99);
                return;
            }
            else
            {
                // both execs found
                errorMsgs(0);
            }

So yea, kinda of a (total 😞 ) mess, right now I'm seeing ways to improve it, but we should find a way to merge our code first, otherwise if I go and try to fix it I might make the merge job even harder.

@isti115 I've used App.config for storing settings, but I don't know how to make the program check for a "first time run", if I did we could prompt the user to enter paths before using it.

@isti115
Copy link
Owner

isti115 commented Feb 26, 2017

Sadly I won't have much time to spend on this in the near future, so I made a release for v0.4 including the latest sources I could get to work for me. (Bumping one minor version for the additions of @RedRaptor93 and one for my modifications.)

ps.: Just one suggestion. Use enums for the error codes instead of numbers!

@rehdi93
Copy link
Contributor Author

rehdi93 commented Feb 27, 2017

If @jendabek plans on keeping developing for this, and by the frequency he's committing it looks like he does, I'd gladly help him where I can.

I was planning on redoing my "settings_file" branch anyway, I would like to merge some of my changes to his project to see how it does.

rehdi93 referenced this issue in rehdi93/BlenderRenderController Mar 9, 2017
processes, logical cores correction
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants