xine-lib  1.2.10
flac_demuxer.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2018 the xine project
3  *
4  * This file is part of xine, a free video player.
5  *
6  * xine is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * xine is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
19  *
20  */
21 
22 #ifndef XINE_FLAC_DEMUXER_H
23 #define XINE_FLAC_DEMUXER_H
24 
25 #include <xine.h>
26 
27 void *demux_flac_init_class (xine_t *xine, const void *data);
28 
29 #endif /* XINE_FLAC_DEMUXER_H */
xine_s
Definition: xine_internal.h:80
buf_element_s::size
int32_t size
Definition: buffer.h:343
xine_stream_s::xine
xine_t * xine
Definition: xine_internal.h:126
flac_decoder_s::pts
int64_t pts
Definition: flac_decoder.c:56
flac_decoder_s::buf
unsigned char * buf
Definition: flac_decoder.c:62
input_avio_seek
static off_t input_avio_seek(input_plugin_t *this_gen, off_t offset, int origin)
Definition: input_avio.c:155
audio_buffer_s::num_frames
int num_frames
Definition: audio_out.h:150
INPUT_OPTIONAL_SUCCESS
#define INPUT_OPTIONAL_SUCCESS
Definition: input_plugin.h:364
xine_stream_s
Definition: xine_internal.h:123
demux_flac_s::stream
xine_stream_t * stream
Definition: flac_demuxer.c:68
flac_read_callback
static FLAC__SeekableStreamDecoderReadStatus flac_read_callback(const FLAC__SeekableStreamDecoder *decoder, FLAC__byte buffer[], unsigned *bytes, void *client_data)
Definition: flac_demuxer.c:97
input_avio_get_capabilities
static uint32_t input_avio_get_capabilities(input_plugin_t *this_gen)
Definition: input_avio.c:114
flac_read_callback
static FLAC__StreamDecoderReadStatus flac_read_callback(const FLAC__StreamDecoder *decoder, FLAC__byte buffer[], unsigned *bytes, void *client_data)
Definition: flac_decoder.c:77
demux_flac_dispose
static void demux_flac_dispose(demux_plugin_t *this_gen)
Definition: flac_demuxer.c:457
BUF_FLAG_FRAME_END
#define BUF_FLAG_FRAME_END
Definition: buffer.h:371
xineutils.h
input_plugin_s::get_current_pos
off_t(* get_current_pos)(input_plugin_t *this_gen)
Definition: input_plugin.h:157
audio_types
static const uint32_t audio_types[]
Definition: flac_decoder.c:427
once_control
pthread_once_t once_control
Definition: ffmpeg_decoder.c:42
input_avio_read
static off_t input_avio_read(input_plugin_t *this_gen, void *buf_gen, off_t len)
Definition: input_avio.c:66
BUF_FLAG_HEADER
#define BUF_FLAG_HEADER
Definition: buffer.h:375
demux_flac_send_chunk
static int demux_flac_send_chunk(demux_plugin_t *this_gen)
Definition: flac_demuxer.c:348
INPUT_OPTIONAL_DATA_pb
#define INPUT_OPTIONAL_DATA_pb
Definition: ffmpeg_decoder.h:60
input_avio_get_instance
static input_plugin_t * input_avio_get_instance(input_class_t *cls_gen, xine_stream_t *stream, const char *mrl)
Definition: input_avio.c:296
audio_decoder_s
Definition: audio_decoder.h:73
XINE_STREAM_INFO_HAS_VIDEO
#define XINE_STREAM_INFO_HAS_VIDEO
Definition: xine.h:1023
xine_fast_memcpy
void *(* xine_fast_memcpy)(void *to, const void *from, size_t len)
Definition: memcpy.c:60
flac_decoder_s::buf_size
size_t buf_size
Definition: flac_decoder.c:63
extra_info_s::input_time
int input_time
Definition: buffer.h:322
demux_flac_s::status
int status
Definition: flac_demuxer.c:75
buf_element_s::decoder_info
uint32_t decoder_info[5]
Definition: buffer.h:353
DEMUX_OK
#define DEMUX_OK
Definition: demux.h:33
LOG_MODULE
#define LOG_MODULE
Definition: input_avio.c:33
input_avio_get_blocksize
static uint32_t input_avio_get_blocksize(input_plugin_t *this_gen)
Definition: input_avio.c:140
open_plugin
static demux_plugin_t * open_plugin(demux_class_t *class_gen, xine_stream_t *stream, input_plugin_t *input)
Definition: flac_demuxer.c:575
PLUGIN_AUDIO_DECODER
#define PLUGIN_AUDIO_DECODER
Definition: xine_plugin.h:32
demux_flac_seek
static int demux_flac_seek(demux_plugin_t *this_gen, off_t start_pos, int start_time, int playing)
Definition: flac_demuxer.c:484
_x_mrl_remove_auth
char * _x_mrl_remove_auth(const char *mrl_in)
Definition: xine.c:1435
flac_write_callback
static FLAC__StreamDecoderWriteStatus flac_write_callback(const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 *const buffer[], void *client_data)
Definition: flac_decoder.c:117
BUF_AUDIO_FLAC
#define BUF_AUDIO_FLAC
Definition: buffer.h:253
_x_demux_control_start
void _x_demux_control_start(xine_stream_t *s)
Definition: demux.c:256
_x_meta_info_set
void _x_meta_info_set(xine_stream_t *s, int info, const char *str)
Definition: info_helper.c:321
input_class_s
Definition: input_plugin.h:38
audio_buffer_s::mem_size
int mem_size
Definition: audio_out.h:149
audio_buffer_s
Definition: audio_out.h:144
demux_flac_get_status
static int demux_flac_get_status(demux_plugin_t *this_gen)
Definition: flac_demuxer.c:474
demux_flac_s::channels
uint64_t channels
Definition: flac_demuxer.c:87
dec_info_audio
static const decoder_info_t dec_info_audio
Definition: flac_decoder.c:431
init_once_routine
void init_once_routine(void)
Definition: ffmpeg_decoder.c:45
demux_flac_s::data_size
off_t data_size
Definition: flac_demuxer.c:80
demux_flac_send_headers
static void demux_flac_send_headers(demux_plugin_t *this_gen)
Definition: flac_demuxer.c:423
flac_seek_callback
static FLAC__SeekableStreamDecoderSeekStatus flac_seek_callback(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data)
Definition: flac_demuxer.c:157
lprintf
#define lprintf(...)
Definition: xineutils.h:620
flac_demuxer.h
audio_out.h
extra_info_s::input_normpos
int input_normpos
Definition: buffer.h:319
flac_metadata_callback
static void flac_metadata_callback(const FLAC__SeekableStreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data)
Definition: flac_demuxer.c:288
is_avio_supported_protocol
static int is_avio_supported_protocol(xine_t *xine, const char *mrl)
Definition: input_avio.c:268
audio_buffer_s::mem
int16_t * mem
Definition: audio_out.h:148
flac_decode_data
static void flac_decode_data(audio_decoder_t *this_gen, buf_element_t *buf)
Definition: flac_decoder.c:264
demux_flac_get_optional_data
static int demux_flac_get_optional_data(demux_plugin_t *this_gen, void *data, int dtype)
Definition: flac_demuxer.c:564
XINE_STREAM_INFO_AUDIO_SAMPLERATE
#define XINE_STREAM_INFO_AUDIO_SAMPLERATE
Definition: xine.h:1018
METHOD_EXPLICIT
#define METHOD_EXPLICIT
Definition: demux.h:41
DEMUX_CAP_NOCAP
#define DEMUX_CAP_NOCAP
Definition: demux.h:189
buf_element_s::pts
int64_t pts
Definition: buffer.h:345
xine_stream_s::content_detection_method
int content_detection_method
Definition: xine_internal.h:168
flac_decoder_s::buf_pos
size_t buf_pos
Definition: flac_decoder.c:64
demux_flac_get_capabilities
static uint32_t demux_flac_get_capabilities(demux_plugin_t *this_gen)
Definition: flac_demuxer.c:555
input_plugin_s::get_length
off_t(* get_length)(input_plugin_t *this_gen)
Definition: input_plugin.h:185
DEMUX_OPTIONAL_UNSUPPORTED
#define DEMUX_OPTIONAL_UNSUPPORTED
Definition: demux.h:236
NULL
NULL
Definition: xine_plugin.c:78
flac_decoder_s::output_open
int output_open
Definition: flac_decoder.c:67
flac_decoder_s::audio_decoder
audio_decoder_t audio_decoder
Definition: flac_decoder.c:54
XINE_VERBOSITY_LOG
#define XINE_VERBOSITY_LOG
Definition: xine.h:425
audio_decoder_class_s
Definition: audio_decoder.h:40
audio_decoder_class_s::open_plugin
audio_decoder_t *(* open_plugin)(audio_decoder_class_t *this_gen, xine_stream_t *stream)
Definition: audio_decoder.h:45
_x_freep_wipe_string
static void _x_freep_wipe_string(char **pp)
Definition: xineutils.h:269
fifo_buffer_s
Definition: buffer.h:581
demux_flac_s::bits_per_sample
uint64_t bits_per_sample
Definition: flac_demuxer.c:86
INPUT_AVIO_ID
#define INPUT_AVIO_ID
Definition: ffmpeg_decoder.h:64
_x_freep
static void _x_freep(void *ptr)
Definition: xineutils.h:263
flac_decoder_t
struct flac_decoder_s flac_decoder_t
INPUT_OPTIONAL_DATA_PREVIEW
#define INPUT_OPTIONAL_DATA_PREVIEW
Definition: input_plugin.h:368
INPUT_CAP_SEEKABLE
#define INPUT_CAP_SEEKABLE
Definition: input_plugin.h:250
avio_input_plugin_t::preview_size
size_t preview_size
Definition: input_avio.c:61
_x_demux_read_header
int _x_demux_read_header(input_plugin_t *input, void *buffer, off_t size)
Definition: demux.c:618
demux_flac_s::demux_plugin
demux_plugin_t demux_plugin
Definition: flac_demuxer.c:66
decoder_info_t
Definition: xine_plugin.h:77
_x_stream_info_set
void _x_stream_info_set(xine_stream_t *s, int info, int value)
Definition: info_helper.c:79
XINE_VERSION_CODE
#define XINE_VERSION_CODE
Definition: xine_internal.h:57
init_plugin
static void * init_plugin(xine_t *xine, const void *data)
Definition: flac_decoder.c:415
flac_error_callback
static void flac_error_callback(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data)
Definition: flac_decoder.c:211
metadata
static const struct ogg_meta metadata[]
flac_decoder_s::flac_decoder
FLAC__StreamDecoder * flac_decoder
Definition: flac_decoder.c:60
input_plugin_s
Definition: input_plugin.h:90
input_avio_get_length
static off_t input_avio_get_length(input_plugin_t *this_gen)
Definition: input_avio.c:104
flac_decoder_s
Definition: flac_decoder.c:53
demux_flac_s::sample_rate
uint64_t sample_rate
Definition: flac_demuxer.c:88
input_class_s::get_instance
input_plugin_t *(* get_instance)(input_class_t *this_gen, xine_stream_t *stream, const char *mrl)
Definition: input_plugin.h:44
PLUGIN_DEMUX
#define PLUGIN_DEMUX
Definition: xine_plugin.h:31
decoder_info_t::supported_types
const uint32_t * supported_types
Definition: xine_plugin.h:78
avio_input_plugin_t::curpos
off_t curpos
Definition: input_avio.c:58
flac_reset
static void flac_reset(audio_decoder_t *this_gen)
Definition: flac_decoder.c:242
input_plugin.h
XINE_STREAM_INFO_AUDIO_BITS
#define XINE_STREAM_INFO_AUDIO_BITS
Definition: xine.h:1017
demux_class_s::open_plugin
demux_plugin_t *(* open_plugin)(demux_class_t *this_gen, xine_stream_t *stream, input_plugin_t *input)
Definition: demux.h:51
input_avio_dispose
static void input_avio_dispose(input_plugin_t *this_gen)
Definition: input_avio.c:255
buf_element_s
Definition: buffer.h:337
demux_flac_t
struct demux_flac_s demux_flac_t
avio_input_plugin_t
Definition: input_avio.c:49
avio_input_plugin_t::input_plugin
input_plugin_t input_plugin
Definition: input_avio.c:50
flac_write_callback
static FLAC__StreamDecoderWriteStatus flac_write_callback(const FLAC__SeekableStreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 *const buffer[], void *client_data)
Definition: flac_demuxer.c:268
flac_eof_callback
static FLAC__bool flac_eof_callback(const FLAC__SeekableStreamDecoder *decoder, void *client_data)
Definition: flac_demuxer.c:244
audio_buffer_s::vpts
int64_t vpts
Definition: audio_out.h:152
input_avio_get_optional_data
static int input_avio_get_optional_data(input_plugin_t *this_gen, void *data, int data_type)
Definition: input_avio.c:206
demux_plugin_s
Definition: demux.h:96
demux_flac_t
Definition: demux_flac.c:58
XINE_VERBOSITY_DEBUG
#define XINE_VERBOSITY_DEBUG
Definition: xine.h:426
buffer.h
DEMUX_FINISHED
#define DEMUX_FINISHED
Definition: demux.h:34
INPUT_CAP_PREVIEW
#define INPUT_CAP_PREVIEW
Definition: input_plugin.h:287
_x_ao_channels2mode
int _x_ao_channels2mode(int channels)
Definition: audio_out.c:1098
BUF_FLAG_STDHEADER
#define BUF_FLAG_STDHEADER
Definition: buffer.h:401
XINE_STREAM_INFO_HAS_AUDIO
#define XINE_STREAM_INFO_HAS_AUDIO
Definition: xine.h:1024
METHOD_BY_CONTENT
#define METHOD_BY_CONTENT
Definition: demux.h:39
flac_metadata_callback
static void flac_metadata_callback(const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data)
Definition: flac_decoder.c:183
flac_decoder_s::stream
xine_stream_t * stream
Definition: flac_decoder.c:58
avio_input_plugin_t::mrl
char * mrl
Definition: input_avio.c:54
mode
enable disable number of frames of telecine pattern sync required before mode change make frames evenly spaced for film mode(24 fps)" ) PARAM_ITEM( POST_PARAM_TYPE_BOOL
buf_element_s::free_buffer
void(* free_buffer)(buf_element_t *buf)
Definition: buffer.h:357
input_avio_get_current_pos
static off_t input_avio_get_current_pos(input_plugin_t *this_gen)
Definition: input_avio.c:145
demux_class_s
Definition: demux.h:46
demux.h
flac_discontinuity
static void flac_discontinuity(audio_decoder_t *this_gen)
Definition: flac_decoder.c:254
flac_decoder_s::min_size
size_t min_size
Definition: flac_decoder.c:65
flac_tell_callback
static FLAC__SeekableStreamDecoderTellStatus flac_tell_callback(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data)
Definition: flac_demuxer.c:190
input_avio_read_block
static buf_element_t * input_avio_read_block(input_plugin_t *this_gen, fifo_buffer_t *fifo, off_t todo)
Definition: input_avio.c:97
buf_element_s::content
unsigned char * content
Definition: buffer.h:341
_x_demux_control_newpts
void _x_demux_control_newpts(xine_stream_t *s, int64_t pts, uint32_t flags)
Definition: demux.c:126
XINE_STREAM_INFO_AUDIO_CHANNELS
#define XINE_STREAM_INFO_AUDIO_CHANNELS
Definition: xine.h:1016
PLUGIN_NONE
#define PLUGIN_NONE
Definition: xine_plugin.h:29
input_avio_seek_time
static off_t input_avio_seek_time(input_plugin_t *this_gen, int time_offset, int origin)
Definition: input_avio.c:124
demux_flac_s::flac_decoder
FLAC__SeekableStreamDecoder * flac_decoder
Definition: flac_demuxer.c:83
INPUT_OPTIONAL_UNSUPPORTED
#define INPUT_OPTIONAL_UNSUPPORTED
Definition: input_plugin.h:363
demux_flac_s::audio_fifo
fifo_buffer_t * audio_fifo
Definition: flac_demuxer.c:70
ffmpeg_decoder.h
xine_internal.h
avio_input_plugin_t::stream
xine_stream_t * stream
Definition: input_avio.c:52
demux_flac_init_class
void * demux_flac_init_class(xine_t *xine, const void *data)
Definition: flac_demuxer.c:723
EXPORTED
const plugin_info_t xine_plugin_info[] EXPORTED
Definition: flac_decoder.c:436
buf_element_s::decoder_flags
uint32_t decoder_flags
Definition: buffer.h:350
demux_flac_s::video_fifo
fifo_buffer_t * video_fifo
Definition: flac_demuxer.c:71
config.h
demux_flac_s
Definition: flac_demuxer.c:65
init_avio_input_plugin
void * init_avio_input_plugin(xine_t *xine, const void *data)
Definition: input_avio.c:348
BUF_FLAG_SEEK
#define BUF_FLAG_SEEK
Definition: buffer.h:392
input_avio_open
static int input_avio_open(input_plugin_t *this_gen)
Definition: input_avio.c:224
flac_length_callback
static FLAC__SeekableStreamDecoderLengthStatus flac_length_callback(const FLAC__SeekableStreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data)
Definition: flac_demuxer.c:218
demux_flac_init_class
void * demux_flac_init_class(xine_t *xine, const void *data)
Definition: flac_demuxer.c:723
buf_element_s::max_size
int32_t max_size
Definition: buffer.h:344
buf_element_s::type
uint32_t type
Definition: buffer.h:362
avio_input_plugin_t::pb
AVIOContext * pb
Definition: input_avio.c:56
demux_flac_s::total_samples
uint64_t total_samples
Definition: flac_demuxer.c:85
input_info_t
Definition: xine_plugin.h:93
demux_flac_s::seek_flag
int seek_flag
Definition: flac_demuxer.c:77
input_avio_get_mrl
static const char * input_avio_get_mrl(input_plugin_t *this_gen)
Definition: input_avio.c:200
audio_buffer_s::stream
xine_stream_t * stream
Definition: audio_out.h:159
flac_dispose
static void flac_dispose(audio_decoder_t *this_gen)
Definition: flac_decoder.c:336
input
static int input(void)
Definition: goomsl_lex.c:1495
MAX_PREVIEW_SIZE
#define MAX_PREVIEW_SIZE
Definition: input_plugin.h:388
flac_error_callback
static void flac_error_callback(const FLAC__SeekableStreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data)
Definition: flac_demuxer.c:316
input_info_avio
const input_info_t input_info_avio
Definition: input_avio.c:369
_x_demux_flush_engine
void _x_demux_flush_engine(xine_stream_t *s)
Definition: demux.c:61
buf_element_s::extra_info
extra_info_t * extra_info
Definition: buffer.h:348
demux_flac_s::input
input_plugin_t * input
Definition: flac_demuxer.c:73
METHOD_BY_MRL
#define METHOD_BY_MRL
Definition: demux.h:40
demux_flac_s::length_in_msec
uint64_t length_in_msec
Definition: flac_demuxer.c:89
avio_input_plugin_t::mrl_private
char * mrl_private
Definition: input_avio.c:55
xine.h
plugin_info_t
Definition: xine_plugin.h:55
bits
#define bits
xprintf
#define xprintf(xine, verbose,...)
Definition: xineutils.h:664
demux_flac_get_stream_length
static int demux_flac_get_stream_length(demux_plugin_t *this_gen)
Definition: flac_demuxer.c:543
demux_flac_s::data_start
off_t data_start
Definition: flac_demuxer.c:79
N_
#define N_(String)
Definition: xineintl.h:47
open_plugin
static audio_decoder_t * open_plugin(audio_decoder_class_t *class_gen, xine_stream_t *stream)
Definition: flac_decoder.c:353
XINE_META_INFO_TITLE
#define XINE_META_INFO_TITLE
Definition: xine.h:1062