Issues compile 2.5.5 or 2.5.6 on arch linux

Started by kitsab, October 07, 2019, 11:13:35 PM

Previous topic - Next topic

kitsab

Hello,

for a special function I need the old CLI interface, so I try to compile version 2.5x or 2.4x on an arch linux vm lxc container.
I loaded the sources from sourceforge,
There are always errors: make main failed

uname -a

Linux share 5.0.21-2-pve #1 SMP PVE 5.0.21-3 (Thu, 05 Sep 2019 13:56:01 +0200) x86_64 GNU/Linux


ffmpeg tells some linking issues ln - command incomplete
I ran into issues with ffmpeg, therefore I found a patch called gst-ffmpeg-0.10.13-gcc-4.7-1.patch

after this I ran into issues with ..avidemux_2.5.5/avidemux/ADM_audiofilter/audiofilter_normalize.cpp

#ifdef __WIN32
#define POW10(x)   pow(10,x)
#elif defined(ADM_BSD_FAMILY)
#define POW10(x) powf(10.0,x)
#else
#define POW10(x)  powf(10,x)                -> I got to modify this line from define POW10(x)  pow10f(x)
#endif


Now I'm in conflict with /usr/local/src/avidemux_2.5.5/avidemux/ADM_coreUI/include/DIA_factory.h

/usr/local/src/avidemux_2.5.5/avidemux/ADM_coreUI/include/DIA_factory.h:229:66: error: default arguments are only permitted for function parameters [-fpermissive]
  229 |          const char *name,int32_t min,int32_t max,const char *tip=NULL);

I found comments about removing "=NULL", I did this and there are further issues ...

I use

bash bootstrip.sh --with-core --with-plugins --with-cli --with-qt4 (also tried --enable-qt5)


I think the required packages are all installed.

I can't imaging building avidemux is such trouble, I think on my side somethings going wrong, but I don't know the reason.

I also moded bootstrap.sh a bit to have only one compile process active and set debug flag for make main step: I changed make -j 3 to  make -j 1 -d

Actually I'm stuck here:

/usr/local/src/avidemux_2.5.5/avidemux/ADM_outputs/oplug_ogm/op_ogsave.cpp: In member function 'uint8_t ADM_ogmWrite::save(const char*)':
/usr/local/src/avidemux_2.5.5/avidemux/ADM_outputs/oplug_ogm/op_ogsave.cpp:166:31: error: call of overloaded 'abs(uint32_t)' is ambiguous
  166 |                 if(abs(j-_togo) <3 && error) error=0; // might be caused by late B frame
      |                                        ^


Thanks for tips or suggestions.

Best regards

Kitsab

eumagga0x2a

Quote from: kitsab on October 07, 2019, 11:13:35 PM
for a special function I need the old CLI interface, so I try to compile version 2.5x or 2.4x on an arch linux vm lxc container.

Could you please specify what you are trying to accomplish? Maybe there is a solution for the problem which doesn't involve resurrecting the dead.

QuoteActually I'm stuck here:

/usr/local/src/avidemux_2.5.5/avidemux/ADM_outputs/oplug_ogm/op_ogsave.cpp: In member function 'uint8_t ADM_ogmWrite::save(const char*)':
/usr/local/src/avidemux_2.5.5/avidemux/ADM_outputs/oplug_ogm/op_ogsave.cpp:166:31: error: call of overloaded 'abs(uint32_t)' is ambiguous
  166 |                 if(abs(j-_togo) <3 && error) error=0; // might be caused by late B frame
      |                                        ^

Probably an explicit cast might help: abs((int)j-(int)_togo)

kitsab

Hello,

I'm using a linux bash script multicut_light.sh to decode and cut recordings downloaded from www.onlinetvrecorder.com, and provided cutlists from cutlist.at.
This tool is based on avidemux 2.4 and 2.5 I thought I could compile such an old version to be able to use the script on my new server. I already read posting that avidemux_cli interface has changed and the script isn't compatible to V2.6 or 2.7.

By the way in the beginning I installed avidemux 2.7 from repository, thsi worked but not with the script.
I failed also trying to compile avidmux 2.7 and 2.6 but this was in the very beginning before I recognized to use bootstarp.sh. I haven't tried this further as 2.6 and 2.7 won't help me to solve the issue with my multicut_light.sh.

https://github.com/Monikae/multicut_light/blob/master/multicut_light.sh

But it seems to be very complicated.

The machine is headless and it's only about this function to automatically cut recordings by commandline.

Thanks and best regards

Kitsab

eumagga0x2a

I guess, the only sustainable solution would be to create a parser for cut lists for ffmpeg for the reason that the latter accepts approximate timing (it automatically seeks to the previous keyframe, Avidemux also does this, but only for the start position because later cuts result from segment layout, which must be exact). It is also important to avoid legacy containers like AVI for incompatible codecs like H.264 and HEVC.