Giter Club home page Giter Club logo

Comments (33)

pesintta avatar pesintta commented on June 19, 2024

Some more info is needed:

  • What CPU model is being used (haswell, skylake, cherrytrail etc.) or output of vainfo command?
  • I suspect the issue is with hw accelerated 10bit color depth. Does the issue occur with 8-bit UHD samples?
  • Any other info, log messages etc. you can provide that would help?

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024
System:    Host: acer533 Kernel: 4.15.7-041507-generic x86_64 bits: 64 Console: tty 1
           Distro: Ubuntu Bionic Beaver (development branch)
Machine:   Device: laptop System: Acer product: Aspire ES1-533 v: V1.12 serial: NXGFTEG046708XXXXX
           Mobo: Acer model: Stego_AP v: V1.12 serial: XXXXXXXXXXXXXXXXXX
           UEFI: Insyde v: V1.12 date: 10/18/2017
Battery    BAT1: charge: 37.2 Wh 100.0% condition: 37.2/37.3 Wh (100%)
CPU:       Quad core Intel Pentium N4200 (-MCP-) speed/max: 895/2500 MHz
Graphics:  Card: Intel Celeron N3350/Pentium N4200/Atom E3900 Series Integrated Graphics Controller
           Display Server: X.Org 1.19.6 driver: i915 Resolution: [email protected]
           OpenGL: renderer: Mesa DRI Intel HD Graphics 505 (Broxton) version: 4.5 Mesa 18.0.0-rc4
Network:   Card-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller driver: r8169
           Card-2: Intel Device 24fb driver: iwlwifi
Drives:    HDD Total Size: 256.1GB (11.2% used)
Info:      Processes: 254 Uptime: 1 day Memory: 2452.9/7800.8MB Client: Shell (bash) inxi: 2.3.56

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu Bionic Beaver (development branch)"

ffmpeg-3.5~git20180113

libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_0
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.1 (libva 2.1.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Broxton - 2.0.0
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSliceLP
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointEncSliceLP
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointEncSliceLP
      VAProfileH264MultiviewHigh      :	VAEntrypointVLD
      VAProfileH264MultiviewHigh      :	VAEntrypointEncSlice
      VAProfileH264StereoHigh         :	VAEntrypointVLD
      VAProfileH264StereoHigh         :	VAEntrypointEncSlice
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointEncPicture
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointEncSlice
      VAProfileHEVCMain10             :	VAEntrypointVLD

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

the log of the UHD Demo Channel at 19.2 East
http://paste.ubuntu.com/p/MpBPN3BPBj/

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

could commit 19e1101 do any harm here?

from vdr-plugin-vaapidevice.

pesintta avatar pesintta commented on June 19, 2024

I don't think so but you may do git revert <commit-hash> and comile the plugin to verify.

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

you are right

from vdr-plugin-vaapidevice.

pesintta avatar pesintta commented on June 19, 2024

Is the bit-depth of the affected video 10bit or 8bit?

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024
Input #0, mpegts, from '00001.ts':
  Duration: 00:02:10.79, start: 5865.806067, bitrate: 3715 kb/s
  Program 132 
    Stream #0:0[0x1ff]: Video: hevc (Main 10) ([36][0][0][0] / 0x0024), yuv420p10le(tv, bt2020nc/bt2020/arib-std-b67), 3840x2160 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x200](deu): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 177 kb/s

it's 10Bit, this one is from SES Astra Demo 19.2 East
there is no 8bit channel on SAT anymore, some have HGL/HDR some not and some are 50Hz and others 60Hz

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

the only 8Bit HEVC Main Profile channels I know are the German DVB-T2, which are working with the current git

from vdr-plugin-vaapidevice.

pesintta avatar pesintta commented on June 19, 2024

Ok so the issue most likely is about hw-rendering 10bit video.

Could you test the following very experimental patch? It will probably break something else but unfortunately I don't have the hardware to test this change.

diff --git a/video.c b/video.c
index c2252fa..30ba6d9 100644
--- a/video.c
+++ b/video.c
@@ -973,7 +973,7 @@ static void VaapiDeassociate(VaapiDecoder * decoder)
 ///
 static void VaapiCreateSurfaces(VaapiDecoder * decoder, int width, int height)
 {
-    if (vaCreateSurfaces(decoder->VaDisplay, VA_RT_FORMAT_YUV420, width, height, decoder->PostProcSurfacesRb,
+    if (vaCreateSurfaces(decoder->VaDisplay, VA_RT_FORMAT_YUV420_10BPP, width, height, decoder->PostProcSurfacesRb,
            POSTPROC_SURFACES_MAX, NULL, 0) != VA_STATUS_SUCCESS) {
        Fatal("video/vaapi: can't create %d postproc surfaces", POSTPROC_SURFACES_MAX);
     }
@@ -1509,6 +1509,8 @@ static int VaapiFindImageFormat(VaapiDecoder * decoder, enum AVPixelFormat pix_f
            fourcc = VA_FOURCC_I420;    // aka. VA_FOURCC_IYUV
            break;
        case AV_PIX_FMT_VAAPI:
+           fourcc = VA_FOURCC_P010;
+           break;
        case AV_PIX_FMT_NV12:
            fourcc = VA_FOURCC_NV12;
            break;
@@ -1519,8 +1521,7 @@ static int VaapiFindImageFormat(VaapiDecoder * decoder, enum AVPixelFormat pix_f
            fourcc = VA_FOURCC_RGBX;
            break;
        case AV_PIX_FMT_YUV420P10LE:
-           //fourcc = VA_FOURCC_P010;
-           fourcc = VA_FOURCC_NV12;    // FIXME: Do P010 on supported hardware
+           fourcc = VA_FOURCC_P010;
            break;
        default:
            Fatal("video/vaapi: unsupported pixel format %d (%s)", pix_fmt, av_get_pix_fmt_name(pix_fmt));
@@ -2063,7 +2064,7 @@ static uint8_t *VaapiGrabOutputSurface(int *ret_size, int *ret_width, int *ret_h
     *ret_size = *ret_width * *ret_height * 4;

     status =
-       vaCreateSurfaces(decoder->VaDisplay, VA_RT_FORMAT_YUV420, *ret_width, *ret_height, scaled, ARRAY_ELEMS(scaled),
+       vaCreateSurfaces(decoder->VaDisplay, VA_RT_FORMAT_YUV420_10BPP, *ret_width, *ret_height, scaled, ARRAY_ELEMS(scaled),
        NULL, 0);
     if (status != VA_STATUS_SUCCESS) {
        Error("video/vaapi: can't create scaling surface for grab: %s", vaErrorStr(status));
@@ -3076,7 +3077,7 @@ static void VaapiBlackSurface(VaapiDecoder * decoder)
        unsigned u;

        status =
-           vaCreateSurfaces(decoder->VaDisplay, VA_RT_FORMAT_YUV420, VideoWindowWidth, VideoWindowHeight,
+           vaCreateSurfaces(decoder->VaDisplay, VA_RT_FORMAT_YUV420_10BPP, VideoWindowWidth, VideoWindowHeight,
            &decoder->BlackSurface, 1, NULL, 0);
        if (status != VA_STATUS_SUCCESS) {
            Error("video/vaapi: can't create a surface: %s", vaErrorStr(status));

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

did test it but it gives only a green screen on all channels SD,HD,UHD 8Bit/10Bit
http://paste.ubuntu.com/p/4wZVXDbrkP/

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

how is the right profile selected HEVCMain or HEVCMain10
could some additional debug statements help

from vdr-plugin-vaapidevice.

pesintta avatar pesintta commented on June 19, 2024

Profile selection is handled by ffmpeg. See here: https://github.com/FFmpeg/FFmpeg/blob/release/3.4/libavcodec/vaapi_decode.c#L314-L333

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

can we enable the debug like in https://www.ffmpeg.org/doxygen/2.7/demuxing_decoding_8c-example.html to see whats going on

./demuxing-decoding /srv/vdr/video/\@Astra_Ultra_HD_Demo/2018-03-04.22.51.3-0.rec/00001.ts  1  2
[mpegts @ 0x5591331bd940] PES packet size mismatch
Input #0, mpegts, from '/srv/vdr/video/@Astra_Ultra_HD_Demo/2018-03-04.22.51.3-0.rec/00001.ts':
  Duration: 00:02:10.79, start: 5865.806067, bitrate: 3715 kb/s
  Program 132 
    Stream #0:0[0x1ff]: Video: hevc (Main 10) ([36][0][0][0] / 0x0024), yuv420p10le(tv, bt2020nc/bt2020/arib-std-b67), 3840x2160 [SAR 1:1 DAR 16:9], 50 fps, 50 tbr, 90k tbn, 50 tbc
    Stream #0:1[0x200](deu): Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 192 kb/s
Demuxing video from file '/srv/vdr/video/@Astra_Ultra_HD_Demo/2018-03-04.22.51.3-0.rec/00001.ts' into '1'
Demuxing audio from file '/srv/vdr/video/@Astra_Ultra_HD_Demo/2018-03-04.22.51.3-0.rec/00001.ts' into '2'
[aac @ 0x5591331c34c0] channel element 0.0 is not allocated
Error decoding audio frame (Invalid data found when processing input)
audio_frame n:0 nb_samples:1024 pts:10998.4
audio_frame n:1 nb_samples:1024 pts:10998.5
video_frame n:0 coded_n:0 pts:1.05601e+07
video_frame n:1 coded_n:0 pts:1.05602e+07
video_frame n:2 coded_n:0 pts:1.05602e+07
video_frame n:3 coded_n:0 pts:1.05603e+07
audio_frame n:2 nb_samples:1024 pts:10998.5
audio_frame n:3 nb_samples:1024 pts:10998.5
audio_frame n:4 nb_samples:1024 pts:10998.5
video_frame n:4 coded_n:0 pts:1.05603e+07
video_frame n:5 coded_n:0 pts:1.05603e+07
video_frame n:6 coded_n:0 pts:1.05604e+07
audio_frame n:5 nb_samples:1024 pts:10998.6
audio_frame n:6 nb_samples:1024 pts:10998.6
audio_frame n:7 nb_samples:1024 pts:10998.7
video_frame n:7 coded_n:0 pts:1.05604e+07
video_frame n:8 coded_n:0 pts:1.05604e+07
video_frame n:9 coded_n:0 pts:1.05605e+07
audio_frame n:8 nb_samples:1024 pts:10998.7
audio_frame n:9 nb_samples:1024 pts:10998.7
audio_frame n:10 nb_samples:1024 pts:10998.8
video_frame n:10 coded_n:0 pts:1.05605e+07
video_frame n:11 coded_n:0 pts:1.05605e+07
video_frame n:12 coded_n:0 pts:1.05606e+07
audio_frame n:11 nb_samples:1024 pts:10998.8
audio_frame n:12 nb_samples:1024 pts:10998.9
audio_frame n:13 nb_samples:1024 pts:10998.9
video_frame n:13 coded_n:0 pts:1.05606e+07
video_frame n:14 coded_n:0 pts:1.05606e+07
video_frame n:15 coded_n:0 pts:1.05607e+07
audio_frame n:14 nb_samples:1024 pts:10998.9
audio_frame n:15 nb_samples:1024 pts:10999
audio_frame n:16 nb_samples:1024 pts:1099

from vdr-plugin-vaapidevice.

rofafor avatar rofafor commented on June 19, 2024

You shoud be able to enable libva+ffmpeg output by issuing the following command: svdrpsend plug vaapidevice trac 0x1F00 Hint: take a look at the misc.h for other logging contexts.

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

@rofafor this was what I'm looking for, thank's
@pesintta
here are a detailed log on Astra UHD Demo, I hope the info is sufficient to identify the issue
http://paste.ubuntu.com/p/QJK7xR6JqT/

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

this fix the general UHD issue here, but make the other filters unsuable

--- video.c.orig	2018-03-12 00:57:22.895635975 +0100
+++ video.c	2018-03-12 01:03:25.357921081 +0100
@@ -1777,12 +1777,10 @@
     for (unsigned int i = 0; i < decoder->filter_n; ++i) {
 
 	/* Skip deinterlacer if disabled or source is not interlaced */
-	if (decoder->filters[i] == *decoder->vpp_deinterlace_buf) {
 	    if (!decoder->Interlaced)
 		continue;
 	    if (deinterlace->algorithm == VAProcDeinterlacingNone)
 		continue;
-	}
 
 	/* Skip denoise if value is set to 0 ("off") */
 	if (decoder->vpp_denoise_buf && decoder->filters[i] == *decoder->vpp_denoise_buf) {

from vdr-plugin-vaapidevice.

pesintta avatar pesintta commented on June 19, 2024

I pushed quite a big refactoring to master that may have an effect on this issue. Could you check/verify if this got resolved?

Also other testing is needed especially with various postprocessing filter combinations to make sure everything works as expected.

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

unfortunatly it's still the same issue, but switching channels HD,SD are fine

compiles with 2 new warnings

Wdeclaration-after-statement -Wno-unused-parameter -std=c99   -c -o video.o video.c
video.c: In function ‘VaapiApplyFilters’:
video.c:1784:5: warning: ‘memset’ used with length equal to number of elements without multiplication by element size [-Wmemset-elt-size]
     memset(filters_to_run, VA_INVALID_ID, ARRAY_ELEMS(filters_to_run));
     ^~~~~~
video.c:1811:5: warning: ‘memset’ used with length equal to number of elements without multiplication by element size [-Wmemset-elt-size]
     memset(filters_to_run, VA_INVALID_ID, ARRAY_ELEMS(filters_to_run));
     ^~~~~~

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

if I comment this line out UHD is working

--- video.c.orig	2018-03-12 22:36:15.936033486 +0100
+++ video.c	2018-03-12 22:36:28.928104982 +0100
@@ -2408,7 +2408,7 @@
 		    vaCreateBuffer(decoder->VaDisplay, decoder->vpp_ctx, VAProcFilterParameterBufferType,
 		    sizeof(deinterlace), 1, &deinterlace, &filter_buf_id);
 		decoder->vpp_deinterlace_buf = &decoder->filters[decoder->filter_n];
-		decoder->filters[decoder->filter_n++] = filter_buf_id;
+//???		decoder->filters[decoder->filter_n++] = filter_buf_id;
 		break;
 	    case VAProcFilterSharpening:
 		Info("video/vaapi: sharpening supported");

from vdr-plugin-vaapidevice.

pesintta avatar pesintta commented on June 19, 2024

Can you post your setup.conf (lines starting with vaapidevice)?

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

still no success with the commits from today
here are the settings

vaapidevice.1080i.CutTopBottom = 0
vaapidevice.1080i.Deinterlace = 0
vaapidevice.1080i.Denoise = 0
vaapidevice.1080i.Scaling = 0
vaapidevice.1080i.Sharpen = 0
vaapidevice.1080i_fake.CutLeftRight = 0
vaapidevice.1080i_fake.CutTopBottom = 0
vaapidevice.1080i_fake.Deinterlace = 0
vaapidevice.1080i_fake.Denoise = 0
vaapidevice.1080i_fake.Scaling = 0
vaapidevice.1080i_fake.Sharpen = 0
vaapidevice.576i.CutLeftRight = 0
vaapidevice.576i.CutTopBottom = 0
vaapidevice.576i.Deinterlace = 3
vaapidevice.576i.Denoise = 0
vaapidevice.576i.Scaling = 2
vaapidevice.576i.Sharpen = 0
vaapidevice.60HzMode = 1
vaapidevice.720p.CutLeftRight = 0
vaapidevice.720p.CutTopBottom = 0
vaapidevice.720p.Deinterlace = 0
vaapidevice.720p.Denoise = 0
vaapidevice.720p.Scaling = 2
vaapidevice.720p.Sharpen = 0
vaapidevice.AudioBufferTime = 0
vaapidevice.AudioCompression = 0
vaapidevice.AudioDelay = 70
vaapidevice.AudioDownmix = 1
vaapidevice.AudioDrift = 0
vaapidevice.AudioMaxCompression = 0
vaapidevice.AudioMaxNormalize = 0
vaapidevice.AudioNormalize = 0
vaapidevice.AudioPassthrough = 0
vaapidevice.AudioSoftvol = 0
vaapidevice.AudioStereoDescent = 0
vaapidevice.AutoCrop.Delay = 3
vaapidevice.AutoCrop.Interval = 3
vaapidevice.AutoCrop.Tolerance = 1
vaapidevice.Background = 0
vaapidevice.Brightness = 0
vaapidevice.ClearOnSwitch = 1
vaapidevice.Contrast = 1
vaapidevice.DetachFromMainMenu = 0
vaapidevice.HideMainMenuEntry = 0
vaapidevice.Hue = 0
vaapidevice.MakePrimary = 0
vaapidevice.Osd.Height = 0
vaapidevice.Osd.Width = 0
vaapidevice.Saturation = 1
vaapidevice.SkinToneEnhancement = 0
vaapidevice.SoftStartSync = 0
vaapidevice.StudioLevels = 0
vaapidevice.Suspend.Close = 0
vaapidevice.Suspend.X11 = 0
vaapidevice.UHD.CutLeftRight = 0
vaapidevice.UHD.CutTopBottom = 0
vaapidevice.UHD.Deinterlace = 0
vaapidevice.UHD.Denoise = 0
vaapidevice.UHD.Scaling = 0
vaapidevice.UHD.Sharpen = 0
vaapidevice.Video4to3DisplayFormat = 1
vaapidevice.VideoOtherDisplayFormat = 1

the strange thing is the old softhddevice is working with the same drivers,ffmpeg etc...

from vdr-plugin-vaapidevice.

pesintta avatar pesintta commented on June 19, 2024

This is strange. vaapidevice.UHD.Deinterlace = 0 which should map to VAProcDeinterlacingNone. Yet it seems that this check does not trigger:
https://github.com/pesintta/vdr-plugin-vaapidevice/blob/master/video.c#L1818-L1819

The check is supposed to skip deinterlacing which should make the issue go away according to #79 (comment). The modification there only differs so that deinterlacer is not initialized and therefore not run.

I'm afraid you'll need to add some extra logging into the if conditions linked above and try to figure why deinterlacing is still enabled for you for UHD resolutions.

from vdr-plugin-vaapidevice.

Space2Man avatar Space2Man commented on June 19, 2024

Could this be related to #96 ? Does the change from Rofafor help #100 ?

from vdr-plugin-vaapidevice.

pesintta avatar pesintta commented on June 19, 2024

@9000h found one likely cause for this bug which I fixed and pushed to master.

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

sorry still not working
but should there not a log entry like "none deinterlace supported"

Mar 13 21:07:29 acer533 vdr: [5519] VAAPI-ERROR: video: display buffer empty, duping frame (45/0) 5
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: video/vaapi: supports video processing
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: video/vaapi: noise reduction supported
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: video/vaapi: 0,00 - 1,00 ++ 0,03 = 0,50
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: Enabling denoise filter (pos = 0)
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: video/vaapi: deinterlacing supported
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: video/vaapi: bob deinterlace supported
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: video/vaapi: motion adaptive deinterlace supported
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: video/vaapi: motion compensated deinterlace supported
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: Enabling Deint (pos = 1)
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: video/vaapi: sharpening supported
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: video/vaapi: 0,00 - 1,00 ++ 0,03 = 0,50
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: Enabling sharpening filter (pos = 0)
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: video/vaapi: enabling color balance filters
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: video/vaapi: Supported color balance filter count: 4
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: Hue (-180,00 - 180,00 ++ 1,00 = 0,00) (pos = 2)
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: Saturation (0,00 - 10,00 ++ 0,10 = 1,00) (pos = 2)
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: Brightness (-100,00 - 100,00 ++ 1,00 = 0,00) (pos = 2)
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: Contrast (0,00 - 10,00 ++ 0,10 = 1,00) (pos = 2)
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: video/vaapi: skin tone enhancement supported
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: video/vaapi: 0,00 - 4,00 ++ 1,00 = 0,00
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: Enabling skin tone filter (pos = 3)
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: Allocating 1 forward reference surfaces for postprocessing
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: Allocating 0 backward reference surfaces for postprocessing
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI: Changing to 0 forward reference surfaces for postprocessing
Mar 13 21:07:30 acer533 vdr: [5519] VAAPI-ERROR: video/vaapi: black surface displayed

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

the old softddevice shows

Mar 13 21:19:20 acer533 vdr: Enabling denoise filter (pos = 0)
Mar 13 21:19:20 acer533 vdr: Selected deinterlacer for resolution 0 is not supported by HW
Mar 13 21:19:20 acer533 vdr: Selected deinterlacer for resolution 1 is not supported by HW
Mar 13 21:19:20 acer533 vdr: Selected deinterlacer for resolution 2 is not supported by HW
Mar 13 21:19:20 acer533 vdr: Selected deinterlacer for resolution 3 is not supported by HW
Mar 13 21:19:20 acer533 vdr: Selected deinterlacer for resolution 4 is not supported by HW
Mar 13 21:19:20 acer533 vdr: video/vaapi: deinterlacing supported
Mar 13 21:19:20 acer533 vdr: video/vaapi: bob deinterlace supported
Mar 13 21:19:20 acer533 vdr: video/vaapi: motion adaptive deinterlace supported
Mar 13 21:19:20 acer533 vdr: video/vaapi: motion compensated deinterlace supported
Mar 13 21:19:20 acer533 vdr: Enabling Deint (pos = 1)

from vdr-plugin-vaapidevice.

pesintta avatar pesintta commented on June 19, 2024

The intel-driver never reports support for "None" type of functionalities. none deinterlacer is "supported" by leaving it out from the filter chain (which is what the code attempts to do).

Here is a patch that skips all filters:

diff --git a/video.c b/video.c
index 40912b1..fcf9cf1 100644
--- a/video.c
+++ b/video.c
@@ -1798,6 +1798,15 @@ static VASurfaceID *VaapiApplyFilters(VaapiDecoder * decoder, int top_field)
     memset(filters_to_run, VA_INVALID_ID, sizeof(filters_to_run));
     for (unsigned int i = 0; i < decoder->filter_n; ++i) {

+       if (decoder->vpp_deinterlace_buf && decoder->filters[i] == *decoder->vpp_deinterlace_buf)
+           continue;
+       if (decoder->vpp_denoise_buf && decoder->filters[i] == *decoder->vpp_denoise_buf)
+           continue;
+       if (decoder->vpp_cbal_buf && decoder->filters[i] == *decoder->vpp_cbal_buf)
+           continue;
+       if (decoder->vpp_stde_buf && decoder->filters[i] == *decoder->vpp_stde_buf)
+           continue;
+
        /* Skip deinterlacer if disabled or source is not interlaced */
        if (decoder->filters[i] == *decoder->vpp_deinterlace_buf) {
            if (!decoder->Interlaced)

If applying this helps then remove each of the checks one by one until you've found the filter (or combination of filters) that need to be skipped.

If the patch above doesn't help then #79 (comment) is somehow mistaken and the issue is somewhere else.

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

ok looks like we get get it now, if vpp_cbal is skipped it did work

    for (unsigned int i = 0; i < decoder->filter_n; ++i) {

//       if (decoder->vpp_deinterlace_buf && decoder->filters[i] == *decoder->vpp_deinterlace_buf)
//           continue;
//       if (decoder->vpp_denoise_buf && decoder->filters[i] == *decoder->vpp_denoise_buf)
//           continue;
       if (decoder->vpp_cbal_buf && decoder->filters[i] == *decoder->vpp_cbal_buf)
           continue;
//       if (decoder->vpp_stde_buf && decoder->filters[i] == *decoder->vpp_stde_buf)
//           continue;

from vdr-plugin-vaapidevice.

pesintta avatar pesintta commented on June 19, 2024

This makes actually very much sense. Colorbalance filter is currently always enabled and you cannot disable it from settings or from setup.conf.

If you set denoise or skintone filter to some value from menu (as in "enable" the filter) does the picture still work or does it get broken?

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

set skin tone to 1 and the issue is back, all others did not harm

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

why not using vaSetDisplayAttributes to set the attributes
https://01org.github.io/libva_staging_doxygen/group__api__core.html#ga722bab0d81fffc7db59265432167da93

from vdr-plugin-vaapidevice.

9000h avatar 9000h commented on June 19, 2024

today I got some other messages on the console
WARNING: invalid surface provided for second field
WARNING: !!!incorrect slice_param. The first_mb_in_slice of next_slice is less than or equal to that in current slice
vdr: gen8_mfd.c:558: gen8_mfd_avc_directmode_state: Assertion `obj_surface->bo && obj_surface->private_data' failed.

from vdr-plugin-vaapidevice.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.