aboutsummaryrefslogtreecommitdiff
path: root/src/com/android/tv/tuner/cc/Cea708Parser.java
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-10-09 19:19:21 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-10-09 19:19:21 +0000
commit411c4a576a92253a386784dddb646a2671b5d6f9 (patch)
treed31e2adc1f9cce4f27ca07d30bee921032e33a3c /src/com/android/tv/tuner/cc/Cea708Parser.java
parentbc7f430decab0bc34a533811efe457d4615f28aa (diff)
parentbb2e798ef4d546dd54cd9e95796403062b860c15 (diff)
downloadTV-411c4a576a92253a386784dddb646a2671b5d6f9.tar.gz
Change-Id: I06099c50eb5f4c5791fab1e6055cca20fb367c6d
Diffstat (limited to 'src/com/android/tv/tuner/cc/Cea708Parser.java')
-rw-r--r--src/com/android/tv/tuner/cc/Cea708Parser.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/com/android/tv/tuner/cc/Cea708Parser.java b/src/com/android/tv/tuner/cc/Cea708Parser.java
index 92ab0620..d0f6cf11 100644
--- a/src/com/android/tv/tuner/cc/Cea708Parser.java
+++ b/src/com/android/tv/tuner/cc/Cea708Parser.java
@@ -140,6 +140,7 @@ public class Cea708Parser {
private int mCommand = 0;
private int mListenServiceNumber = 0;
private boolean mDtvCcPacking = false;
+ private boolean mFirstServiceNumberDiscovered;
// Assign a dummy listener in order to avoid null checks.
private OnCea708ParserListener mListener = new OnCea708ParserListener() {
@@ -208,6 +209,15 @@ public class Cea708Parser {
}
}
+ public void clear() {
+ mDtvCcPacket.clear();
+ mCcPackets.clear();
+ mBuffer.setLength(0);
+ mDiscoveredNumBytes.clear();
+ mCommand = 0;
+ mDtvCcPacking = false;
+ }
+
public void setListenServiceNumber(int serviceNumber) {
mListenServiceNumber = serviceNumber;
}
@@ -332,12 +342,14 @@ public class Cea708Parser {
mDiscoveredNumBytes.put(
serviceNumber, blockSize + mDiscoveredNumBytes.get(serviceNumber, 0));
}
- if (mLastDiscoveryLaunchedMs + DISCOVERY_PERIOD_MS < SystemClock.elapsedRealtime()) {
+ if (mLastDiscoveryLaunchedMs + DISCOVERY_PERIOD_MS < SystemClock.elapsedRealtime()
+ || !mFirstServiceNumberDiscovered) {
for (int i = 0; i < mDiscoveredNumBytes.size(); ++i) {
int discoveredNumBytes = mDiscoveredNumBytes.valueAt(i);
if (discoveredNumBytes >= DISCOVERY_NUM_BYTES_THRESHOLD) {
int discoveredServiceNumber = mDiscoveredNumBytes.keyAt(i);
mListener.discoverServiceNumber(discoveredServiceNumber);
+ mFirstServiceNumberDiscovered = true;
}
}
mDiscoveredNumBytes.clear();