xbmc
InputStreamMultiSource.h
1 /*
2  * Copyright (C) 2005-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "DVDInputStream.h"
12 #include "InputStreamMultiStreams.h"
13 
14 #include <string>
15 #include <vector>
16 
17 class IVideoPlayer;
18 
20 {
21 
22 public:
23  CInputStreamMultiSource(IVideoPlayer* pPlayer, const CFileItem& fileitem, const std::vector<std::string>& filenames);
24  ~CInputStreamMultiSource() override;
25 
26  void Abort() override;
27  void Close() override;
28  BitstreamStats GetBitstreamStats() const override ;
29  int GetBlockSize() override;
30  bool GetCacheStatus(XFILE::SCacheStatus *status) override;
31  int64_t GetLength() override;
32  bool IsEOF() override;
33  CDVDInputStream::ENextStream NextStream() override;
34  bool Open() override;
35  int Read(uint8_t* buf, int buf_size) override;
36  int64_t Seek(int64_t offset, int whence) override;
37  void SetReadRate(uint32_t rate) override;
38 
39 protected:
40  IVideoPlayer* m_pPlayer;
41  std::vector<std::string> m_filenames;
42 };
Definition: IVideoPlayer.h:28
Definition: InputStreamMultiStreams.h:19
Definition: BitstreamStats.h:13
bool GetCacheStatus(XFILE::SCacheStatus *status) override
Get the cache status.
Definition: InputStreamMultiSource.cpp:51
Definition: IFileTypes.h:49
void SetReadRate(uint32_t rate) override
Indicate expected read rate in bytes per second. This could be used to throttle caching rate...
Definition: InputStreamMultiSource.cpp:137
Definition: InputStreamMultiSource.h:19
Represents a file on a share.
Definition: FileItem.h:102