[Cin] CinGG and ffmpeg 4.4

Andrew Randrianasulu randrianasulu at gmail.com
Mon May 3 05:36:07 CEST 2021


On Sunday, May 2, 2021, Andrew Randrianasulu <randrianasulu at gmail.com>
wrote:

>
>
> On Sunday, May 2, 2021, Andrea paz via Cin <cin at lists.cinelerra-gg.org>
> wrote:
>
>> Hi, regarding the attempt to use ffmpeg-4.4, I realized that from a
>> certain point on the mails became private between Andrew and me and
>> therefore they do not appear in the mailing list. I will report here
>> the content of those mails, but I anticipate that I could not get
>> CinGG to work with ffmpeg-4.4.
>>
>> Me:
>> Excluding patch5 we came close to completing the build. Now the errors
>> are about bdwrite and lv2.
>> Note: in Arch Linux lv2 are located in "usr/lib/lv2".
>> (thanks for the help you're giving me!)
>>
>> Andrew:
>> Oh, this api hiding patch landed (it was reverted for 4.4 releases as
>> far As i know)
>>
>> Try additionally patch Cin with this:
>> https://raw.githubusercontent.com/Randrianasulu/CinelerraGG-
>> slackbuild/master/ffmpeg.git_internal_api.patch
>>
>> And may be
>> https://raw.githubusercontent.com/Randrianasulu/CinelerraGG-
>> slackbuild/master/mainerror_gcc5.diff
>>
>>
>> Me:
>> I am unable to patch the sources. I get the following error:
>>
>>
>> $ patch -p3 ffmpeg.C < ffmpeg.git_internal_api.patch
>> patching file ffmpeg.C
>> Hunk #3 succeeded at 4068 (offset 124 lines).
>> patching file ffmpeg.C
>> Hunk #1 FAILED at 89.
>> 1 out of 1 hunk FAILED -- saving rejects to file ffmpeg.C.rej
>>
>>
>> (the same error exists also when I don't put -pX, or I put p0, p1, etc)
>>
>> The contents of ffmpeg.C.rej are:
>>
>>
>> --- a/cinelerra-5.1/cinelerra/mainerror.h
>> +++ b/cinelerra-5.1/cinelerra/mainerror.h
>> @@ -89,7 +89,7 @@ private:
>>
>>  // format text to error dialog listbox
>>
>> -static inline void eprint1(const char *func, const char *fmt, ...)
>> +static  void eprint1(const char *func, const char *fmt, ...)
>>  {
>>      char err_msg[1024], *cp = err_msg, *ep = cp + sizeof(err_msg)-1;
>>      va_list va;
>>
>>
>> I don't understand; first I patched mainerror.h and it seems OK. Then
>> I patched ffmpeg.C and it gives me the error, but the error seems to
>> refer to mainerror.h and not to ffmpeg.C.
>>
>> I also tried to reverse the order of the patches but the result does not
>> change.
>>
>> I think working on the code is beyond my capabilities and I'm wasting
>> your time unnecessarily.
>>
>>
>> Andrew:
>> Try with git apply?
>>
>>
>> Me:
>> Error, again:
>>
>> $ git apply ffmpeg.git_internal_api.patch
>> error: patch failed: cinelerra-5.1/cinelerra/mainerror.h:89
>> error: cinelerra-5.1/cinelerra/mainerror.h: patch does not apply
>>
>>
>> Andrew:
>> May be this part already change by previous patching? I think i rolled
>> two patches into one at some point.. Try to revert smaller patch
>> first?
>>
>>
>> Me:
>> I've tried the patch revert; I've tried re-downloading all the source
>> and doing new tests. The result is always failure. I should know how
>> to get my hands on the code to find solutions to errors. But since I
>> don't know how to do that I would say I give up. Sorry for all the
>> time wasted. Thank you.
>>
>> Me:
>> I attach the log of an attempt with only the mainerror_gcc5.diff patch
>
>
>
> This will not work, it was at best supposed to go in with patch exposing
> now internal api (hack, we not supposed to do so.. But it was path of least
> resistance for me). I think you can drop this patch for now..
>
>
> I started with a new "git clone" in order to have the system clean.
>> ffmpeg.git_internal_api.patch still doesn't work; probably due to my
>> Arch linux having differences with your Slackware.
>>
>> Trying to replace ffmpeg-4.3 with ffmpeg-4.4 I don't know how to do in
>> a static build. But I guess that's beyond my poor skills as well.
>>
>
>
> Hm, try to move ffmpeg-4.3 from thisrdparty/src part of your Cin tree some
> where, along with corresponding patches. Now put 4.4 xz compressed tarball
> from ffmpeg site at its place, and copy  (with renaming, like 'cp
> ffmpeg.git.patch0 ffmpeg-4.4.patch0') ffmpeg.git* patches to ffmpeg-4.4*
> one by one (do not forgot to modify patch3 and leave out patch 2 and 4, and
> add ffmpeg_internal-api as ffmpeg-4.4.patchC for example. But this last
> step only needed if revert in 4.4 was incomplete.. Try w/o this patch
> first, if build fails in ffmpeg-related Cin source - only then try to put
> it back)
>


And also update configure. Ac:
http://git.cinelerra-gg.org/git/?p=goodguy/cinelerra.git;a=blob;f=cinelerra-5.1/configure.ac;h=ceddac2ac14f1e977375c3adec15b217431e7d26;hb=HEAD

There is entry about ffmpeg-4.3, change it to 4.4, and rerun atutogen.sh

Sorry for not mentioning this earlier

Ps: Natron 2.4.0 is out.. They update their ffmpeg integration, so AV1 and
CineformHD should work there..

https://github.com/NatronGitHub/Natron/releases/tag/v2.4.0

Ps2: for ffmpeg api changes mplayer-dev-end list might be useful as well:
http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/2021-May/thread.html#73993




>
> In theory I can try to connect to your machine via ssh, but i never tried
> this from Android tablet (with termux installed). If you wish to go via
> this route - i think you better to set up separate user for me on your
> machine, and give me login info in private (i use local Internet provider,
> so may be we can even restrict logins to my current ip)
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20210503/075760d0/attachment.htm>


More information about the Cin mailing list