HVR-900 – klikanie dźwięku pod Linuksem.

Ależ kupa.

Zanabyłem kiedyś, już prawie rok temu, tuner DVB-T HVR900. Nie działał dobrze od początku. W mainline nie był rozpoznawany bo… identyfikator urządzenia nie był dodany do obsługiwanych kart. Sterownik Markusa Rechbergera (dvb-experimental) działał, ale dźwięk klikał. Po pół roku Markus wydał nowy sterownik z obsługą DVB w userspace, w którym problem został rozwiązany. Używanie modułów spoza kernela jest niestety niewygodne, pomyślałem, że można by poprawić sterownik w kernelu.
Poprosiłem Mauro Carvalho Chehaba, żeby dodał odpowiednie id, ale już wtedy zacząłem używać tylko wejścia composite, do którego podłączam zewnętrzny tuner DVB-S. Niestety audio w composite nie działało. Dzisiaj to poprawiłem i idąc za ciosem postanowiłem poprosić Markusa, żeby pomógł mi naprawić problem z „klikaniem” dźwięku. Nie był zainteresowany. Napisał tylko, żebym używał em28xx-new, a w kolejnym mailu, że musiałbym użyć kodu z em28xx-audio.c.

Się wkurwiłem i zacząłem analizować diffa między dvb-experimental a em28xx-new.

Okazało się, że wystarczy zmienić aż tyle:

– runtime->buffer_size – oldptr – 1;
+ runtime->buffer_size – oldptr;
– memcpy(runtime->dma_area, cp + cnt,
+ memcpy(runtime->dma_area, cp + cnt * stride,
length * stride – cnt * stride);

Markus trzymając dvb-experimental w stanie „klikającym” (co pewnie przekłada się na to że w mainline też nie jest poprawione), nagania sobie testerów em28xx-new, który jak sam twierdzi, nigdy nie zostanie włączony do mainline.

Patch do repo v4l-dvb jest tutaj

Łatkę wysłałem do Mauro. Mam nadzieję, że wejdzie szybko do mainline…
Co za gówno. Ciekawe ile sterowników w kernelu nie działa, bo są jakieś niesnaski między deweloperami. Markus był kiedyś jednym z deweloperów v4l, ale się chopaki popsztykali. Teraz za pisanie zewnętrznego sterownika em28xx-new płaci mu Empia…

Ja pierdole. To ma być open source? (update: tak, to ma być open source – łatka jest już w 2.6.27).

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s