kodi
IGameClientStream.h
1 /*
2  * Copyright (C) 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 struct game_stream_buffer;
12 struct game_stream_packet;
14 
15 namespace KODI
16 {
17 namespace RETRO
18 {
19 class IRetroPlayerStream;
20 }
21 
22 namespace GAME
23 {
24 
29 {
30 public:
31  virtual ~IGameClientStream() = default;
32 
40  virtual bool OpenStream(RETRO::IRetroPlayerStream* stream,
41  const game_stream_properties& properties) = 0;
42 
46  virtual void CloseStream() = 0;
47 
59  virtual bool GetBuffer(unsigned int width, unsigned int height, game_stream_buffer& buffer)
60  {
61  return false;
62  }
63 
69  virtual void ReleaseBuffer(game_stream_buffer& buffer) {}
70 
76  virtual void AddData(const game_stream_packet& packet) = 0;
77 };
78 
79 } // namespace GAME
80 } // namespace KODI
virtual bool GetBuffer(unsigned int width, unsigned int height, game_stream_buffer &buffer)
Get a buffer for zero-copy stream data.
Definition: IGameClientStream.h:59
Definition: IGameClientStream.h:28
Stream packet and ephemeral metadata
Definition: game.h:524
Definition: AudioDecoder.h:18
Stream buffers for hardware rendering and zero-copy support
Definition: game.h:501
Immutable stream metadata
Definition: game.h:476
virtual void ReleaseBuffer(game_stream_buffer &buffer)
Free an allocated buffer.
Definition: IGameClientStream.h:69
Definition: IRetroPlayerStream.h:30