From 3d9b5186aa39150e53aef3bab09f4350f85cb885 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sat, 10 Nov 2012 13:19:09 +0000 Subject: More various AudioStream hacks. --- src/lib/decoder.h | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) (limited to 'src/lib/decoder.h') diff --git a/src/lib/decoder.h b/src/lib/decoder.h index 1807254db..d0e20b03a 100644 --- a/src/lib/decoder.h +++ b/src/lib/decoder.h @@ -61,12 +61,6 @@ public: virtual float frames_per_second () const = 0; /** @return native size in pixels */ virtual Size native_size () const = 0; - /** @return number of audio channels */ - virtual int audio_channels () const = 0; - /** @return audio sampling rate in Hz */ - virtual int audio_sample_rate () const = 0; - virtual int64_t audio_channel_layout () const = 0; - virtual bool has_subtitles () const = 0; virtual int time_base_numerator () const = 0; virtual int time_base_denominator () const = 0; @@ -82,12 +76,23 @@ public: return _video_frame; } - virtual std::vector audio_streams () const { - return std::vector (); + virtual void set_audio_stream (boost::optional); + virtual void set_subtitle_stream (boost::optional); + + boost::optional audio_stream () const { + return _audio_stream; + } + + boost::optional subtitle_stream () const { + return _subtitle_stream; + } + + std::vector audio_streams () const { + return _audio_streams; } - virtual std::vector subtitle_streams () const { - return std::vector (); + std::vector subtitle_streams () const { + return _subtitle_streams; } /** Emitted when a video frame is ready. @@ -116,13 +121,19 @@ protected: /** associated Job, or 0 */ Job* _job; + boost::optional _audio_stream; + boost::optional _subtitle_stream; + + std::vector _audio_streams; + std::vector _subtitle_streams; + private: void emit_video (boost::shared_ptr, boost::shared_ptr); void emit_audio (boost::shared_ptr); SourceFrame _video_frame; int64_t _audio_frame; - + std::list > _filter_graphs; DelayLine* _delay_line; -- cgit v1.2.3