Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
3rd May 2014, 11:11 | #42 | Link |
Registered User
Join Date: Feb 2008
Location: Finland
Posts: 141
|
This is still in early development, no encoding yet, sql database almoust complete, gui sql parser not done yet and only gui handling and text editor (some bugs with search and replace with Qscintilla still) is done. Video player needs rewrite but I think I delay it a bit and focus next qui functionalities with sql database. Also why it takes so much time is that mostly I am doing all new version using Qt and code pretty much with the gui needs rewrite with sql from scratch.
If you feel that this project would get more view there then move it. Always getting help to make MeGui crossplatform clone would be very nice. Especially someone with more experience dealing with avisynth would be very good help for this project. Last edited by Jeroi; 3rd May 2014 at 11:16. |
7th May 2014, 20:36 | #44 | Link |
Registered User
Join Date: Feb 2008
Location: Finland
Posts: 141
|
Here is nice peek for my changes for queve. Queve is renamed as Encoder since input is separate tab which makes encoder jobs. Another big change is removing current workers implementation and using threads spinbox to define how many threads user wants yo use for encoding. Also the start end mechanism will allocate new threads if new line is selected and started. You can then start as many encodings as you want without thread spinbox altering. When you will define threads like 4 then encoder makes 4 encoding jobs concurrent but you can start new ones with starter. Any other changes you could see as improvement?
I found one improvement again, I removed tablewidget and instead using treeview widget. Since MeXgui handles passes and audio and muxing separately it' is nice to have them subfoldered as a jobproject. So Jobs are listed as complete jobs and can be expanded to view subjobs for the jobproject. This way one single jobproject does not take too much space on the list and more separate job projects can be seen in the default view height. While I was thinking improvements to this one big improvement hit on my mind. I am always looking a good batch prosessor for many files. So I may incorportate in future batch projects to this. This would be like batch prosess a folder and select profile and queve all. So if you are anime maker you could do three avs projects and then run batch importer and make general setup for all videos and instantly get encoder to display the jobs. Edit: I now decided to separate encoder from main gui to own widget form so that it has it's own class implementation and separate headers. Makes debugging more easier. Here is screenshot with tree widget in action: And must say, I have done now first xml importer script that uses batch import from many files the xml reader srcipt was awful pain to write. Imaging one single line with sql and like 40 lines with xml. Thats the difference in api's. Last edited by Jeroi; 8th May 2014 at 00:06. |
9th May 2014, 14:44 | #45 | Link |
Registered User
Join Date: Feb 2008
Location: Finland
Posts: 141
|
Here is some sample code how nice Qt is to handle sql data. This is sample image of globals.h which defines all global things like defines, variables, data structs which various gui and classes need to operate:
Here you can see that I setup global memeory allocation to allocate some space in memory while program is running. It has profiles, jobs and SQL databse id defines visble to help SQL functions to store right id's when storing/updating data. Dont mind about the videoProfile, it is copy of audioProfile atm and since I think 2 video profile structs for mpeg4 and x264 and maybe x265 later on. Also those current profiles are not declared as extern yet in this image. How ever you can see That QList<datatype> is nice method getting SQL tables sorted in a list of structs. You can then acces all the data with list[0].name and so on where 0 is list position where first struct is and then name repsenet struct variable that holds some data. Last edited by Jeroi; 9th May 2014 at 14:53. |
9th May 2014, 15:32 | #46 | Link |
ffx264/ffhevc author
Join Date: May 2007
Location: /dev/video0
Posts: 1,844
|
Quote:
|
9th May 2014, 15:39 | #47 | Link |
Software Developer
Join Date: Jun 2005
Location: Last House on Slunk Street
Posts: 13,248
|
I think the goal of this project is to create a cross-platform (Windows, Linux, OS X, etc) port/rewrite of MeGUI, not specifically a Linux/Unix one
So, ideally, it should run equally well on all supported platforms. And it shouldn't matter which platform is used for development...
__________________
Go to https://standforukraine.com/ to find legitimate Ukrainian Charities 🇺🇦✊ Last edited by LoRd_MuldeR; 9th May 2014 at 15:41. |
9th May 2014, 15:54 | #48 | Link | |
Registered User
Join Date: Feb 2008
Location: Finland
Posts: 141
|
Quote:
You need qscintilla and ffmpeg atm with current develop files. Qscintilla needed to build from source. FFmpeg that has avisynth support build and dev files |
|
9th May 2014, 16:17 | #49 | Link |
Registered User
Join Date: Feb 2008
Location: Finland
Posts: 141
|
Few fundamentals, I think making public structs for gui is good idea to handle gui updating and such. But for tasks like jobs, if there is is 100 jobs in a memory, it starts to take toll in memory. So would direct sql fetching be more better method for jobs?
What do you think? I mean when encoder starts to encode, it fetches next available job data from sql database and process it. This would be more Functional aproach to data handling rather than Object oriented. Edit: I see now that public Qlists are stupid thing, I can fetch the list in a function and print the text to boxes. I use only memory when running the function to print data to gui. Updater can run the function again and again to fetct new stuff added to db. Last edited by Jeroi; 9th May 2014 at 16:31. |
9th May 2014, 17:19 | #51 | Link | |
ffx264/ffhevc author
Join Date: May 2007
Location: /dev/video0
Posts: 1,844
|
Quote:
Excuse my mistake Last edited by microchip8; 9th May 2014 at 17:21. |
|
12th May 2014, 11:07 | #53 | Link |
Registered User
Join Date: Feb 2008
Location: Finland
Posts: 141
|
Here is my current work with Encoder:
I am doing this as separate dialog atm to debug of my code for it. Atm job's are created manually without SQL fetching and other way it is similar code than in Encoder.cpp will hold. It uses foreach(job c, joblist) and makes dynamic updating to the list. Also I added dynamic combobox to the Status. I will add direct editable options for all values like encoder and outputname. Also since Qt support translations I am doing code that supports program translating. MeXgui will have option to add translating po files to make it native language for user. Edit: Finally got my code to work wiht TreeView. Now the jobs are printed as child also if they belong to group job. Added also by default the colum size is modified as how width is the data in colums. So biggest width rules the treeview colum size. Last edited by Jeroi; 12th May 2014 at 12:21. |
12th May 2014, 23:38 | #54 | Link |
Registered User
Join Date: Feb 2008
Location: Finland
Posts: 141
|
I hade some troubles with the queve that there was no easy method to select a job. I found solution at last to add sql Id and subId to the jobQueve and make those columns hidden. Now I can fetch the id and subId from those colums if I want to make SQL joblist edit or delete and encoder worker methods via sql id's. Methods always deletes stuff from sql joblist first and then see if sql delete worked then only removes job from queve. So I am doing all the way dynamic updating to sql table and reading the table to view the jobqueve. ID's makes sql handling so easy.
|
13th May 2014, 23:10 | #57 | Link |
Registered User
Join Date: Feb 2008
Location: Finland
Posts: 141
|
Compared to MeGUI job handler that has quite bad line handling the MeXgui jobGueue will handle bit differently:
- When using move up, move down the encoder will move whole Job to up or down with all child jobs intact. - Unlike megui moving child jobs are not allowed. Only toplevel Jobs may be moved up down. It does check if your selected line is child then it choses parent and moves it up or down. - By default whole job is deleted. This is because normally you will not delete anything on the Job. How ever I may allow audio line removing if there is more that 1 audio tracks in future. At the moment right control buttons are working. Moving to start threading encoding. First encoding thread is handler that starts child threads that talk with the handler and handler will controll jobQueve signals and slots. Edit: I will drop JobX names and add Jobname box to current meXgui input tab. By default it Fetches job name from from sql but user can spesify what ever jobname they want. Till example: Jobname Naruto10 and jobqueve uses those names as job name. since all jobs have unique id anyway and subId for childs all handling is used with id's anyway. Last edited by Jeroi; 14th May 2014 at 15:00. |
28th May 2014, 02:44 | #58 | Link |
Registered User
Join Date: Jun 2013
Location: Germany
Posts: 44
|
AvxSynth and Vapoursynth didn't work very well on Linux when I was testing them, so working with avs2pipemod on OSX and Linux might be more reliable, and you could use exactly the same plugins on all systems. An automated installation could be done by extracting a pre-configured prefix (including plugins and other things) and then use winetricks to install vcrun6:
Code:
#!/bin/sh mkdir -p "$HOME/.local/share/wineprefixes" && cp -rf avisynth_260_alpha5 "$HOME/.local/share/wineprefixes" && ./winetricks prefix=avisynth_260_alpha5 vcrun6sp6 |
21st January 2022, 16:35 | #59 | Link |
Registered User
Join Date: Feb 2008
Location: Finland
Posts: 141
|
Long time no see
Hi I run softwarer company nowdays and my time has not been in developing this for years.
What should we start change: Avisynth++ What more? I think source can compile to x64 when written working in qt. How ever megui has improved surely lot... |
Thread Tools | Search this Thread |
Display Modes | |
|
|