165fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko/*
265fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * Copyright (C) 2016 The Android Open Source Project
365fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko *
465fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * Licensed under the Apache License, Version 2.0 (the "License");
565fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * you may not use this file except in compliance with the License.
665fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * You may obtain a copy of the License at
765fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko *
865fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko *      http://www.apache.org/licenses/LICENSE-2.0
965fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko *
1065fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * Unless required by applicable law or agreed to in writing, software
1165fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * distributed under the License is distributed on an "AS IS" BASIS,
1265fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1365fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * See the License for the specific language governing permissions and
1465fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko * limitations under the License.
1565fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko */
1665fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko
1765fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalkopackage com.android.tv.tuner.source;
1865fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko
19d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalkoimport com.google.android.exoplayer.upstream.DataSource;
2065fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko
2165fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko/**
22d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * {@link DataSource} for MPEG-TS stream, which will be used by {@link TsExtractor}.
2365fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko */
24d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalkopublic abstract class TsDataSource implements DataSource {
2565fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko
2665fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko    /**
2765fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko     * Returns the number of bytes being buffered by {@link TsStreamer} so far.
2865fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko     *
2965fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko     * @return the buffered position
3065fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko     */
3165fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko    public long getBufferedPosition() {
3265fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko        return 0;
3365fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko    }
3465fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko
3565fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko    /**
36d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko     * Returns the offset position where the last {@link DataSource#read} read.
3765fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko     *
3865fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko     * @return the last read position
3965fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko     */
4065fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko    public long getLastReadPosition() {
4165fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko        return 0;
4265fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko    }
4365fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko
4465fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko    /**
4565fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko     * Shifts start position by the specified offset.
4665fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko     * Do not call this method when the class already provided MPEG-TS stream to the extractor.
4765fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko     * @param offset 0 <= offset <= buffered position
4865fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko     */
4965fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko    public void shiftStartPosition(long offset) { }
5065fda1eaa94968bb55d5ded10dcb0b3f37fb05f2Nick Chalko}