Skip to content

Commit 1b06af6

Browse files
committed
Refactor and add tests
pick e706cef90e # Refactor and add tests
1 parent 336d94e commit 1b06af6

File tree

23 files changed

+1301
-633
lines changed

23 files changed

+1301
-633
lines changed

RELEASENOTES.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
* Append content resume offset when skipping ad playback after seek
1010
adjustment or auto transition
1111
([2484](https://github.com/androidx/media/issues/2484)).
12+
* Add API for setting and observing `MediaCodec` parameters dynamically
13+
([#2794](https://github.com/androidx/media/pull/2794)).
1214
* CompositionPlayer:
1315
* Transformer:
1416
* Track Selection:

demos/main/src/main/assets/media.exolist.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -787,10 +787,6 @@
787787
{
788788
"name": "MPEG-H HD (MP4, H265)",
789789
"uri": "https://media.githubusercontent.com/media/Fraunhofer-IIS/mpegh-test-content/main/TRI_Fileset_17_514H_D1_D2_D3_O1_24bit1080p50.mp4"
790-
},
791-
{
792-
"name": "xHE-AAC Test (MP4)",
793-
"uri": "https://www2.iis.fraunhofer.de/AAC/Test_PRL-20.mp4"
794790
}
795791
]
796792
},

demos/main/src/main/java/androidx/media3/demo/main/PlayerActivity.java

Lines changed: 0 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,12 @@
3434
import androidx.appcompat.app.AppCompatActivity;
3535
import androidx.media3.common.AudioAttributes;
3636
import androidx.media3.common.C;
37-
import androidx.media3.common.CodecParameter;
38-
import androidx.media3.common.CodecParameters;
39-
import androidx.media3.common.CodecParametersChangeListener;
4037
import androidx.media3.common.ErrorMessageProvider;
4138
import androidx.media3.common.MediaItem;
4239
import androidx.media3.common.PlaybackException;
4340
import androidx.media3.common.Player;
4441
import androidx.media3.common.TrackSelectionParameters;
4542
import androidx.media3.common.Tracks;
46-
import androidx.media3.common.util.Log;
4743
import androidx.media3.common.util.UnstableApi;
4844
import androidx.media3.common.util.Util;
4945
import androidx.media3.datasource.DataSchemeDataSource;
@@ -65,7 +61,6 @@
6561
import androidx.media3.ui.PlayerView;
6662
import java.util.ArrayList;
6763
import java.util.Collections;
68-
import java.util.HashMap;
6964
import java.util.List;
7065
import org.checkerframework.checker.nullness.qual.MonotonicNonNull;
7166

@@ -266,7 +261,6 @@ protected void setContentView() {
266261
/**
267262
* @return Whether initialization was successful.
268263
*/
269-
@OptIn(markerClass = UnstableApi.class)
270264
protected boolean initializePlayer() {
271265
Intent intent = getIntent();
272266
if (player == null) {
@@ -283,56 +277,6 @@ protected boolean initializePlayer() {
283277
setRenderersFactory(
284278
playerBuilder, intent.getBooleanExtra(IntentUtil.PREFER_EXTENSION_DECODERS_EXTRA, false));
285279
player = playerBuilder.build();
286-
287-
// --------------------------- TESTING CODE ONLY -- REMOVE AGAIN ----------------------------
288-
player.setCodecParametersChangeListener(new CodecParametersChangeListener() {
289-
@Override
290-
public void onCodecParametersChanged(CodecParameters codecParameters) {
291-
HashMap<String, CodecParameter> parameters = codecParameters.get();
292-
for (String key : parameters.keySet()) {
293-
Log.e("PlayerActivity", "key = " + key + " value = " + parameters.get(key).value);
294-
}
295-
}
296-
297-
@Override
298-
public ArrayList<String> getFilterKeys() {
299-
ArrayList<String> filterKeys = new ArrayList<>();
300-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
301-
filterKeys.add(CodecParameter.KEY_AAC_DRC_OUTPUT_LOUDNESS);
302-
}
303-
return filterKeys;
304-
}
305-
});
306-
307-
CodecParameter codecParameter;
308-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
309-
// For testing set initial targetLoudness to -16 LUFS
310-
codecParameter = new CodecParameter(CodecParameter.KEY_AAC_DRC_TARGET_REFERENCE_LEVEL, 64,
311-
CodecParameter.VALUETYPE_INT);
312-
player.setCodecParameter(codecParameter);
313-
// For testing set initial BoostFactor to 32
314-
codecParameter = new CodecParameter(CodecParameter.KEY_AAC_DRC_BOOST_FACTOR, 32,
315-
CodecParameter.VALUETYPE_INT);
316-
player.setCodecParameter(codecParameter);
317-
// For testing set initial AttenuationFactor to 16
318-
codecParameter = new CodecParameter(CodecParameter.KEY_AAC_DRC_ATTENUATION_FACTOR, 16,
319-
CodecParameter.VALUETYPE_INT);
320-
player.setCodecParameter(codecParameter);
321-
}
322-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
323-
// For testing set initial EffectType to NOISY_ENVIRONMENT
324-
codecParameter = new CodecParameter(CodecParameter.KEY_AAC_DRC_EFFECT_TYPE, 2,
325-
CodecParameter.VALUETYPE_INT);
326-
player.setCodecParameter(codecParameter);
327-
}
328-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
329-
// For testing set initial AlbumMode to ENABLED
330-
codecParameter = new CodecParameter(CodecParameter.KEY_AAC_DRC_ALBUM_MODE, 1,
331-
CodecParameter.VALUETYPE_INT);
332-
player.setCodecParameter(codecParameter);
333-
}
334-
// --------------------------- TESTING CODE ONLY -- REMOVE AGAIN ----------------------------
335-
336280
player.setTrackSelectionParameters(trackSelectionParameters);
337281
player.addListener(new PlayerEventListener());
338282
player.addAnalyticsListener(new EventLogger());
@@ -354,44 +298,6 @@ public ArrayList<String> getFilterKeys() {
354298
player.setRepeatMode(IntentUtil.parseRepeatModeExtra(repeatModeExtra));
355299
}
356300
updateButtonVisibility();
357-
358-
// --------------------------- TESTING CODE ONLY -- REMOVE AGAIN ----------------------------
359-
// Simulate sleep so the MPEG-D DRC can change during runtime
360-
try {
361-
Thread.sleep(2000);
362-
} catch (InterruptedException e) {
363-
e.printStackTrace();
364-
}
365-
366-
CodecParameter codecParameter;
367-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
368-
// Testing a change to the targetLoudness during codec runtime (set to -24 LUFS)
369-
codecParameter = new CodecParameter(CodecParameter.KEY_AAC_DRC_TARGET_REFERENCE_LEVEL, 96,
370-
CodecParameter.VALUETYPE_INT);
371-
player.setCodecParameter(codecParameter);
372-
// Testing a change to the boost factor during codec runtime (set to 96)
373-
codecParameter = new CodecParameter(CodecParameter.KEY_AAC_DRC_BOOST_FACTOR, 96,
374-
CodecParameter.VALUETYPE_INT);
375-
player.setCodecParameter(codecParameter);
376-
// Testing a change to the attenuation factor during codec runtime (set to 64)
377-
codecParameter = new CodecParameter(CodecParameter.KEY_AAC_DRC_ATTENUATION_FACTOR, 64,
378-
CodecParameter.VALUETYPE_INT);
379-
player.setCodecParameter(codecParameter);
380-
}
381-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
382-
// Testing a change to the EffectType during codec runtime (set to OFF)
383-
codecParameter = new CodecParameter(CodecParameter.KEY_AAC_DRC_EFFECT_TYPE, -1,
384-
CodecParameter.VALUETYPE_INT);
385-
player.setCodecParameter(codecParameter);
386-
}
387-
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
388-
// Testing a change to the album mode during codec runtime (set to DISABLED)
389-
codecParameter = new CodecParameter(CodecParameter.KEY_AAC_DRC_ALBUM_MODE, 0,
390-
CodecParameter.VALUETYPE_INT);
391-
player.setCodecParameter(codecParameter);
392-
}
393-
// --------------------------- TESTING CODE ONLY -- REMOVE AGAIN ----------------------------
394-
395301
return true;
396302
}
397303

libraries/common/src/main/java/androidx/media3/common/CodecParameter.java

Lines changed: 0 additions & 165 deletions
This file was deleted.

0 commit comments

Comments
 (0)