- FFmpegAudioStream (std::string n, int i, int f, int c)
- : name (n)
- , id (i)
- , frame_rate (f)
+ FFmpegStream (std::string n, int i)
+ : name (n)
+ , _id (i)
+ {}
+
+ FFmpegStream (cxml::ConstNodePtr);
+
+ void as_xml (xmlpp::Node *) const;
+
+ /** @param c An AVFormatContext.
+ * @param index A stream index within the AVFormatContext.
+ * @return true if this FFmpegStream uses the given stream index.
+ */
+ bool uses_index (AVFormatContext const * c, int index) const;
+ AVStream* stream (AVFormatContext const * c) const;
+
+ std::string technical_summary () const {
+ return "id " + boost::lexical_cast<std::string> (_id);
+ }
+
+ std::string identifier () const {
+ return boost::lexical_cast<std::string> (_id);
+ }
+
+ std::string name;
+
+ friend bool operator== (FFmpegStream const & a, FFmpegStream const & b);
+ friend bool operator!= (FFmpegStream const & a, FFmpegStream const & b);
+
+private:
+ int _id;
+};
+
+class FFmpegAudioStream : public FFmpegStream
+{
+public:
+ FFmpegAudioStream (std::string n, int i, int f, int c)
+ : FFmpegStream (n, i)
+ , frame_rate (f)