I am running Linux. I would like to use C to grab the Ethernet packets, which in my case happen to be video frames. I wouldn't want to do a real time processing, and all I want to do is to process maybe one frame every few seconds. So, I am fine with skipping frames and not keeping up with the throughput. How can I, let's say, read an HD frame (1920x1080) pixels worth of data coming over Ethernet, once every few seconds? I would appreciate some help.

So, basically, I want to develop an API that reads frames slowly over Ethernet. The operating system that I am working on, is a light version of Linux, but it has most of the c and python libraries. Since I haven't done much Python before, that is why I decided to do it using C.
Can someone give me some hints please?
I read something about DirectFB. I am still not quite sure what it does, but can someone tell me whether it will be of any use to get some help with DirectFB also?

Lastly, my platform has a GPU unit, so when it receives the images over ethernet, it actually performs some codeing/decoding on the image (H.256). How can I make use of this in my API. What I mean is that how can I make sure that my API will not be grabbing the raw data directly from the ethernet, but instead it will be grabbing it after the codec, so I that I will be dealing with lower size images?

Any sort of help will be appreciated.

Thanks, --Rudy