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:
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, 19 Oct 2008 at 14:29:09 UTC/GMT