Avidemux Forum

Avidemux => Main version 2.6 => Topic started by: ClemD on June 17, 2013, 01:46:57 PM

Title: Source code
Post by: ClemD on June 17, 2013, 01:46:57 PM
Hi there,

I'm currently beginning an internship in which my job is to find and/or create a video editing software. First task is, while reading a video, to manually add markers (e.g. from 0:00 to 0:12 : 1st category, then from 0:15 to 1:25 : 2nd category, then  from 1:25 to 1:30 : 1st category again, etc), in order to cut the video and then merge the pieces by categories.

Of course I'm not asking you to do my job ; only thing is where can I find the last stable version source code for windows ?
And is it already possible to do the job with avidemux ?

Looking forward to hearing from you ! :)

All the best,

ClemD
Title: Re: Source code
Post by: Jan Gruuthuse on June 17, 2013, 03:10:25 PM
http://www.avidemux.org/admWiki/doku.php?id=build:compiling_avidemux
Title: Re: Source code
Post by: ClemD on June 18, 2013, 08:14:34 AM
Thanks !

I'll probably get stuck sooner or later, get ready to see me again ;)
Title: Re: Source code
Post by: Jan Gruuthuse on June 18, 2013, 09:38:05 AM
just remember: I'm only daily avidemux user, not one of the developers.
Title: Re: Source code
Post by: ClemD on June 19, 2013, 09:57:20 AM
Quote from: Jan Gruuthuse on June 18, 2013, 09:38:05 AM
just remember: I'm only daily avidemux user, not one of the developers.

Oh, ok.

Is there any developer on this forum ? If none, where is it possible to contact them ?

Thanks for your help :)

EDIT : mean (http://www.avidemux.org/smf/index.php?action=profile;u=3) is one, isn't he ? I found his nickname in the source code.
Title: Re: Source code
Post by: Jan Gruuthuse on June 19, 2013, 10:24:49 AM
posting in this forum is best way for questions/contact.
Title: Re: Source code
Post by: ClemD on June 19, 2013, 10:36:20 AM
Ok, thanks :)

I didn't really do what was advocated in your link, partly because I found it was quite uneasy to do so, and partly because the final goal was to obtain an executable, which was not what I wanted (perhaps was I wrong ?).

Instead, I downloaded the source code of the 2.6.4 version (thanks to your link), using 7-zip to extract and Code::Blocks to read it.

I also installed avidemux to see how it works for user.

What I'm looking for now is where is the code about cutting a video ? There's something about markers I believe when doing so, I'd like to study what has been done so far.

I forgot to mention I'm a newbie, I only know basic c++ and principles of object-oriented programming.
Title: Re: Source code
Post by: ClemD on June 20, 2013, 08:59:27 AM
Quote from: ClemD on June 19, 2013, 10:36:20 AM
What I'm looking for now is where is the code about cutting a video ? There's something about markers I believe when doing so, I'd like to study what has been done so far.

Ok, so here is what I found out so far :

- markers A and B are attributes of the class ADM_Composer which is defined in the avidemux\common\ADM_editor\include\ADM_edit.h file

- getters and setters relative to these markers are detailled in avidemux\common\ADM_editor\src\ADM_edMarker.cpp file.

Now my question is : in which files are they used ?
Title: Re: Source code
Post by: ClemD on June 25, 2013, 02:37:59 PM
Hi there again,

I'd like to know how and/or in which files are the pics in avidemux\common\ADM_icons connected to the source code.

Did a research with the "markA.png" (and "markA" only) button but didn't find anything. Did another one with "pics" but didn't find a script to convert all icons names.

Hope I'll get a response from developpers this time ! Thanks
Title: Re: Source code
Post by: mit on June 26, 2013, 05:55:47 AM
I think files you needed are in:
avidemux/qt4/ for Qt interface and avidemux/gtk for GTK interface and relevant sub-directories.
But as i see your questions, i recommended to you, to leave this job and switch to playing games or something like.....  ;D
Title: Re: Source code
Post by: ClemD on June 26, 2013, 07:21:07 AM
Quote from: mit on June 26, 2013, 05:55:47 AM
I think files you needed are in:
avidemux/qt4/ for Qt interface and avidemux/gtk for GTK interface and relevant sub-directories.

Thank you :)

But there are still many files in avidemux/qt4/ and avidemux/gtk, do you more precisely where what I'm looking for may be ?

Quote
But as i see your questions, i recommended to you, to leave this job and switch to playing games or something like.....  ;D

;D

Well, that's not possible ;)

I'm actually a student and I have to do an internship. I've never worked as developper on a software as sophisticated as this one (and that's why I'm calling myself a newbie ;)), but I see this internship as an opportunity for me to improve myself in developping =)

As I'm a newbie, I'd like to start from avidemux and to modify it the way my boss wants.
The company I'm working in is not about computing, so I have to work alone. That's why I'm looking for some help here, sometimes ;)

