Den 13.11.2024 16:10, skrev Andrew Randrianasulu:


ср, 13 нояб. 2024 г., 17:54 Terje J. Hanssen <terjejhanssen@gmail.com>:



Den 13.11.2024 14:31, skrev Andrew Randrianasulu:


ср, 13 нояб. 2024 г., 15:17 Terje J. Hanssen via Cin <cin@lists.cinelerra-gg.org>:
After finishing the three hevc_qsv presets for _8b420, _10b420 and _10b422 mp4
https://lists.cinelerra-gg.org/pipermail/cin/2024-November/009039.html

I thought to do the corresponding for hevc_vaapi

However I am struggling to get 10bit 422 output rendered from Cingg, which so far falls back to 10bit 420 chroma subsampling

fprobe -hide_banner hd01_hevc_vaapi_10b422.mp4
  Duration: 00:01:11.20, start: 0.000000, bitrate: 11082 kb/s
  Stream #0:0[0x1](und): Video: hevc (Main 10) (hev1 / 0x31766568), yuv420p10le(tv, bt709/unknown/unknown, top coded first (swapped)), 1920x1080 [SAR 1:1 DAR 16:9], 11080 kb/s, 25 fps, 25 tbr, 12800 tbn (default)


In a previous thread I proved that ffmpeg hevc_vaapi encoding has this 10bit-422 capability
3) 10-bit yuv422p10le hevc_vaapi encoding using -vf 'format=y210,hwupload'
https://lists.cinelerra-gg.org/pipermail/cin/2024-November/008982.html


And yes, there was also issues before hevc_qsv_10b422.mp4 combinations Pixel format/profile finally succeeded.
But here are some differences, yet. While hevc_qsv provided a Pixels drop down menu with pixel formats,
hevc_vaapi just has a single "vaapi" pixel format.

Any idea why, and what can fulfill the vaapi 10bit 422 encoding here?


I have some idea (hack add some pixel formats to hevc_vaapi, will only be usable with internal ffmpeg)

Just to clarify: my tests vaapi tests and qsv tests are run on Cingg with the onevpl patch and internal ffmpeg

but for now you can try to modify same place my 10bit encoding patch modified, just with yuv422p10 instead of 420p10.

Exactly how and where?


there should be line (after you patch cingg with 10bit patch) in cinelerra/ffmpeg.C

if (tenbit_enc) frames_ctx->sw_format =  AV_PIX_FMT_P010LE;

you need to replace AV_PX_FMT part...

with AV_PIX_FMT_Y210LE ?

recompile cingg

now when you set 

export CIN_10BIT_ENC=1

before launching cin 

it *may be* will give you y422 10bit encoding for hevc_vaapi.



Yes, but too much. Now it seems like all presets based on nv12, p010le and y210le respectively end up as yuv422p10le format.





sorry, a bit busy with other issues.