Fixed: the decoder sometimes generates a dummy buffer when receiving an EOS and pushes it downstream.
The dummy buffer has a generated timestamp based on the duration of a frame, e.g. 3333333.
Since the dummy buffer is pushed downstream, the sink element receives one last buffer which has no data.
If we call get_position(), and get the response from the basesink, the returned value will be based on the timestamp of the last buffer, therefore, we would get 33333333.
Solution: extend gstdmaitransport buffer to add a flag called isDummy to the buffer. By default set it to false and when we generate a dummy buffer we set it to true.
On the chain function of the decoder, we check for the codecIsFlushed flag and for the isDummy flag, if both are true, we do not push the buffer downstream.

- Add support for decoders extended parameters
-- Add support for extended dm365 decoder parameters for h264 decoder
- Fix bugs in the h264 parser for bitstreams
- Fix bugs in timestamp metadata handling in decoder metadata circular buffer, we were
messing up the timestamps and causing the videos comming from bitstreams to stall the
display.

* Remove property tsFromDuration, was used to correct malformed audio streams but
we already provide an alternative to calculate timestamps on audio streams
* Add property generateTimestamps to indicate the plugin to generate timestamps with
a base time based on the first valid ts that we get from the stream. This property
allow us to correct mal-formed mpeg streams where the timestamps are mess up on some
plugins

* Fix race conditions problems while flushing data:
- We may have a deadlock if we do not release the mutex when flushing after parsing
- We need to lock the output metadata when flushing
* Move the creation of the metadata to the point where we actually know how many
output buffers have (it may have changed when using pad-allocated buffers)

* Replace all uses of Rendezvous API for pthread conditionals,
always locking the shared resources properly. This fixes weird race
conditions where a deadlock happens because the rendezvous was signaled
right between the call to check for free buffers and the call to meet.

* Add support for decoders support of optional extended arguments
- Standarize function namings on the ops functions for decoders and encoders
* Add support for jpeg decoders.
* Add maxwidth/maxheight behavior for decoders

* Refactor data structures for encoders/decoders stream specific
functions hooks. This allow us to provide customized functions to
transform data being encoded or decoded in order to be in the right
format (like translading from packetized to bytestream h264).
* Add support for h264 codec_data generation.

Refactor parser codec_data handling to provide instead a custom memcpy function
that enables parsers to interleave data on the input buffers. Required for parsers
like h264
Refactor the h264 parser to work again.

Checking refactoring of the parser API.
Now we have a single input circular buffer on the decoders,
and an generic parser that behaves like the original TI
circular buffer.
The new circular buffer includes logic to preserve the buffers
metadata, allowing the optimized parsers to work as well.
The specialized parsers may indicate their memory requirements
to be more efficient than the generic parser.
Implementing as well the audio decoding capabilities and providing
an aac parser

* Add infrastructure for specific codec parameters for encoders
* Add extended definitions for C64 MPEG encoder used on DM6446 and OMAP35x
* Revert the same infrastructure from the decoders to simplify tracing existing memory
leak on the decoders.

* Changes to the parser and generic elmement API:
** remove conditional wait since we are
avoiding threading elements based on feedback from tracelib
** correct capabilities settings to solve memory corruption that
messes up the decoder element
* Remove old files no longer required