19 virtual t_size set_stream_property(
const GUID & p_type,
t_size p_param1,
const void * p_param2,
t_size p_param2size) = 0;
24 virtual void get_info(
file_info & p_info) = 0;
27 virtual unsigned get_max_frame_dependency()=0;
29 virtual double get_max_frame_dependency_time()=0;
32 virtual void reset_after_seek()=0;
39 virtual bool analyze_first_frame_supported() = 0;
41 virtual void analyze_first_frame(
const void * p_buffer,
t_size p_bytes,
abort_callback & p_abort) = 0;
46 static const GUID owner_MP4,owner_matroska,owner_MP3,owner_MP2,owner_MP1,owner_MP4_ALAC,owner_ADTS,owner_ADIF,
owner_Ogg, owner_MP4_AMR, owner_MP4_AMR_WB, owner_MP4_AC3;
62 static const GUID property_samplerate,property_bitspersample,property_channels,property_byteorder,
property_signed,property_channelmask, property_bufferpadding, property_eventlogger, property_checkingintegrity, property_samples_per_frame;
88 void setEventLogger(event_logger::ptr logger);
89 void setCheckingIntegrity(
bool checkingIntegrity);
90 void setAllowDelayed(
bool bAllow =
true );
99 virtual void analyze_first_frame_ex(
const void * p_buffer,
t_size p_bytes,
t_size & p_bytes_processed,
abort_callback & p_abort) = 0;
107 virtual bool is_our_setup(
const GUID & p_owner,
t_size p_param1,
const void * p_param2,
t_size p_param2size) = 0;
119 return T::g_is_our_setup(p_owner,p_param1,p_param2,p_param2size);
122 assert(is_our_setup(p_owner,p_param1,p_param2,p_param2size));
124 instance->open(p_owner,p_decode,p_param1,p_param2,p_param2size,p_abort);
static const GUID property_ogg_query_sample_rate
Template implementing reference-counting features of service_base. Intended for dynamic instantiation...
static const GUID property_allow_delayed_output
static bool g_is_our_setup(const GUID &p_owner, t_size p_param1, const void *p_param2, t_size p_param2size)
Prototype of function that must be implemented by packet_decoder implementation but is not accessible...
uint32_t sample_rate_output
static const GUID property_mp4_esds
const void * codec_private
Interface to container of a chunk of audio data. See audio_chunk_impl for an implementation.
size_t codec_private_size
void open(const GUID &p_owner, bool p_decode, t_size p_param1, const void *p_param2, t_size p_param2size, abort_callback &p_abort)
Prototype of function that must be implemented by packet_decoder implementation but is not accessible...
Main interface class for information about some playable object.
Provides interface to decode various audio data types to PCM. Use packet_decoder_factory_t template t...
Base class for all service classes. Provides interfaces for reference counter and querying for differ...
void open(service_ptr_t< packet_decoder > &p_out, bool p_decode, const GUID &p_owner, t_size p_param1, const void *p_param2, t_size p_param2size, abort_callback &p_abort)
static const GUID owner_Ogg
static const GUID property_signed
Autopointer class to be used with all services. Manages reference counter calls behind-the-scenes.
bool is_our_setup(const GUID &p_owner, t_size p_param1, const void *p_param2, t_size p_param2size)