port XILINX XDMA to AVstream minidriver for a PCIE device

I have a PCIE capture card based on XILINX XDMA. I want to learn about windows driver development. Now I want to port the xdma code to the avstream framework to support the directshow function, so that I can play the capture in real time in the Windows built-in player.
But I’m a novice, I don’t know where to start, I want to find an open source example first to learn from it, and then try to modify some functions I want.
Thank you all friends who read this post. I hope some friends can give some help. Thank you very much!

If you’re a novice, then this may not be a good place to start. You’re merging two complicated technologies. What kind of a device are you creating?

When you buy a Xilinx development kit, they’ll send you the source code for their XDMA driver. That driver has a number of rather serious problems, as Mr Viscarola will attest. There are two AVStream drivers in the Microsoft driver samples repository: “avssamp” does video and audio, and “avshws” does video through simulated DMA. “avshws” is usually a good starting place.

Even then, you’ll have a lot of code to write. avshws assumes packet DMA, where you lock each new buffer as it comes in, then DMA into it, then unlock. The XDMA driver streams into a circular buffer and copies from there. That makes the bookkeeping easier, but it means you have to write that code.

@Tim_Roberts said:
If you’re a novice, then this may not be a good place to start. You’re merging two complicated technologies. What kind of a device are you creating?

When you buy a Xilinx development kit, they’ll send you the source code for their XDMA driver. That driver has a number of rather serious problems, as Mr Viscarola will attest. There are two AVStream drivers in the Microsoft driver samples repository: “avssamp” does video and audio, and “avshws” does video through simulated DMA. “avshws” is usually a good starting place.

Even then, you’ll have a lot of code to write. avshws assumes packet DMA, where you lock each new buffer as it comes in, then DMA into it, then unlock. The XDMA driver streams into a circular buffer and copies from there. That makes the bookkeeping easier, but it means you have to write that code.

TKS.
It is just a normal PCIE board. I want it to support directshow.
Now I have XDMA driver code and avssamp code on hand. The puzzle is how to port the xdma driver code to the avssamp code

“Normal PCIE board” doesn’t mean anything. Is this a camera? Digitizer? TV? Document scanner? Do you have something working already with custom software using the XDMA driver?

Yes, it’s a puzzle. This is not like a Lego set where you neatly fit together the existing pieces. You have a lot of work ahead of you.

“Normal PCIE board” is mean it has built-in audio and video signals and has no other functions. Then I want to use the player that comes with the system to play the audio and video on the board on the windows system

(MODS: I have deleted the content of this post, because I interpret it as asking for consulting help and costs, which is not allowed here. Any commercial posts are against the rules. The OP is warned: One more such post and you’ll be banned. Follow the rules, please.)

I will only point out that my email address is in every post.

@lijay910 said:
(MODS: I have deleted the content of this post, because I interpret it as asking for consulting help and costs, which is not allowed here. Any commercial posts are against the rules. The OP is warned: One more such post and you’ll be banned. Follow the rules, please.)

oh ,i see , so sorry and not in the future.