MPD
0.20.15
decoder
plugins
FfmpegIo.hxx
Go to the documentation of this file.
1
/*
2
* Copyright 2003-2017 The Music Player Daemon Project
3
* http://www.musicpd.org
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License along
16
* with this program; if not, write to the Free Software Foundation, Inc.,
17
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
*/
19
20
#ifndef MPD_FFMPEG_IO_HXX
21
#define MPD_FFMPEG_IO_HXX
22
23
#include "
check.h
"
24
25
extern
"C"
{
26
#include "libavformat/avio.h"
27
}
28
29
#include <stdint.h>
30
31
class
DecoderClient
;
32
class
InputStream
;
33
34
struct
AvioStream
{
35
DecoderClient
*
const
client
;
36
InputStream
&
input
;
37
38
AVIOContext *
io
;
39
40
AvioStream
(
DecoderClient
*_client,
InputStream
&_input)
41
:
client
(_client),
input
(_input),
io
(nullptr) {}
42
43
~AvioStream
();
44
45
bool
Open
();
46
47
private
:
48
int
Read(
void
*buffer,
int
size);
49
int64_t Seek(int64_t pos,
int
whence);
50
51
static
int
_Read(
void
*opaque, uint8_t *buf,
int
size);
52
static
int64_t _Seek(
void
*opaque, int64_t pos,
int
whence);
53
};
54
55
#endif
check.h
DecoderClient
An interface between the decoder plugin and the MPD core.
Definition:
Client.hxx:39
AvioStream::client
DecoderClient *const client
Definition:
FfmpegIo.hxx:35
InputStream
Definition:
InputStream.hxx:36
AvioStream::input
InputStream & input
Definition:
FfmpegIo.hxx:36
AvioStream::AvioStream
AvioStream(DecoderClient *_client, InputStream &_input)
Definition:
FfmpegIo.hxx:40
AvioStream::io
AVIOContext * io
Definition:
FfmpegIo.hxx:38
AvioStream::~AvioStream
~AvioStream()
AvioStream
Definition:
FfmpegIo.hxx:34
AvioStream::Open
bool Open()
Generated on Thu Jan 11 2018 20:53:12 for MPD by
1.8.14