MediaCodec: implement subsession metrics

This CL adds support for gatheric separate codec metrics for each
subsession during MediaCodec execution, which ensures that the metrics
data is representative of the subsession, and not just the first
subsession of the codec lifecycle.

A subsession for now is limited to video/image codecs based on the
resolution.

When a new subsession starts, the current metrics item is flushed and a new
one is created. The client is notified of the flushed metrics via a callback
to provide visibility and testability.

The subsession count is tracked and can be used to identify the first or all
subsessions of a codec lifecycle.

Bug: 5340c036cb
Flag: android.media.codec.subsession_metrics
Test: manual verification of subsession metrics submission
Change-Id: I482bf7fa7540d01a744ac2478b91e7f75187fa7b
2 files changed