PS : English isn't my native language so I may be unclear and do mistakes. Please apology and don't hesitate to ask me to say it another way ;)
Title: Re: Source code
Post by: mit on June 26, 2013, 09:06:26 AM
Quote from: ClemD on June 26, 2013, 07:21:07 AM
...
PS : English isn't my native language so I may be unclear and do mistakes. Please apology and don't hesitate to ask me to say it another way ;)
A ha ha ha...,that's my biggest problem.Furthermore i've never learned English, so more bad.  :-[
I'm also not developer.I think Avidemux is good, but too big for your project.Why don't look for anything more simple as TSMuxer (http://www.deb-multimedia.org/pool/main/t/tsmuxergui/tsmuxergui_1.9.9.orig.tar.gz) (archive can be extracted with 7zip) for example.

P.S.: By the way, i appreciated you perceive my jokes.
Title: Re: Source code
Post by: ClemD on June 26, 2013, 09:50:57 AM
Quote from: mit on June 26, 2013, 09:06:26 AM
Quote from: ClemD on June 26, 2013, 07:21:07 AM
...
PS : English isn't my native language so I may be unclear and do mistakes. Please apology and don't hesitate to ask me to say it another way ;)
A ha ha ha...,that's my biggest problem.Furthermore i've never learned English, so more bad.  :-[

I can speak French too ;)

Quote
I think Avidemux is good, but too big for your project.Why don't look for anything more simple as TSMuxer (http://www.deb-multimedia.org/pool/main/t/tsmuxergui/tsmuxergui_1.9.9.orig.tar.gz) (archive can be extracted with 7zip) for example.

Well, the idea was to have a software that can do many jobs, and some of them avidemux already does :)

Furthermore, what I wanted to do was not to understand the whole software, but only the parts that could help me (actually I'm trying to understand what happens when users click on the mark A button, from the event to the modification of the attribute markerAPts). And I don't think that this is too big :)


Quote
P.S.: By the way, i appreciated you perceive my jokes.

Glad to read that :)
Title: Re: Source code
Post by: mit on June 26, 2013, 10:31:45 AM
More of icons in avidemux/common/ADM_icons are for GTK interface.Perhaps Glade (http://ftp.gnome.org/pub/GNOME/binaries/win32/glade/3.14/glade-3-14-2-installer.exe) (tool for development of user interfaces for the GTK+), may help you to find more easy what you heed.
Оtherwise see in avidemux/gtk/ADM_UIs/src/gtkmarkscale.c  whether will you help!
Title: Re: Source code
Post by: ClemD on June 26, 2013, 11:55:47 AM
Quote from: mit on June 26, 2013, 10:31:45 AM
Оtherwise see in avidemux/gtk/ADM_UIs/src/gtkmarkscale.c  whether will you help!

Thank you for your help :D

It seems getmarkscale is more about navigating on the reading bar and jumping to markers, which is quite interesting for me but not for the moment (I'd like to begin by adding two buttons that do the same as current markers A et B). Am I wrong ? :)

I'd really appreciate if a developer (mean ?) could help me =)

mit, you told me you weren't a developer, but it seems you're not a complete newbie, are you ? ;)
Title: Re: Source code
Post by: mean on June 26, 2013, 05:33:02 PM
you need to modify the gui ressource file
the gui2.ui for Qt4
and the similar one for gtk (cant remember the name)
and then hook the button to a new ACT_xxx

You will end up in the main loop with ACT_xxx when the button is pressed
Title: Re: Source code
Post by: ClemD on June 27, 2013, 07:05:38 AM
Quote from: mean on June 26, 2013, 05:33:02 PM
you need to modify the gui ressource file
the gui2.ui for Qt4
and the similar one for gtk (cant remember the name)
and then hook the button to a new ACT_xxx

You will end up in the main loop with ACT_xxx when the button is pressed

Thank you very much ! :D

I'll see what I can do with your help :)

I'll surely come back sooner or later ;)
Title: Re: Source code
Post by: ClemD on June 27, 2013, 01:03:05 PM
Quote
the gui2.ui for Qt4
and the similar one for gtk (cant remember the name)

GUI_bindings ? GUI_menumap ? :)

Quote from: mean on June 26, 2013, 05:33:02 PM
you need to modify the gui ressource file

Well in fact, before modifying anything, I'd like to make a sequence diagram in which appear :
- what happens, when a user launches avidemux, in order to display the markA button
- what happens, when a user clicks on the markA button.

That way, I think I would obtain a clear path of all the files I need to modify, and it will be even easier to do so.

What I'm still missing is : how and where is the  "clicking on the mark A button" event handled ?
I saw there are files like translation_table.h that could link a signal "clicked" to an object (like toolButtonSetMarkerA), or GUI_bindings.cpp in which we could connect a button (bt) to a signal "clicked" and to a specific action (for instance ACT_MarkA), etc.

But it's still quite fuzzy for me to see what "linked" or "connected" exactly implies.

It's pretty much the same problem with the button displaying : I looked into gui2.ui, found where the QToolButton is defined, with some properties about it (its icon, its size, its ability to autoraise, etc), but where is it say that the software has to display it ?

By the way, I found a CMakeLists.txt file which refers to gui2.ui, is it the file I'm looking for ?

Thank you :)
Title: Re: Source code
Post by: ClemD on July 01, 2013, 11:07:20 AM
Another question : why is everything "doubled" between qt4 and gtk ? :)

Was it a question of compatibility ? Wasn't it possible to code things once ? :)
Title: Re: Source code
Post by: mean on July 02, 2013, 09:02:50 AM
80% of the code is common between the 2
Only the UI is different
Originally, avidemux was gtk, later on the engine was cut from the UI
Qt4 is better suited for windows/mac/...

So basically do what you need to do with the Qt4 flavor, and make sure the Gtk one still compiles
Title: Re: Source code
Post by: ClemD on July 02, 2013, 09:07:01 AM
Quote from: mean on July 02, 2013, 09:02:50 AM
80% of the code is common between the 2
Only the UI is different
Originally, avidemux was gtk, later on the engine was cut from the UI
Qt4 is better suited for windows/mac/...

So basically do what you need to do with the Qt4 flavor, and make sure the Gtk one still compiles

Thank you very much again :D

As the company in which I'm doing my internship only works on windows, I guess I won't touch the gtk part and will only modify the qt4 one.

Thanks ! I got quite confused with that matter ;)