LCOV - code coverage report
Current view: top level - media/libstagefright/frameworks/av/include/media/stagefright - DataSource.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 6 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 5 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * Copyright (C) 2009 The Android Open Source Project
       3             :  *
       4             :  * Licensed under the Apache License, Version 2.0 (the "License");
       5             :  * you may not use this file except in compliance with the License.
       6             :  * You may obtain a copy of the License at
       7             :  *
       8             :  *      http://www.apache.org/licenses/LICENSE-2.0
       9             :  *
      10             :  * Unless required by applicable law or agreed to in writing, software
      11             :  * distributed under the License is distributed on an "AS IS" BASIS,
      12             :  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      13             :  * See the License for the specific language governing permissions and
      14             :  * limitations under the License.
      15             :  */
      16             : 
      17             : #ifndef DATA_SOURCE_H_
      18             : 
      19             : #define DATA_SOURCE_H_
      20             : 
      21             : #include <sys/types.h>
      22             : 
      23             : #include <media/stagefright/MediaErrors.h>
      24             : #include <utils/RefBase.h>
      25             : 
      26             : namespace stagefright {
      27             : 
      28             : class String8;
      29             : 
      30             : class DataSource : public RefBase {
      31             : public:
      32             :     enum Flags {
      33             :         kWantsPrefetching      = 1,
      34             :         kStreamedFromLocalHost = 2,
      35             :         kIsCachingDataSource   = 4,
      36             :         kIsHTTPBasedSource     = 8,
      37             :     };
      38             : 
      39           0 :     DataSource() {}
      40             : 
      41             :     virtual status_t initCheck() const = 0;
      42             : 
      43             :     virtual ssize_t readAt(off64_t offset, void *data, size_t size) = 0;
      44             : 
      45             :     // Convenience methods:
      46             :     bool getUInt16(off64_t offset, uint16_t *x);
      47             :     bool getUInt24(off64_t offset, uint32_t *x); // 3 byte int, returned as a 32-bit int
      48             :     bool getUInt32(off64_t offset, uint32_t *x);
      49             :     bool getUInt64(off64_t offset, uint64_t *x);
      50             : 
      51             :     // May return ERROR_UNSUPPORTED.
      52             :     virtual status_t getSize(off64_t *size);
      53             : 
      54           0 :     virtual uint32_t flags() {
      55           0 :         return 0;
      56             :     }
      57             : 
      58           0 :     virtual status_t reconnectAtOffset(off64_t offset) {
      59           0 :         return ERROR_UNSUPPORTED;
      60             :     }
      61             : 
      62             : #if 0
      63             :     ////////////////////////////////////////////////////////////////////////////
      64             : 
      65             :     bool sniff(String8 *mimeType, float *confidence, sp<AMessage> *meta);
      66             : 
      67             :     // The sniffer can optionally fill in "meta" with an AMessage containing
      68             :     // a dictionary of values that helps the corresponding extractor initialize
      69             :     // its state without duplicating effort already exerted by the sniffer.
      70             :     typedef bool (*SnifferFunc)(
      71             :             const sp<DataSource> &source, String8 *mimeType,
      72             :             float *confidence, sp<AMessage> *meta);
      73             : 
      74             :     static void RegisterSniffer(SnifferFunc func);
      75             :     static void RegisterDefaultSniffers();
      76             : 
      77             :     // for DRM
      78             :     virtual sp<DecryptHandle> DrmInitialization(const char *mime = NULL) {
      79             :         return NULL;
      80             :     }
      81             :     virtual void getDrmInfo(sp<DecryptHandle> &handle, DrmManagerClient **client) {};
      82             : 
      83             :     virtual String8 getUri() {
      84             :         return String8();
      85             :     }
      86             : #endif
      87             : 
      88             :     virtual String8 getMIMEType() const;
      89             : 
      90             : protected:
      91           0 :     virtual ~DataSource() {}
      92             : 
      93             : private:
      94             :     DataSource(const DataSource &);
      95             :     DataSource &operator=(const DataSource &);
      96             : };
      97             : 
      98             : }  // namespace stagefright
      99             : 
     100             : #endif  // DATA_SOURCE_H_

Generated by: LCOV version 1.13