[Cin] test patch for 7.0 ffmpeg
Andrew Randrianasulu
randrianasulu at gmail.com
Wed Nov 20 22:50:24 CET 2024
чт, 21 нояб. 2024 г., 00:47 Terje J. Hanssen <terjejhanssen at gmail.com>:
>
>
>
> 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> <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> <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> <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> <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/ ?
>
on 'make install', yes.
can you visually inspect that patch altered file as intended?
>
>
>
>
>> (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/20241121/6a980c03/attachment-0001.htm>
More information about the Cin
mailing list