August'24: Kamaelia is in maintenance mode and will recieve periodic updates, about twice a year, primarily targeted around Python 3 and ecosystem compatibility. PRs are always welcome. Latest Release: 1.14.32 (2024/3/24)
This component takes a raw stream of YUV video data and breaks it into invidual frames. It sends them out one at a time, tagged with relevant data such as the frame size.
Many components that expect uncompressed video require it to be structured into frames in this way, rather than as a raw stream of continuous data. This component fulfills that requirement.
Reading and encoding raw video:
imagesize = (352, 288) # "CIF" size video
Pipeline(ReadFileAdapter("raw352x288video.yuv", ...other args...),
RawYUVFramer(imagesize),
DiracEncoder(preset="CIF"),
).activate()
Receives raw yuv video data, as strings on its "inbox" inbox.
Sends out individual frames packaged in a dictionary:
{
"yuv" : (y_data, u_data, v_data), # a tuple of strings
"size" : (width, height), # in pixels
"pixformat" : "YUV420_planar", # raw video data format
}
The component will terminate if it receives a shutdownMicroprocess or producerFinished message on its "control" inbox. The message is passed on out of the "signal" outbox.
RawYUVFramer(size,pixformat) -> raw yuv video data framing component
Creates a component that frames a raw stream of YUV video data into frames.
Keyword arguments:
Warning!
You should be using the inbox/outbox interface, not these methods (except construction). This documentation is designed as a roadmap as to their functionalilty for maintainers and new component developers.
x.__init__(...) initializes x; see x.__class__.__doc__ for signature
Send out a frame, flushing buffers
Main loop
packAndSend(raw) -> None
Pack incoming raw data into y,u,v planes, and triggers a flush when all planes are full.
Got a problem with the documentation? Something unclear that could be clearer? Want to help improve it? Constructive criticism is very welcome - especially if you can suggest a better rewording!
Please leave you feedback here in reply to the documentation thread in the Kamaelia blog.
-- Automatic documentation generator, 05 Jun 2009 at 03:01:38 UTC/GMT