OSDN Git Service

Updated NvencC version.
[x264-launcher/x264-launcher.git] / src / encoder_abstract.h
index f51ca95..5953e51 100644 (file)
@@ -28,6 +28,7 @@ class QRegExp;
 template<class T> class QList;
 template <class T1, class T2> struct QPair;
 class AbstractSource;
+class ClipInfo;
 
 class AbstractEncoderInfo
 {
@@ -40,11 +41,19 @@ public:
        }
        RCType;
 
-       typedef QPair<QString, RCType> RCMode;
+       typedef enum _ArchBit
+       {
+               ARCH_TYPE_X86 = 0,
+               ARCH_TYPE_X64 = 1,
+       }
+       ArchBit;
+
+       typedef QPair<QString, RCType>  RCMode;
+       typedef QPair<QString, ArchBit> ArchId;
 
        virtual QString       getName(void) const = 0;
        virtual QString       getFullName(const quint32 &encArch, const quint32 &encVariant) const;
-       virtual QStringList   getArchitectures(void) const = 0;
+       virtual QList<ArchId> getArchitectures(void) const = 0;
        virtual QStringList   getVariants(void) const = 0;
        virtual QList<RCMode> getRCModes(void) const = 0;
        virtual QStringList   getProfiles(const quint32 &variant) const = 0;
@@ -54,9 +63,11 @@ public:
        virtual bool          isInputTypeSupported(const int format) const = 0;
        virtual QString       getBinaryPath(const SysinfoModel *sysinfo, const quint32 &encArch, const quint32 &encVariant) const = 0;
        virtual QStringList   getDependencies(const SysinfoModel *sysinfo, const quint32 &encArch, const quint32 &encVariant) const;
+       virtual QString       getHelpCommand(void) const = 0;
 
        //Utilities
        QString archToString   (const quint32 &index) const;
+       ArchBit archToType     (const quint32 &index) const;
        QString variantToString(const quint32 &index) const;
        QString rcModeToString (const quint32 &index) const;
        RCType  rcModeToType   (const quint32 &index) const;
@@ -68,15 +79,15 @@ public:
        AbstractEncoder(JobObject *jobObject, const OptionsModel *options, const SysinfoModel *const sysinfo, const PreferencesModel *const preferences, JobStatus &jobStatus, volatile bool *abort, volatile bool *pause, QSemaphore *semaphorePause, const QString &sourceFile, const QString &outputFile);
        virtual ~AbstractEncoder(void);
 
-       virtual bool runEncodingPass(AbstractSource* pipedSource, const QString outputFile, const unsigned int &frames, const int &pass = 0, const QString &passLogFile = QString());
+       virtual bool runEncodingPass(AbstractSource* pipedSource, const QString outputFile, const ClipInfo &clipInfo, const int &pass = 0, const QString &passLogFile = QString());
        
-       static const AbstractEncoderInfo& getEncoderInfo(void);
+       virtual const AbstractEncoderInfo& getEncoderInfo(void) const = 0;
 
 protected:
-       virtual void buildCommandLine(QStringList &cmdLine, const bool &usePipe, const unsigned int &frames, const QString &indexFile, const int &pass, const QString &passLogFile) = 0;
+       virtual void buildCommandLine(QStringList &cmdLine, const bool &usePipe, const ClipInfo &clipInfo, const QString &indexFile, const int &pass, const QString &passLogFile) = 0;
 
        virtual void runEncodingPass_init(QList<QRegExp*> &patterns) = 0;
-       virtual void runEncodingPass_parseLine(const QString &line, QList<QRegExp*> &patterns, const unsigned int &totalFrames, const int &pass, double &last_progress, double &size_estimate) = 0;
+       virtual void runEncodingPass_parseLine(const QString &line, QList<QRegExp*> &patterns, const ClipInfo &clipInfo, const int &pass, double &last_progress, double &size_estimate) = 0;
 
        static double estimateSize(const QString &fileName, const double &progress);
        static QString sizeToString(qint64 size);