header: add a vendor-specific header file for omxil-sh
add a choice of enabling/disabling the T/L addressing for omxil-sh

This adds a new property 'tiled-output' to enable/disable the
tiled-linear (T/L) reordering.
This can eliminate redundant memory-to-memory copies if a
downstream sink plugin can use hardware which supports the
T/L addressing.
base_videodec: send a query whether the T/L addressing is supported

This patch sends a query which asks downstream plugins whether
can handle the T/L addressing for buffer data address.
settings_changed_cb() can be invoked after the pad has been enabled.
The query is issued by settings_changed_cb() once in the preroll stage,
and then no reply or 'unsupported' reply can make terminating the process.

Conflicts:

	omx/gstomx_base_videodec.c
Revert "base_filter: set timestamps if not set"

This reverts commit aa6e3c52d398e4e43296b628c6339af8994c6674.

This may cause trouble with raw video streams in which a frame
would be constructed of multiple NAL units.
Furthermore this could be unnecessary since lagacyh264parse
manage to give appropriate timestamp for such raw stream data.
base_videodec: set tile width in caps for T/L addressing

Image data decoded by REL OMXIL with the 'NO_IPC' configration
must be stored as tiles in memory, that is known as 'T/L addressing'.
A downstream plugin may be notified of the tile width in order to
read the image through MERAM efficiently.
base_filter: set proper data size to a GstBuffer instance when the T/L addressing is enabled

In the T/L addressing enabled, nFilledLen doesn't contain actual
data size but the image size assumed to be transformed with the T/L
addressing. To figure out the actual size, we should calculate it
from nStride and nSliceHeight that are obtained from
OMX_VIDEO_PORTDEFINITIONTYPE. chroma_byte_offset has a value that is
nStride * nSliceHeight. The total data size equals chroma_byte_offset * 3 / 2.
base_videodec: set tile height in caps for T/L addressing

Downstream plugins may be notified of the tile height when image data
is stored as tiles in memory.
util: don't skip waiting for state change completion in error condition

The omxil-sh component can still safely transition into Idle and Loaded
states after an error occurs.
The client should wait for state change completion even when the
component returns an error.
util: move sending a pause command from flush_start to flush_stop

REL OMXIL component requires a pause command to be sent before
a flush command according to the spec. The sequence of commands to
flush the component should be grouped into g_omx_core_flush_stop()
rather than sending separately.
When g_omx_core_flush_start() is invoked, g_omx_port_pause() is
sufficient to suspend decoding when an error occurs.
util: change the beginning of locked section to definitely wakeup blocking a thread when an error occurs

When OMX_EventError is caught after OMX_SendCommand() is called and before
g_cond_timed_wait() is invoked, the thread blocks until timeout because the
wakeup signal from the event handler is sent before the thread blocks.
This change moves the mutex lock to before OMX_SendCommand() in order to
avoid this race condition.
base_filter: set end of frame flag for buffers containing SPS/PPS, in addition to the config codec flag

The REL OMXIL specification states that the ENDOFFRAME flag should be set
for buffers containing the SPS/PPS only.
base_filter: overwrite nFlags to OMX_BUFFERFLAG_EOS when catching an EOS event

omx_buffer instances are reused after returned from the OMXIL component.
The previous nFlags should be overwritten on EOS.
util/base_filter: send an error event to application immediately after catching an error from the component

An error event might not be sent to application after catching an error
from the OMXIL component because the error event isn't sent when
EventHandler() is invoked but is sent after pad_chain() detects it.
This patch notifies the application of the error from the component
in the event handler in order to ensure that the the error is sent.
base_filter/base_videodec: add a new property to specify the maximum resolution of video output

The new property can be used to control amount of memory consumption
in the omxil-sh video decoder.