[Cin] test patch for 7.0 ffmpeg

Terje J. Hanssen terjejhanssen at gmail.com
Wed Nov 20 21:31:28 CET 2024




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
copied back my setup profiles from backup to bin/ffmpeg/video
------------

What about patches in this new case, are they already taken care of 
without extra steps?

Will it still be need to start Cinelerra with

CIN_10BIT_ENC=p010le bin/cin

to get 10bit vaapi?



>
>
>
>
>>
>>
>>
>>         # 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/94340e5a/attachment-0001.htm>


More information about the Cin mailing list