[Java] Native Interface & Broadcast Driver Architecture BDA

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ArChie
  • Registratie: November 2005
  • Niet online
Als beginnend Java programmeur ontwikkel ik in mijn vrije tijd een Digital Video Broadcasting Service Information (DVB-SI) Parser tooltje om wat ervaring op te doen. Daarbij heb ik me tot op heden altijd beperkt tot de Java taal kennis die nodig is voor het programmers examen. Het DVB-SI Parser tooltje leest binary Transport Stream capture bestanden in die gemaakt zijn met een third-party capture tool die met mijn DVB-C PC-TV kaart werkt op basis van de Broadcast Driver Architecture (BDA) Windows drivers. Op basis van de DVB-SI data in die capture bestanden produceert mijn toolje dan allerlei overzichten zoals bijvoorbeeld in het volgende topic te vinden zijn: Digitale TV problemen bij Ziggo/Casema/Multikabel

In de loop der tijd is het DVB-SI Parser tooltje behoorlijk gegroeid en ik ben nu eigenlijk toe aan de volgende stap, namelijk vanuit het tooltje direct met de DVB-C PC-TV kaart communiceren zodat het niet langer nodig is om eerst DVB Transport Stream capture bestanden aan te maken. Uiteraard heb ik eerst onderzocht of er Java libraries te vinden zien die het mogelijk maken op met de standaard Windows BDA drivers te communiceren vanuit een Java applicatie. Helaas kon ik alleen een wrapper library (dsj) vinden die voornamelijk ontwikkeld wordt met DVB-S en DVB-T PC-TV kaarten en om onduidelijke reden heeft de ontwikkelaar geen zin om ook met goede ondersteuning te komen voor DVB-C PC-TV kaarten. Gevolg is in ieder geval dat dsj niet met mijn DVB-C PC-TV kaart en bijbehorende BDA drivers aan de praat te krijgen is.

Ik heb het dus maar opgegeven dat er een standaard Java library voor de ondersteuning van BDA drivers te vinden zal zijn en kom dan dus uit op optie 2, namelijk via de Java Native Interface (JNI) zelf "iets" maken dat via de BDA drivers mijn DVB-C PC-TV kaart laat afstemmen op een bepaalde kabel frequentie met een bepaalde symbolrate en QAM instelling om dan vervolgens een byte stream te openen die door mijn Java DVB-SI Parser toolje kan worden verwerkt. Een aantal problemen doemen daarbij op. Als beginnend Java programmeur heb ik nog nooit iets gedaan met JNI en ik heb ook nog nooit iets geprogrammeerd met Windows BDA drivers.

Wie heeft ervaring met één of beide onderwerpen en wil mij eens opweg helpen met wat goede voorbeelden?

Acties:
  • 0 Henk 'm!

  • Potatoman
  • Registratie: September 2000
  • Laatst online: 01:57

Potatoman

koniwa

Suggestie: kijk ook eens naar Java Native Access. Het schijnt enorm veel eenvoudiger te zijn dan Java Native Interface maar ik heb zelfs helaas nooit de kans gehad het te gebruiken. JNI daarentegen daar heb ik me vaak aan geergerd.

The cyclographing developer


Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ik heb zelf geen ervaring met de BDA interface maar hier kun je in ieder geval informatie vinden over BDA: http://msdn.microsoft.com...ry/dd693015(v=VS.85).aspx

Als ik het zo gauw zie is het overigens een COM interface, dus ik weet niet of je dat met JNI kan aanspreken, maar er zullen neem ik aan vast opties zijn om vanuit Java COM object aan te spreken.

[ Voor 37% gewijzigd door Woy op 09-04-2010 09:25 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • OrbitZ
  • Registratie: Juni 2001
  • Laatst online: 26-05 13:07
Als het een COM interface is kan je eenvoudig een brug slaan tussen Java en het COM object door middel van com4j. Deze library genereert de COM API als Java classes waarna je vervolgens alles vanuit Java kan benaderen. Zelf gebruik ik dit ook voor verschillende projecten.

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
OrbitZ schreef op vrijdag 09 april 2010 @ 11:41:
Als het een COM interface is kan je eenvoudig een brug slaan tussen Java en het COM object door middel van com4j. Deze library genereert de COM API als Java classes waarna je vervolgens alles vanuit Java kan benaderen. Zelf gebruik ik dit ook voor verschillende projecten.
Het nadeel is alleen dat er zo te zien geen typelib beschikbaar is, en je dus alsnog alles handmatig moet definiëren. Maar het is dus in ieder geval wel mogelijk

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • ArChie
  • Registratie: November 2005
  • Niet online
Bedankt voor het meedenken. Het ziet er naar uit dat ik me dus zal moeten verdiepen in com4j in combinatie met het aansturen van de DVB-C PC-TV kaart via een COM interface.
Pagina: 1