11abddd9f6225298066094e20a6c29061b6af4590Nick Chalko/*
21abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * Copyright (C) 2015 The Android Open Source Project
31abddd9f6225298066094e20a6c29061b6af4590Nick Chalko *
41abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * Licensed under the Apache License, Version 2.0 (the "License");
51abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * you may not use this file except in compliance with the License.
61abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * You may obtain a copy of the License at
71abddd9f6225298066094e20a6c29061b6af4590Nick Chalko *
81abddd9f6225298066094e20a6c29061b6af4590Nick Chalko *      http://www.apache.org/licenses/LICENSE-2.0
91abddd9f6225298066094e20a6c29061b6af4590Nick Chalko *
101abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * Unless required by applicable law or agreed to in writing, software
111abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * distributed under the License is distributed on an "AS IS" BASIS,
121abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * See the License for the specific language governing permissions and
141abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * limitations under the License.
151abddd9f6225298066094e20a6c29061b6af4590Nick Chalko */
161abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
171abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
1865fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalkopackage com.android.tv.tuner.data;
191abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
207cfa606ea363389dcd9d7e0f6962aaeecbe0ee5eTamas Berghammerimport com.android.tv.tuner.data.nano.Track.AtscAudioTrack;
217cfa606ea363389dcd9d7e0f6962aaeecbe0ee5eTamas Berghammerimport com.android.tv.tuner.data.nano.Track.AtscCaptionTrack;
221abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
231abddd9f6225298066094e20a6c29061b6af4590Nick Chalkoimport java.util.List;
241abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
251abddd9f6225298066094e20a6c29061b6af4590Nick Chalko/**
261abddd9f6225298066094e20a6c29061b6af4590Nick Chalko * Collection of MPEG PSI table items.
271abddd9f6225298066094e20a6c29061b6af4590Nick Chalko */
281abddd9f6225298066094e20a6c29061b6af4590Nick Chalkopublic class PsiData {
291abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
301abddd9f6225298066094e20a6c29061b6af4590Nick Chalko    private PsiData() {
311abddd9f6225298066094e20a6c29061b6af4590Nick Chalko    }
321abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
331abddd9f6225298066094e20a6c29061b6af4590Nick Chalko    public static class PatItem {
341abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        private final int mProgramNo;
351abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        private final int mPmtPid;
361abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
371abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        public PatItem(int programNo, int pmtPid) {
381abddd9f6225298066094e20a6c29061b6af4590Nick Chalko            mProgramNo = programNo;
391abddd9f6225298066094e20a6c29061b6af4590Nick Chalko            mPmtPid = pmtPid;
401abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        }
411abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
421abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        public int getProgramNo() {
431abddd9f6225298066094e20a6c29061b6af4590Nick Chalko            return mProgramNo;
441abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        }
451abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
461abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        public int getPmtPid() {
471abddd9f6225298066094e20a6c29061b6af4590Nick Chalko            return mPmtPid;
481abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        }
491abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
501abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        @Override
511abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        public String toString() {
521abddd9f6225298066094e20a6c29061b6af4590Nick Chalko            return String.format("Program No: %x PMT Pid: %x", mProgramNo, mPmtPid);
531abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        }
541abddd9f6225298066094e20a6c29061b6af4590Nick Chalko    }
551abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
561abddd9f6225298066094e20a6c29061b6af4590Nick Chalko    public static class PmtItem {
571abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        public static final int ES_PID_PCR = 0x100;
581abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
591abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        private final int mStreamType;
601abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        private final int mEsPid;
611abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        private final List<AtscAudioTrack> mAudioTracks;
621abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        private final List<AtscCaptionTrack> mCaptionTracks;
631abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
641abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        public PmtItem(int streamType, int esPid,
651abddd9f6225298066094e20a6c29061b6af4590Nick Chalko                List<AtscAudioTrack> audioTracks, List<AtscCaptionTrack> captionTracks) {
661abddd9f6225298066094e20a6c29061b6af4590Nick Chalko            mStreamType = streamType;
671abddd9f6225298066094e20a6c29061b6af4590Nick Chalko            mEsPid = esPid;
681abddd9f6225298066094e20a6c29061b6af4590Nick Chalko            mAudioTracks = audioTracks;
691abddd9f6225298066094e20a6c29061b6af4590Nick Chalko            mCaptionTracks = captionTracks;
701abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        }
711abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
721abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        public int getStreamType() {
731abddd9f6225298066094e20a6c29061b6af4590Nick Chalko            return mStreamType;
741abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        }
751abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
761abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        public int getEsPid() {
771abddd9f6225298066094e20a6c29061b6af4590Nick Chalko            return mEsPid;
781abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        }
791abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
801abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        public List<AtscAudioTrack> getAudioTracks() {
811abddd9f6225298066094e20a6c29061b6af4590Nick Chalko            return mAudioTracks;
821abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        }
831abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
841abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        public List<AtscCaptionTrack> getCaptionTracks() {
851abddd9f6225298066094e20a6c29061b6af4590Nick Chalko            return mCaptionTracks;
861abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        }
871abddd9f6225298066094e20a6c29061b6af4590Nick Chalko
881abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        @Override
891abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        public String toString() {
901abddd9f6225298066094e20a6c29061b6af4590Nick Chalko            return String.format("Stream Type: %x ES Pid: %x AudioTracks: %s CaptionTracks: %s",
911abddd9f6225298066094e20a6c29061b6af4590Nick Chalko                    mStreamType, mEsPid, mAudioTracks, mCaptionTracks);
921abddd9f6225298066094e20a6c29061b6af4590Nick Chalko        }
931abddd9f6225298066094e20a6c29061b6af4590Nick Chalko    }
941abddd9f6225298066094e20a6c29061b6af4590Nick Chalko}
95