DataSource: Remove global variables in DataSource related to sniff

Removed global variables related to sniff, and added Sniffer class
to implement the sniff functionality with non-static members.

Change-Id: I6fbd0ba5b686e09fda11d78cdd687a69c81a6bdf
CRs-Fixed: 567753
libstagefright: Add MPEG2 Codec support

Enables playback support for MPEG2 Codec to play specific ts content

CRs-Fixed: 631693
Change-Id: I96e44b1f1f26ea138802d8d75f1784a06dd8dc6b
libstagefright: Fix crash while setting buffer size

The format returned from MakeAVCCodecSpecificData may be
NULL and will crash on trying to set buffer size.

Added NULL check to avoid crash

Change-Id: I45485f820a6aa657e63aeeb6dd43061a2e3575e3
CRs-Fixed: 644331
libeffect: Fix enabled effect count calculation error

When switching from tunnel to arm effects, effect chain will be moved
from offload thread to mixer thread. During this procedure effect instance
is not destroyed, instead it's preserved and mounted onto new chain.

The migrant sequence is 1) disable instance -> 2) move to new effect
chain -> 3) enable instance again. However, the accumulated effect
enabled count is not decreased when effect instance is disabled.

As a result, LvmBundle_process() is only called once when Effect_process()
called twice, which causes input buffer get processed alternately and
glitch sound appears.

Change-Id: Idd3b8753a73694cc36617ed55b40fda93155abed
CRs-Fixed: 636353
libmedia: Add timelapse profiles for 4k sizes

 The encoder profiles need to be extended to
 support 4k resolutions during timelapse as well.

Change-Id: If67ef1cca45bc61ce1d08bcd5b33adcf22ed8751
CRs-Fixed: 642013
stagefright: Fix playback for mkv files with lacing

Most mkv files having 'lacing' in their audio section to save space.
Android did not handle this properly, sending all frames in the block
with the same time code, which causes stuttery playback.

Change-Id: I4dc76e7c2a53126c7fbdd3628fe7d339d2e3364e