Read arrays directly from Parcel
PiperOrigin-RevId: 286197990
This commit is contained in:
parent
821d4fb13a
commit
a8d39c1180
@ -18,6 +18,7 @@ package com.google.android.exoplayer2.metadata.scte35;
|
|||||||
import android.os.Parcel;
|
import android.os.Parcel;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
import com.google.android.exoplayer2.util.ParsableByteArray;
|
import com.google.android.exoplayer2.util.ParsableByteArray;
|
||||||
|
import com.google.android.exoplayer2.util.Util;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a private command as defined in SCTE35, Section 9.3.6.
|
* Represents a private command as defined in SCTE35, Section 9.3.6.
|
||||||
@ -46,8 +47,7 @@ public final class PrivateCommand extends SpliceCommand {
|
|||||||
private PrivateCommand(Parcel in) {
|
private PrivateCommand(Parcel in) {
|
||||||
ptsAdjustment = in.readLong();
|
ptsAdjustment = in.readLong();
|
||||||
identifier = in.readLong();
|
identifier = in.readLong();
|
||||||
commandBytes = new byte[in.readInt()];
|
commandBytes = Util.castNonNull(in.createByteArray());
|
||||||
in.readByteArray(commandBytes);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* package */ static PrivateCommand parseFromSection(ParsableByteArray sectionData,
|
/* package */ static PrivateCommand parseFromSection(ParsableByteArray sectionData,
|
||||||
@ -64,7 +64,6 @@ public final class PrivateCommand extends SpliceCommand {
|
|||||||
public void writeToParcel(Parcel dest, int flags) {
|
public void writeToParcel(Parcel dest, int flags) {
|
||||||
dest.writeLong(ptsAdjustment);
|
dest.writeLong(ptsAdjustment);
|
||||||
dest.writeLong(identifier);
|
dest.writeLong(identifier);
|
||||||
dest.writeInt(commandBytes.length);
|
|
||||||
dest.writeByteArray(commandBytes);
|
dest.writeByteArray(commandBytes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -100,8 +100,7 @@ public final class DownloadRequest implements Parcelable {
|
|||||||
}
|
}
|
||||||
streamKeys = Collections.unmodifiableList(mutableStreamKeys);
|
streamKeys = Collections.unmodifiableList(mutableStreamKeys);
|
||||||
customCacheKey = in.readString();
|
customCacheKey = in.readString();
|
||||||
data = new byte[in.readInt()];
|
data = castNonNull(in.createByteArray());
|
||||||
in.readByteArray(data);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -194,7 +193,6 @@ public final class DownloadRequest implements Parcelable {
|
|||||||
dest.writeParcelable(streamKeys.get(i), /* parcelableFlags= */ 0);
|
dest.writeParcelable(streamKeys.get(i), /* parcelableFlags= */ 0);
|
||||||
}
|
}
|
||||||
dest.writeString(customCacheKey);
|
dest.writeString(customCacheKey);
|
||||||
dest.writeInt(data.length);
|
|
||||||
dest.writeByteArray(data);
|
dest.writeByteArray(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
package com.google.android.exoplayer2.metadata;
|
package com.google.android.exoplayer2.metadata;
|
||||||
|
|
||||||
|
@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2019 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
package com.google.android.exoplayer2.metadata;
|
||||||
|
|
||||||
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
|
import android.os.Parcel;
|
||||||
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
import com.google.android.exoplayer2.metadata.id3.BinaryFrame;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
|
/** Tests for {@link Metadata}. */
|
||||||
|
@RunWith(AndroidJUnit4.class)
|
||||||
|
public class MetadataTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testParcelable() {
|
||||||
|
Metadata metadataToParcel =
|
||||||
|
new Metadata(
|
||||||
|
new BinaryFrame("id1", new byte[] {1}), new BinaryFrame("id2", new byte[] {2}));
|
||||||
|
|
||||||
|
Parcel parcel = Parcel.obtain();
|
||||||
|
metadataToParcel.writeToParcel(parcel, 0);
|
||||||
|
parcel.setDataPosition(0);
|
||||||
|
|
||||||
|
Metadata metadataFromParcel = Metadata.CREATOR.createFromParcel(parcel);
|
||||||
|
assertThat(metadataFromParcel).isEqualTo(metadataToParcel);
|
||||||
|
|
||||||
|
parcel.recycle();
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user