Library
-------

AnnexB handling
	* AnnexB handling is useful for RTP; make this a runtime option;
	currently it is compile-time.

Decoder cancel
	* returning != 0 from a vpu_decoded() callback stops the decoder,
	but resuming doesn't flush out the remaining frames. For testing,
	hack shcodecs-dec to always return 1 from the decoded callback, and
	try to get the original/correct output
	==> then use this to rate-limit buffers in omxil-sh

Compile options
	* (dec-enc-optional branch) make encode or decode disablable at
	compile time
	* make libshcodecs _native_ x86 build possible for building docs
	(with no library output)

Encode
	* check first frame of encoded video: is from previous video?
	If so, clear frame data before starting encode.

Decode MPEG4
	* Decoding multiple MPEG4 streams in seperate threads often fails.

Error handling
	* Store a meaningful error code so you can easily see if it's just
	a memory allocation problem due to the size/number of instances used
	or an error with stream.

Decoder testing
	* Test with erroneous streams

Decoder extract frame size
	* The size of the frame is in the elementary stream. In order to
	get this, you could create a decoder with the smallest frame size,
	decode until you get a "Picture too large" error from the middleware,
	and then re-initialise everything with the extracted size.

Decoder frame size
	* The hardware requires the decode output surface to consist of
	whole macroblocks (i.e. a multiple of 16), but video streams do not
	have to be this size. The decoder doesn't provide the size of the
	video stream to the client.

Tools
-----

shcodecs-play

	* print error if cannot init decoder (eg. no size given)

	* handle float framerate values (eg. shcodecs-play -r 29.97)

