kodi
DVDFileInfo.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 <memory>
12 #include <string>
13 #include <vector>
14 
15 class CFileItem;
16 class CDVDDemux;
17 class CStreamDetails;
19 class CDVDInputStream;
20 class CTexture;
21 class CTextureDetails;
22 
24 {
25 public:
26  static std::unique_ptr<CTexture> ExtractThumbToTexture(const CFileItem& fileItem,
27  int chapterNumber = 0);
28 
32  static bool CanExtract(const CFileItem& fileItem);
33 
34  // Probe the files streams and store the info in the VideoInfoTag
35  static bool GetFileStreamDetails(CFileItem* pItem);
36 
37  static bool GetFileDuration(const std::string& path, int& duration);
38 
39 private:
40  static bool DemuxerToStreamDetails(const std::shared_ptr<CDVDInputStream>& pInputStream,
41  CDVDDemux* pDemux,
42  CStreamDetails& details,
43  const std::string& path = "");
44 
48  static bool DemuxerToStreamDetails(const std::shared_ptr<CDVDInputStream>& pInputStream,
49  CDVDDemux* pDemuxer,
50  const std::vector<CStreamDetailSubtitle>& subs,
51  CStreamDetails& details);
52 
56  static bool AddExternalSubtitleToDetails(const std::string &path, CStreamDetails &details, const std::string& filename, const std::string& subfilename = "");
57 
62  static void ProcessExternalSubtitles(CFileItem* item);
63 };
Definition: DVDDemux.h:221
Definition: DVDInputStream.h:50
Simple class for passing texture detail around.
Definition: TextureCacheJob.h:26
Definition: StreamDetails.h:78
Definition: StreamDetails.h:92
Definition: DVDFileInfo.h:23
static bool GetFileStreamDetails(CFileItem *pItem)
Open the item pointed to by pItem and extract streamdetails.
Definition: DVDFileInfo.cpp:284
Base texture class, subclasses of which depend on the render spec (DX, GL etc.)
Definition: Texture.h:34
static bool CanExtract(const CFileItem &fileItem)
Can a thumbnail image and file stream details be extracted from this file item?
Definition: DVDFileInfo.cpp:253
Represents a file on a share.
Definition: FileItem.h:102