Comments (33)
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.
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.
the log of the UHD Demo Channel at 19.2 East
http://paste.ubuntu.com/p/MpBPN3BPBj/
from vdr-plugin-vaapidevice.
could commit 19e1101 do any harm here?
from vdr-plugin-vaapidevice.
I don't think so but you may do git revert <commit-hash>
and comile the plugin to verify.
from vdr-plugin-vaapidevice.
you are right
from vdr-plugin-vaapidevice.
Is the bit-depth of the affected video 10bit or 8bit?
from vdr-plugin-vaapidevice.
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.
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.
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.
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.
how is the right profile selected HEVCMain or HEVCMain10
could some additional debug statements help
from vdr-plugin-vaapidevice.
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.
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.
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.
@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.
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.
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.
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.
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.
Can you post your setup.conf (lines starting with vaapidevice)?
from vdr-plugin-vaapidevice.
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.
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.
Could this be related to #96 ? Does the change from Rofafor help #100 ?
from vdr-plugin-vaapidevice.
@9000h found one likely cause for this bug which I fixed and pushed to master.
from vdr-plugin-vaapidevice.
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.
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.
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.
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.
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.
set skin tone to 1 and the issue is back, all others did not harm
from vdr-plugin-vaapidevice.
why not using vaSetDisplayAttributes to set the attributes
https://01org.github.io/libva_staging_doxygen/group__api__core.html#ga722bab0d81fffc7db59265432167da93
from vdr-plugin-vaapidevice.
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)
- No config option to disable "ColorBalance" filter HOT 1
- feature request: 10Bit surfaces HOT 1
- Jump to last mark -> segfault HOT 5
- Info statements not consistant HOT 3
- SD deinterlace issue? HOT 6
- ColorBalance sizeof ? HOT 2
- CPU high io wait HOT 8
- Segfault on some channels HOT 3
- post process color issue HOT 3
- log black surface as error? HOT 1
- corrupted size vs. prev_size HOT 1
- Problem with mp3 plugin HOT 6
- looks like this crashes now in branch ffdemux HOT 5
- branch ffdemux UHD bad picture HOT 3
- Crash on playback HOT 1
- Playback without audio HOT 6
- X11 does not work after atta vaapidevice HOT 6
- Ubuntu 18.10, VDR 2.4.0, vaapidevice: No Picture, only OSD HOT 1
- No sound for eac3 audio stream HOT 1
- Problems on displaying still pictures
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vdr-plugin-vaapidevice.