[Cin] test patch for 7.0 ffmpeg

Terje J. Hanssen terjejhanssen at gmail.com
Wed Nov 20 22:47:19 CET 2024




Den 20.11.2024 22:31, skrev Andrew Randrianasulu:
>
>
> чт, 21 нояб. 2024 г., 00:27 Terje J. Hanssen <terjejhanssen at gmail.com>:
>
>
>
>
>     Den 20.11.2024 21:38, skrev Andrew Randrianasulu:
>>
>>
>>     ср, 20 нояб. 2024 г., 23:31 Terje J. Hanssen
>>     <terjejhanssen at gmail.com>:
>>
>>
>>
>>
>>         Den 20.11.2024 20:54, skrev Andrew Randrianasulu:
>>>
>>>
>>>         ср, 20 нояб. 2024 г., 22:46 Terje J. Hanssen
>>>         <terjejhanssen at gmail.com>:
>>>
>>>
>>>
>>>
>>>             Den 20.11.2024 16:53, skrev Andrew Randrianasulu:
>>>>
>>>>
>>>>             ср, 20 нояб. 2024 г., 18:26 Terje J. Hanssen
>>>>             <terjejhanssen at gmail.com>:
>>>>
>>>>                 Den 20.11.2024 06:23, skrev Andrew Randrianasulu:
>>>>>                 On Tue, Nov 19, 2024 at 6:59 PM Terje J. Hanssen
>>>>>                 <terjejhanssen at gmail.com> <mailto:terjejhanssen at gmail.com> wrote:
>>>>>>                 Den 19.11.2024 15:08, skrev Andrew Randrianasulu:
>>>>>>
>>>>>>
>>>>>>
>>>>>>                 On Tue, Nov 19, 2024 at 1:56 PM Terje J. Hanssen<terjejhanssen at gmail.com> <mailto:terjejhanssen at gmail.com> wrote:
>>>>>>>                 Den 19.11.2024 14:53, skrev Andrew Randrianasulu:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>                 On Tue, Nov 19, 2024 at 1:28 PM Terje J. Hanssen<terjejhanssen at gmail.com> <mailto:terjejhanssen at gmail.com> wrote:
>>>>>>>>                 Den 19.11.2024 06:58, skrev Andrew Randrianasulu:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>                 вт, 19 нояб. 2024 г., 03:47 Terje J. Hanssen<terjejhanssen at gmail.com> <mailto:terjejhanssen at gmail.com>:
>>>>>>>>>                 Den 18.11.2024 10:52, skrev Andrew Randrianasulu:
>>>>>>>>>
>>>>>>>>>                 It may work or break it completely ...
>>>>>>>>>
>>>>>>>>>                 apply by normal patch command  from inside thirdparty/ffmpeg (may be "cat pathname | patch  -p1", may be "cat  patchname | patch -p0") or edit libavcodec/qsvenc.c by hand.
>>>>>>>>>
>>>>>>>>>                 rebuild ffmpeg, do not do make clean,
>>>>>>>>>                 cd ../../
>>>>>>>>>                   so you again in main directory with ./autogen.sh and bin directory with cinelerra.
>>>>>>>>>
>>>>>>>>>                 touch cinelerra/ffmpeg.C
>>>>>>>>>                 make
>>>>>>>>>
>>>>>>>>>                 Hopefully this rebuild cin so on next start from bin/cin you will have something to test with tff sources.
>>>>>>>>>
>>>>>>>>>                 Unfortunately, netBSD does not support hardware virtualization on AMD cpus, so for now I do not have my virtual machines. I also forgot type of  cable from PSU to disks, so now I can only power up one of two sata drives.
>>>>>>>>>
>>>>>>>>>                 It will be fixed eventually, but for now I hope to live up this netBSD install a bit ...
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                 To prepare for tomorrow, because else I am stuck:
>>>>>>>>>
>>>>>>>>>                 apply by normal patch command  from inside thirdparty/ffmpeg (may be "cat pathname | patch  -p1", may be "cat  patchname | patch -p0") or edit libavcodec/qsvenc.c by hand.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>                 Should here be a patch attached to be able to use "git am patch"?
>>>>>>>>                 I installed Fedora 40 in qemu on NetBSD (thankfully only booting from iso as cdrom was not working on hw virtualization  - 4*3.9 {amd fx4300 } Ghz was barely enough for gnome-based (?) installer to just show up) so hopefully there will be!
>>>>>>>>
>>>>>>>>
>>>>>>>>>                 cd /Cin/thirdparty/ffmpeg-7.0 ?
>>>>>>>>>
>>>>>>>>>                 may be "cat pathname | patch  -p1", may be "cat  patchname | patch -p0" ?
>>>>>>>>>
>>>>>>>>>                 or edit libavcodec/qsvenc.c by hand. - possibly what to edit there?
>>>>>>>>>
>>>>>>>>>                 cd ../../
>>>>>>>>>                 localhost:/Cin #
>>>>>>>>                 When possible, I need more explanation to my questions above ..,
>>>>>>>                 ?  If you are not comfortable applying it by hand to internal ffmpeg I'll prepare normal git am patch, just wait a bit, ok?
>>>>>>>
>>>>>>>
>>>>>>>                 Yes, fine and ok. But I didn't even understand what and how to edit libavcodec/qsvenc.c by hand above ;)
>>>>>>                 Normally you just delete lines marked with "-" at very beginning, and replace them with lines marked with "+" sign in patch. Line numbers and line endings extremely important for patch, so sometimes 'innocent' patch editing resulted in no-working patch :(
>>>>>>
>>>>>>                 for simple patches you can just edit file they normally modify by doing patch's work.
>>>>>>
>>>>>>
>>>>>>                 Yet, I prefer to wait for the  normal git am patch ;)
>>>>>                 try attached ?
>>>>
>>>>                 Thanks for the patch, but unhappily no success so
>>>>                 far. Still the same errors.
>>>>
>>>>                 In case I did something wrong, I have preserved my
>>>>                 steps as follow for verification:
>>>>
>>>>                 # cd /Cin/thirdparty/ffmpeg-7.0
>>>>
>>>>                 # git am
>>>>                 0001-experimental-add-qsv-field-info-to-qsv-encoder-in-ff.patch
>>>>                 Applying: experimental: add qsv field info to qsv
>>>>                 encoder in ffmpeg
>>>>
>>>>                 # cd ../..
>>>>
>>>>                 # /Cin
>>>>
>>>>                 # touch cinelerra/ffmpeg.C
>>>>
>>>>                 # make
>>>>
>>>>                 (no additonal "make install" step mentioned!?)
>>>>
>>>>
>>>>             well, just remaking cinelerra put resulting binary in
>>>>             bin, and plugins and stuff should already be there from
>>>>             previous build.
>>>>
>>>>             BUT in this case we need to rebuild ffmpeg itself, not
>>>>             just our interface to it.
>>>>
>>>>             rm -rf thirdparty/ffmpeg-7.0
>>>>
>>>>             rm thirdparty/build/ffmpeg.*
>>>>
>>>>             make
>>>
>>>             /Cin/bin/cin
>>>             with a new render test here, got the same qsv errors.
>>>
>>>>
>>>>             or you can do full rebuild just in case, but do not
>>>>             forgot to save profiles you  worked on for so many days ...
>>>
>>>             Additional "make install" step and another render test
>>>             had the same qsv errors.
>>>             I checked that my presets in /Cin/bin/ffmpeg/video were
>>>             not overwritten. Should they?
>>>
>>>             Or did you mean something else with a "full rebuild" ?
>>>
>>>
>>>         by full rebuild i mean running
>>>
>>>         make clean
>>>
>>>         ./autogen.sh
>>>
>>>         ./configure with switches for single user and libvpl
>>>
>>>         make
>>>
>>>         make install.
>>>
>>>         by partial rebuild i mean
>>>
>>>         rm thirdparty/build/ffmpeg.* - files indicating that was
>>>         already built
>>>
>>>         rm -rf thirdparty/ffmpeg-7.0
>>>
>>>         so on next top level make it will unpack and patch ffmpeg
>>>         sources anew, build .a static libraries, and only then you do
>>>
>>>         touch cinelerra/ffmpeg.C
>>>
>>>         make
>>>
>>>         so cinelerra herself rebuilt with updated ffmpeg libraries.
>>>
>>>         depend on how cpu power you have. I often do partial rebuild
>>>         because I use qemu-based virtual machines with limited
>>>         number of vCPUs assigned to them, or build on my android tablet.
>>
>>
>>         Yes I see. Surely smart and effective to do partial rebuild
>>         whenever possible.
>>         But in this case as I didn't get "it" to work, it is no
>>         problem try a full rebuild lastly on my local ws w/i7-12700KF.
>>
>>         My noticed steps last time I rebuild this Cingg were:
>>         ---------------
>>         # /Cin
>>         # make clean
>>         #  ./configure --with-single-user --with-onevpl
>>         # make
>>         # make install
>>
>
>     Hm. Still no success with regards to the qsv rendering errors:
>
>     [av1_qsv @ 0x7f61b4d67c00] Current picture structure is unsupported
>
>>         copied back my setup profiles from backup to bin/ffmpeg/video
>>
>
>     No need. I had expected that my setup profiles were deleted now,
>     but not. They looked to have outlived the full rebuild!
>     Should they really?
>
>
> no, "make clean" deletes bin folder and everything there...
>
> unless you  put them in ffmpeg (not bin/ffmpeg)

