media/libraries
claincly f3cc75cf58 Add SSIM helper for transcoding quality measurements.
We use SSIM to measure the transcoding quality between. SSIM is a widely used
tool that compares the luma channel between two images, and generates a score
from 0 to 1 that indicates "how similar" the two images are.

In `SsimHelper`, we decode the two videos, extract matching frames and
calculates the mean SSIM (SSIM averaged all matching frames) for both videos.
Matching frames are referred to as "comparisonFrame" in the CL, which is
selected based on the frame number and a user-set comparison interval.
For instance, if the interval is 7, then every seventh frames are compared.

We use MediaCodec/MediaExtractor to decode the video, and use ImageReader to
extract the decoded frame.

The SSIM calculation logic is a inspired by and modified from the CTS
[MSSIMMatcher](https://cs.android.com/android/platform/superproject/+/master:cts/tests/tests/uirendering/src/android/uirendering/cts/bitmapcomparers/MSSIMComparer.java;l=1?q=mssimcom)
that has some errors and extra features we don't need (like handling RGB
images).

Adds TranscodeQualityTest to ensure high quality transcoding.

PiperOrigin-RevId: 430951206
2022-03-01 09:40:52 +00:00
..
cast Remove deprecated Player track methods 2022-02-22 10:35:04 +00:00
common Version bump to exoplayer:2.17.0 and media3:1.0.0-alpha02 2022-02-23 16:22:43 +00:00
database Reformat some javadoc 2022-02-18 14:54:02 +00:00
datasource Reformat some javadoc 2022-02-18 14:54:02 +00:00
datasource_cronet Reformat some javadoc 2022-02-18 14:54:02 +00:00
datasource_okhttp Reformat some javadoc 2022-02-18 14:54:02 +00:00
datasource_rtmp Reformat some javadoc 2022-02-18 14:54:02 +00:00
decoder Reformat some javadoc 2022-02-18 14:54:02 +00:00
decoder_av1 Make sure native library loads use correct class loader 2022-02-17 15:00:31 +00:00
decoder_ffmpeg Depend on llvm-xy bin utils instead of GNU's binutils 2022-02-17 15:08:04 +00:00
decoder_flac Make sure native library loads use correct class loader 2022-02-17 15:00:31 +00:00
decoder_opus Libopus Support For WebM DiscardPadding 2022-02-18 14:56:25 +00:00
decoder_vp9 Make sure native library loads use correct class loader 2022-02-17 15:00:31 +00:00
exoplayer Rollback of 99d2b11329 2022-03-01 09:36:50 +00:00
exoplayer_dash Reformat some javadoc 2022-02-18 14:54:02 +00:00
exoplayer_hls Reformat some javadoc 2022-02-18 14:54:02 +00:00
exoplayer_ima Clear ad playback state map when AdsLoader is released 2022-02-17 11:52:24 +00:00
exoplayer_rtsp Merge pull request #36 from ittiam-systems:rtp-h265 2022-02-18 16:41:12 +00:00
exoplayer_smoothstreaming Reformat some javadoc 2022-02-18 14:54:02 +00:00
exoplayer_workmanager Reformat some javadoc 2022-02-18 14:54:02 +00:00
extractor FMP4: Fix output of mixed v0 and v1 emsg samples 2022-03-01 09:35:58 +00:00
session Remove deprecated Player track methods 2022-02-22 10:35:04 +00:00
test_data Clarify instructions for updating expected output bitmaps. 2022-02-23 16:17:57 +00:00
test_exoplayer_playback Extend support for audio spatialization in MediaCodecAudioRenderer 2022-01-25 18:59:43 +00:00
test_session_common Reformat some javadoc 2022-02-18 14:54:02 +00:00
test_session_current Remove deprecated Player track methods 2022-02-22 10:35:04 +00:00
test_utils Remove deprecated Player track methods 2022-02-22 10:35:04 +00:00
test_utils_robolectric Fix the position of IntDefs to match TYPE_USE 2022-02-08 11:07:50 +00:00
transformer Add SSIM helper for transcoding quality measurements. 2022-03-01 09:40:52 +00:00
ui Reformat some javadoc 2022-02-18 14:54:02 +00:00
ui_leanback Fixes for some minor misc issues 2021-11-19 14:44:25 +00:00