Funktioniert
Danke
Unabhängig davon finde ich es schade, dass man bei PCM-Ausgabe den Downmix nicht mehr abschalten kann, früher ging das mal.
Funktioniert
Danke
Unabhängig davon finde ich es schade, dass man bei PCM-Ausgabe den Downmix nicht mehr abschalten kann, früher ging das mal.
With this Patch for softhddevice-1.9.8 works DD+ with passthrough
--- codec.c.s 2023-06-15 15:55:53.896925199 +0200
+++ codec.c 2023-07-13 16:56:43.832113149 +0200
@@ -1228,7 +1228,7 @@
&& audio_ctx->codec_id == AV_CODEC_ID_EAC3)) {
if (audio_ctx->codec_id == AV_CODEC_ID_EAC3) {
// E-AC-3 over HDMI some receivers need HBR
- audio_decoder->HwSampleRate *= 4;
+ // audio_decoder->HwSampleRate *= 4;
}
audio_decoder->HwChannels = 2;
audio_decoder->SpdifIndex = 0; // reset buffer
Display More
Unabhängig davon finde ich es schade, dass man bei PCM-Ausgabe den Downmix nicht mehr abschalten kann, früher ging das mal.
Das muss ich mir anschauen. Ich habe da am ursprünglichen Audio verhalten eigentlich nichts geändert. Evtl. habe ich es aber auf dem langen Weg der Treiberentwicklung mal kaputt gemacht
Ich habe die Änderung für DD+ nun eingecheckt. Ausserdem habe ich noch einen Fix für softhddrm mit placebo
eingecheckt. Da sollte nun auch der skindesigner funktionieren.
Softhddrm mit libplacebo_gl baut leider mit der neuen video.c nicht -- Aktueller GIT-Stand v3.12
cc -g -O3 -Wall -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/local/include -I/usr/local/include/libdrm -I/usr/include/valgrind -I/usr/include/x86_64-linux-gnu -I/usr/include/x86_64-linux-gnu -I/usr/include/x86_64-linux-gnu -I/root/ffmpeg_build/include -I/usr/include/x86_64-linux-gnu -I./opengl -I./ -DPLUGIN_NAME_I18N='"softhddrm"' -D_GNU_SOURCE -DDEBUG -DHAVE_GL -DAV_INFO -DAV_INFO_TIME=3000 -DUSE_MPEG_COMPLETE -DH264_EOS_TRICKSPEED -DUSE_VDR_SPU -DUSE_OPENGLOSD -DUSE_GLX -DPLACEBO_GL -DPLACEBO -DUSE_DRM -DVAAPI -DUSE_SCREENSAVER -DGIT_REV='"e2e9ae9"' -g -W -Wextra -c -o video.o video.c
In file included from video.c:604:
drm.c: In function ‘set_video_mode’:
drm.c:178:83: warning: comparison of integer expressions of different signedness: ‘uint32_t’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare]
178 | if (width == mode->hdisplay && height == mode->vdisplay && mode->vrefresh == DRMRefresh &&
| ^~
drm.c:187:13: warning: implicit declaration of function ‘InitBo’ [-Wimplicit-function-declaration]
187 | InitBo(render->bpp);
| ^~~~~~
drm.c: In function ‘FindDevice’:
drm.c:314:40: warning: comparison of integer expressions of different signedness: ‘uint32_t’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare]
314 | mode->vrefresh == DRMRefresh && !(mode->flags & DRM_MODE_FLAG_INTERLACE)) {
| ^~
drm.c:364:18: warning: unused variable ‘zpos’ [-Wunused-variable]
364 | uint64_t zpos = 0;
| ^~~~
drm.c:203:32: warning: unused variable ‘props’ [-Wunused-variable]
203 | drmModeObjectPropertiesPtr props;
| ^~~~~
drm.c: In function ‘VideoInitDrm’:
drm.c:411:9: warning: unused variable ‘i’ [-Wunused-variable]
411 | int i;
| ^
drm.c: At top level:
drm.c:474:6: warning: conflicting types for ‘InitBo’; have ‘void(int)’
474 | void InitBo(int bpp) {
| ^~~~~~
drm.c:187:13: note: previous implicit declaration of ‘InitBo’ with type ‘void(int)’
187 | InitBo(render->bpp);
| ^~~~~~
drm.c: In function ‘InitBo’:
drm.c:482:67: warning: passing argument 3 of ‘epoxy_eglCreateWindowSurface’ makes integer from pointer without a cast [-Wint-conversion]
482 | eglSurface = eglCreateWindowSurface(eglDisplay, eglConfig, gbm.surface, NULL);
| ~~~^~~~~~~~
| |
| struct gbm_surface *
drm.c:482:67: note: expected ‘EGLNativeWindowType’ {aka ‘long unsigned int’} but argument is of type ‘struct gbm_surface *’
In file included from video.c:605:
hdr.c: In function ‘set_hdr_metadata’:
hdr.c:479:12: warning: assignment to ‘struct AVMasteringDisplayMetadata *’ from incompatible pointer type ‘uint8_t *’ {aka ‘unsigned char *’} -Wincompatible-pointer-types]
479 | md = sd1->data;
| ^
hdr.c:482:12: warning: assignment to ‘struct AVContentLightMetadata *’ from incompatible pointer type ‘uint8_t *’ {aka ‘unsigned char *’} [-Wincompatible-pointer-types]
482 | ld = sd2->data;
| ^
hdr.c:484:8: warning: suggest explicit braces to avoid ambiguous ‘else’ [-Wdangling-else]
484 | if (md && !memcmp(md, &md_save, sizeof(md_save)))
| ^
hdr.c:530:16: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
530 | cs = weston_colorspace_lookup("BT.709");
| ^
hdr.c:533:16: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
533 | cs = weston_colorspace_lookup("BT.2020");
| ^
hdr.c:536:16: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
536 | cs = weston_colorspace_lookup("BT.470 B/G"); // BT.601
| ^
hdr.c:539:16: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
539 | cs = weston_colorspace_lookup("BT.709");
| ^
hdr.c:462:25: warning: unused variable ‘ModeReq’ [-Wunused-variable]
462 | drmModeAtomicReqPtr ModeReq;
| ^~~~~~~
video.c: In function ‘VideoSetPts’:
video.c:617:79: warning: unused parameter ‘video_ctx’ [-Wunused-parameter]
617 | static void VideoSetPts(int64_t *pts_p, int interlaced, const AVCodecContext *video_ctx, const AVFrame *frame) {
| ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~
video.c: In function ‘GlxSetupWindow’:
video.c:937:14: warning: unused variable ‘count’ [-Wunused-variable]
937 | unsigned count;
| ^~~~~
video.c:936:9: warning: unused variable ‘i’ [-Wunused-variable]
936 | int i;
| ^
video.c:935:14: warning: unused variable ‘end’ [-Wunused-variable]
935 | uint32_t end;
| ^~~
video.c:934:14: warning: unused variable ‘start’ [-Wunused-variable]
934 | uint32_t start;
| ^~~~~
video.c: In function ‘EglInit’:
video.c:1185:5: warning: implicit declaration of function ‘make_egl’ [-Wimplicit-function-declaration]
1185 | make_egl();
| ^~~~~~~~
video.c:1188:22: warning: implicit declaration of function ‘glewInit’; did you mean ‘glutInit’? [-Wimplicit-function-declaration]
1188 | GLenum err = glewInit();
| ^~~~~~~~
| glutInit
video.c:1188:16: warning: unused variable ‘err’ [-Wunused-variable]
1188 | GLenum err = glewInit();
| ^~~
In file included from video.c:1502:
shaders.h: In function ‘sc_generate’:
shaders.h:212:11: warning: unused variable ‘frag’ [-Wunused-variable]
212 | char *frag;
| ^~~~
...
make: *** [<eingebaut>: video.o] Fehler 1
Display More
libplacebo 6.292.0
Optional features
d3d11 : NO
dovi : YES
gl-proc-addr: YES
glslang : NO
lcms : YES
libdovi : NO
opengl : YES
shaderc : YES
vk-proc-addr: YES
vulkan : YES
Found ninja-1.11.1 at /usr/local/bin/ninja
ninja: Entering directory `./build'
[93/93] Linking target demos/plplay
ninja: Entering directory `/root/vaapi/libplacebo/build'
[1/8] Generating src/version.h with a custom command
Installing src/libplacebo.so.292 to /usr/local/lib/x86_64-linux-gnu
Display More
video.c:3194:17: error: ‘struct pl_color_space’ has no member named ‘light’
3194 | target.color.light = PL_COLOR_LIGHT_DISPLAY;
| ^
video.c:3194:26: error: ‘PL_COLOR_LIGHT_DISPLAY’ undeclared (first use in this function); did you mean ‘PL_COLOR_PRIM_DISPLAY_P3’?
3194 | target.color.light = PL_COLOR_LIGHT_DISPLAY;
| ^~~~~~~~~~~~~~~~~~~~~~
| PL_COLOR_PRIM_DISPLAY_P3
video.c:3195:17: error: ‘struct pl_color_space’ has no member named ‘sig_peak’
3195 | target.color.sig_peak = 0;
| ^
video.c:3196:17: error: ‘struct pl_color_space’ has no member named ‘sig_avg’
3196 | target.color.sig_avg = 0;
video.c:3591:46: error: ‘struct pl_tex_transfer_params’ has no member named ‘stride_w’
3591 | .stride_w = output->linesize[0] / 2,
| ^~~~~~~~
video.c:3592:46: error: ‘struct pl_tex_transfer_params’ has no member named ‘stride_h’
3592 | .stride_h = h / 2,
Display More
Da ist deine libplacebo zu neu. Ich unterstütze nur bis API 246. Ich laufe schon seit Jahren den placebo Versionen hinterher und immer wird das API geändert
Da ist deine libplacebo zu neu. Ich unterstütze nur bis API 246. Ich laufe schon seit Jahren den placebo Versionen hinterher und immer wird das API geändert
OK dann kann man es hier nicht nutzen, aber was ist mit der Änderung in der drm.c?
Ist nur immer schräg da für die Erstellung z.B. vom MPV immer die aktuellste libplacebo benötigt wird.
Upps.. die checke ich noch ein.
Ich habe nun mal die Variablen rausgenommen die placebo 292 stören. Damit sollte es wieder compilieren.
Ich habe nun mal die Variablen rausgenommen die placebo 292 stören. Damit sollte es wieder compilieren.
DANKE, aber leider läuft es noch nicht durch
video.c: In function ‘CuvidMixVideo’:
video.c:3880:23: error: ‘struct pl_color_space’ has no member named ‘light’
3880 | img->color.light = PL_COLOR_LIGHT_DISPLAY;
| ^
video.c:3880:32: error: ‘PL_COLOR_LIGHT_DISPLAY’ undeclared (first use in this function); did you mean ‘PL_COLOR_PRIM_DISPLAY_P3’?
3880 | img->color.light = PL_COLOR_LIGHT_DISPLAY;
| ^~~~~~~~~~~~~~~~~~~~~~
| PL_COLOR_PRIM_DISPLAY_P3
video.c:3967:30: error: ‘struct pl_color_space’ has no member named ‘light’
3967 | target->color.light = PL_COLOR_LIGHT_DISPLAY;
| ^
video.c:3979:30: error: ‘struct pl_color_space’ has no member named ‘light’
3979 | target->color.light = PL_COLOR_LIGHT_DISPLAY;
...
video.c:3591:46: error: ‘struct pl_tex_transfer_params’ has no member named ‘stride_w’
3591 | .stride_w = output->linesize[0] / 2,
| ^~~~~~~~
video.c:3592:46: error: ‘struct pl_tex_transfer_params’ has no member named ‘stride_h’
3592 | .stride_h = h / 2,
| ^~~~~~~~
Display More
Dann muss ich mir das doch mal genauer ansehen und die 292er libplacebo installieren.
Beim aktuellen Git-Stand ist auch der Ton mit softhddrm bei UHD Kanälen wieder defekt --> kommt wieder zerhackt an.
Dann muss ich mir das doch mal genauer ansehen und die 292er libplacebo installieren.
Hier auch Fehler beim Compilieren:
video.c:2285:113: Anmerkung: (nahe der Initialisierung für »(anonym).format«)
video.c:2358:19: Fehler: »struct pl_color_space« hat kein Element namens »light«
2358 | img->color.light = PL_COLOR_LIGHT_SCENE_709_1886; // needs config ???
| ^
video.c:2358:28: Fehler: »PL_COLOR_LIGHT_SCENE_709_1886« nicht deklariert (erste Verwendung in dieser Funktion)
2358 | img->color.light = PL_COLOR_LIGHT_SCENE_709_1886; // needs config ???
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
video.c:2358:28: Anmerkung: jeder nicht deklarierte Bezeichner wird nur einmal für jede Funktion, in der er vorkommt, gemeldet
video.c:2359:19: Fehler: »struct pl_color_space« hat kein Element namens »sig_peak«
2359 | img->color.sig_peak = 0.0f; // needs config ????
| ^
video.c:2360:19: Fehler: »struct pl_color_space« hat kein Element namens »sig_avg«
2360 | img->color.sig_avg = 0.0f;
| ^
video.c: In Funktion »get_RGB«:
video.c:3153:9: Warnung: Zuweisung an »const struct pl_fmt *« von inkompatiblem Zeigertyp »pl_fmt« {alias »const struct pl_fmt_t *«} [-Wincompatible-pointer-types]
3153 | fmt = pl_find_named_fmt(p->gpu, "bgra8");
| ^
video.c:3169:56: Warnung: Initialisierung von »const struct pl_fmt_t *« von inkompatiblem Zeigertyp »const struct pl_fmt *« [-Wincompatible-pointer-types]
3169 | .w = width, .h = height, .d = 0, .format = fmt, .sampleable = true, .renderable = true, .blit_dst = true,
| ^~~
video.c:3169:56: Anmerkung: (nahe der Initialisierung für »(anonym).format«)
video.c:3249:27: Warnung: Übergabe des Arguments 1 von »pl_render_image« von inkompatiblem Zeigertyp [-Wincompatible-pointer-types]
3249 | if (!pl_render_image(p->renderer, &decoder->pl_frames[current], &target, &render_params)) {
| ~^~~~~~~~~~
| |
| struct pl_renderer *
In Datei, eingebunden von video.c:194:
/usr/include/libplacebo/renderer.h:720:41: Anmerkung: »pl_renderer« {alias »struct pl_renderer_t *«} erwartet, aber Argument hat Typ »struct pl_renderer *«
720 | PL_API bool pl_render_image(pl_renderer rr, const struct pl_frame *image,
| ~~~~~~~~~~~~^~
video.c: In Funktion »CuvidGetHwAccelContext«:
video.c:3640:17: Warnung: Vergleich eines vorzeichenlosen Ausdrucks in »< 0« ist stets unwahr [-Wtype-limits]
3640 | if (ret < 0) {
| ^
video.c: In Funktion »CuvidMixVideo«:
video.c:3880:23: Fehler: »struct pl_color_space« hat kein Element namens »light«
3880 | img->color.light = PL_COLOR_LIGHT_DISPLAY;
| ^
video.c:3880:32: Fehler: »PL_COLOR_LIGHT_DISPLAY« nicht deklariert (erstmalige Verwendung in dieser Funktion); meinten Sie »PL_COLOR_PRIM_DISPLAY_P3«?
3880 | img->color.light = PL_COLOR_LIGHT_DISPLAY;
Display More
So erstmal das compile Problem mit libplacebo 292 behoben.
Und nun zum Ton bei softhddrm mit UHD. Die Änderungen die ich da eingebaut hatte waren bei mamomoz erfolgreich. Aber da ist auch ein NUCi7 im Einsatz. Ich vermute mit kleinerer CPU geht da kein libplacebo.
So erstmal das compile Problem mit libplacebo 292 behoben.
Compiliert und läuft...
Vielen Dank!
So erstmal das compile Problem mit libplacebo 292 behoben.
Und nun zum Ton bei softhddrm mit UHD. Die Änderungen die ich da eingebaut hatte waren bei mamomoz erfolgreich. Aber da ist auch ein NUCi7 im Einsatz. Ich vermute mit kleinerer CPU geht da kein libplacebo.
Das Ton Problem bei UHD tritt OHNE Placebo auf. Beim NUC7,8,10 & 11
EDTT:
Mit der aktuellen Git-Stand ist der Ton bei UHD wieder OK
Das ganze ist schon etwas sonderbar. Das rendern einen Bildes von placebo dauert in softhdvaapi ca. 14ms und mit softhddrm dauert es 24ms.
Dann reicht die Zeit nicht mehr für den Rest und deswegen stottert der Ton weil nur jedes zweite Bild angezeigt werden kann. Nur warum das bei DRM anders ist als ohne, das ist mir ein Rätsel.
Ganz ohne libplacebo habe ich noch nie Probleme mit dem Ton gehabt und das rendern war immer schnell genug. Und schön wenn es nun wieder funktionert.
Done
Don’t have an account yet? Register yourself now and be a part of our community!