I had also saved a backup in ./ffmpeg/video/

Therefore they were copied automatic back to ./bin/ffmpeg/video/ ?

>
>
>
>
>     (another thing as CPU was mentioned. I had top running beside
>     running make and noticed CPU was on just 100%
>     That seemingly tells that make uses only a single core, not
>     multi-core  utilization like BD rendering used)
>
>
>
> normally buildsystem  makes good use of all cores .. some things like 
> x265 build not really parallel for now but they take relatively small 
> portion of time.
>
>
>
>>         ------------
>>
>>         What about patches in this new case, are they already taken
>>         care of without extra steps?
>>
>>
>>     hopefully yes, as I tried to build with my patch and it was
>>     building w/o error so I made it into git am-compatible patch and
>>     you applied that already.
>>
>>
>>         Will it still be need to start Cinelerra with
>>
>>         CIN_10BIT_ENC=p010le bin/cin
>>
>>         to get 10bit vaapi?
>>
>>
>>
>>     no, previous patch should take care of this, no need to use this
>>     variable anymore .
>>
>>
>>
>>
>>>
>>>
>>>
>>>
>>>>
>>>>
>>>>
>>>>                 # bin/cin
>>>>                 Loaded a tff hdv.m2t file
>>>>
>>>>                 Attempt to render with preset av1_qsv_8b420.mp4
>>>>
>>>>                     # av1_qsv_8b420
>>>>                     # usable with Pixels: nv12
>>>>                     profile=main
>>>>                     # global_quality=25
>>>>
>>>>                 failed with the previous output error:
>>>>
>>>>                 [av1_qsv @ 0x7fc850e4f280] Current picture
>>>>                 structure is unsupported
>>>>                 [av1_qsv @ 0x7fc850e4f280] some encoding parameters
>>>>                 are not supported by the QSV runtime. Please double
>>>>                 check the input parameters.
>>>>                 FFMPEG::open_encoder  err: Function not implemented
>>>>                 int FFMPEG::open_encoder(const char*, const char*):
>>>>                 open failed
>>>>                 av1_qsv:/Videoklipp/QSV/hdv09_04_av1_qsv.mp4
>>>>                 Render::render_single: Session finished.
>>>>
>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cinelerra-gg.org/pipermail/cin/attachments/20241120/d2418c42/attachment-0001.htm>


More information about the Cin mailing list