[Cin] test patch for 7.0 ffmpeg

Terje J. Hanssen terjejhanssen at gmail.com
Wed Nov 20 22:27:03 CET 2024




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?

(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)


>     ------------
>
>     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/5f39eab8/attachment-0001.htm>


More information about the Cin mailing list