Show info for ffmpeg levels (#824)
* Show info of ffmpeg level in level settings * added frame count to filebrowser close #811 close #812
This commit is contained in:
parent
3b0af2f782
commit
2b9d8f3cc8
4 changed files with 30 additions and 12 deletions
|
@ -3,6 +3,7 @@
|
||||||
#include "tiio_gif.h"
|
#include "tiio_gif.h"
|
||||||
#include "trasterimage.h"
|
#include "trasterimage.h"
|
||||||
#include "timageinfo.h"
|
#include "timageinfo.h"
|
||||||
|
#include "toonz/stage.h"
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
|
|
||||||
//===========================================================
|
//===========================================================
|
||||||
|
@ -151,8 +152,9 @@ class TImageReaderGif final : public TImageReader {
|
||||||
public:
|
public:
|
||||||
int m_frameIndex;
|
int m_frameIndex;
|
||||||
|
|
||||||
TImageReaderGif(const TFilePath &path, int index, TLevelReaderGif *lra)
|
TImageReaderGif(const TFilePath &path, int index, TLevelReaderGif *lra,
|
||||||
: TImageReader(path), m_lra(lra), m_frameIndex(index) {
|
TImageInfo *info)
|
||||||
|
: TImageReader(path), m_lra(lra), m_frameIndex(index), m_info(info) {
|
||||||
m_lra->addRef();
|
m_lra->addRef();
|
||||||
}
|
}
|
||||||
~TImageReaderGif() { m_lra->release(); }
|
~TImageReaderGif() { m_lra->release(); }
|
||||||
|
@ -160,9 +162,11 @@ public:
|
||||||
TImageP load() override { return m_lra->load(m_frameIndex); }
|
TImageP load() override { return m_lra->load(m_frameIndex); }
|
||||||
TDimension getSize() const { return m_lra->getSize(); }
|
TDimension getSize() const { return m_lra->getSize(); }
|
||||||
TRect getBBox() const { return TRect(); }
|
TRect getBBox() const { return TRect(); }
|
||||||
|
const TImageInfo *getImageInfo() const override { return m_info; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
TLevelReaderGif *m_lra;
|
TLevelReaderGif *m_lra;
|
||||||
|
TImageInfo *m_info;
|
||||||
|
|
||||||
// not implemented
|
// not implemented
|
||||||
TImageReaderGif(const TImageReaderGif &);
|
TImageReaderGif(const TImageReaderGif &);
|
||||||
|
@ -198,6 +202,8 @@ TLevelReaderGif::TLevelReaderGif(const TFilePath &path)
|
||||||
m_info->m_ly = m_ly;
|
m_info->m_ly = m_ly;
|
||||||
m_info->m_bitsPerSample = 8;
|
m_info->m_bitsPerSample = 8;
|
||||||
m_info->m_samplePerPixel = 4;
|
m_info->m_samplePerPixel = 4;
|
||||||
|
m_info->m_dpix = Stage::standardDpi;
|
||||||
|
m_info->m_dpiy = Stage::standardDpi;
|
||||||
}
|
}
|
||||||
//-----------------------------------------------------------
|
//-----------------------------------------------------------
|
||||||
|
|
||||||
|
@ -220,9 +226,8 @@ TImageReaderP TLevelReaderGif::getFrameReader(TFrameId fid) {
|
||||||
// if (IOError != 0)
|
// if (IOError != 0)
|
||||||
// throw TImageException(m_path, buildAVIExceptionString(IOError));
|
// throw TImageException(m_path, buildAVIExceptionString(IOError));
|
||||||
if (fid.getLetter() != 0) return TImageReaderP(0);
|
if (fid.getLetter() != 0) return TImageReaderP(0);
|
||||||
int index = fid.getNumber();
|
int index = fid.getNumber();
|
||||||
|
TImageReaderGif *irm = new TImageReaderGif(m_path, index, this, m_info);
|
||||||
TImageReaderGif *irm = new TImageReaderGif(m_path, index, this);
|
|
||||||
return TImageReaderP(irm);
|
return TImageReaderP(irm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include "trasterimage.h"
|
#include "trasterimage.h"
|
||||||
#include "timageinfo.h"
|
#include "timageinfo.h"
|
||||||
#include "tsound.h"
|
#include "tsound.h"
|
||||||
|
#include "toonz/stage.h"
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
|
|
||||||
//===========================================================
|
//===========================================================
|
||||||
|
@ -129,8 +130,9 @@ class TImageReaderMp4 final : public TImageReader {
|
||||||
public:
|
public:
|
||||||
int m_frameIndex;
|
int m_frameIndex;
|
||||||
|
|
||||||
TImageReaderMp4(const TFilePath &path, int index, TLevelReaderMp4 *lra)
|
TImageReaderMp4(const TFilePath &path, int index, TLevelReaderMp4 *lra,
|
||||||
: TImageReader(path), m_lra(lra), m_frameIndex(index) {
|
TImageInfo *info)
|
||||||
|
: TImageReader(path), m_lra(lra), m_frameIndex(index), m_info(info) {
|
||||||
m_lra->addRef();
|
m_lra->addRef();
|
||||||
}
|
}
|
||||||
~TImageReaderMp4() { m_lra->release(); }
|
~TImageReaderMp4() { m_lra->release(); }
|
||||||
|
@ -138,9 +140,11 @@ public:
|
||||||
TImageP load() override { return m_lra->load(m_frameIndex); }
|
TImageP load() override { return m_lra->load(m_frameIndex); }
|
||||||
TDimension getSize() const { return m_lra->getSize(); }
|
TDimension getSize() const { return m_lra->getSize(); }
|
||||||
TRect getBBox() const { return TRect(); }
|
TRect getBBox() const { return TRect(); }
|
||||||
|
const TImageInfo *getImageInfo() const override { return m_info; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
TLevelReaderMp4 *m_lra;
|
TLevelReaderMp4 *m_lra;
|
||||||
|
TImageInfo *m_info;
|
||||||
|
|
||||||
// not implemented
|
// not implemented
|
||||||
TImageReaderMp4(const TImageReaderMp4 &);
|
TImageReaderMp4(const TImageReaderMp4 &);
|
||||||
|
@ -173,6 +177,8 @@ TLevelReaderMp4::TLevelReaderMp4(const TFilePath &path) : TLevelReader(path) {
|
||||||
m_info->m_ly = m_ly;
|
m_info->m_ly = m_ly;
|
||||||
m_info->m_bitsPerSample = 8;
|
m_info->m_bitsPerSample = 8;
|
||||||
m_info->m_samplePerPixel = 4;
|
m_info->m_samplePerPixel = 4;
|
||||||
|
m_info->m_dpix = Stage::standardDpi;
|
||||||
|
m_info->m_dpiy = Stage::standardDpi;
|
||||||
}
|
}
|
||||||
//-----------------------------------------------------------
|
//-----------------------------------------------------------
|
||||||
|
|
||||||
|
@ -197,7 +203,7 @@ TImageReaderP TLevelReaderMp4::getFrameReader(TFrameId fid) {
|
||||||
if (fid.getLetter() != 0) return TImageReaderP(0);
|
if (fid.getLetter() != 0) return TImageReaderP(0);
|
||||||
int index = fid.getNumber();
|
int index = fid.getNumber();
|
||||||
|
|
||||||
TImageReaderMp4 *irm = new TImageReaderMp4(m_path, index, this);
|
TImageReaderMp4 *irm = new TImageReaderMp4(m_path, index, this, m_info);
|
||||||
return TImageReaderP(irm);
|
return TImageReaderP(irm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include "trasterimage.h"
|
#include "trasterimage.h"
|
||||||
#include "tsound.h"
|
#include "tsound.h"
|
||||||
#include "timageinfo.h"
|
#include "timageinfo.h"
|
||||||
|
#include "toonz/stage.h"
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
|
|
||||||
//===========================================================
|
//===========================================================
|
||||||
|
@ -133,8 +134,9 @@ class TImageReaderWebm final : public TImageReader {
|
||||||
public:
|
public:
|
||||||
int m_frameIndex;
|
int m_frameIndex;
|
||||||
|
|
||||||
TImageReaderWebm(const TFilePath &path, int index, TLevelReaderWebm *lra)
|
TImageReaderWebm(const TFilePath &path, int index, TLevelReaderWebm *lra,
|
||||||
: TImageReader(path), m_lra(lra), m_frameIndex(index) {
|
TImageInfo *info)
|
||||||
|
: TImageReader(path), m_lra(lra), m_frameIndex(index), m_info(info) {
|
||||||
m_lra->addRef();
|
m_lra->addRef();
|
||||||
}
|
}
|
||||||
~TImageReaderWebm() { m_lra->release(); }
|
~TImageReaderWebm() { m_lra->release(); }
|
||||||
|
@ -142,9 +144,11 @@ public:
|
||||||
TImageP load() override { return m_lra->load(m_frameIndex); }
|
TImageP load() override { return m_lra->load(m_frameIndex); }
|
||||||
TDimension getSize() const { return m_lra->getSize(); }
|
TDimension getSize() const { return m_lra->getSize(); }
|
||||||
TRect getBBox() const { return TRect(); }
|
TRect getBBox() const { return TRect(); }
|
||||||
|
const TImageInfo *getImageInfo() const override { return m_info; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
TLevelReaderWebm *m_lra;
|
TLevelReaderWebm *m_lra;
|
||||||
|
TImageInfo *m_info;
|
||||||
|
|
||||||
// not implemented
|
// not implemented
|
||||||
TImageReaderWebm(const TImageReaderWebm &);
|
TImageReaderWebm(const TImageReaderWebm &);
|
||||||
|
@ -177,6 +181,8 @@ TLevelReaderWebm::TLevelReaderWebm(const TFilePath &path) : TLevelReader(path) {
|
||||||
m_info->m_ly = m_ly;
|
m_info->m_ly = m_ly;
|
||||||
m_info->m_bitsPerSample = 8;
|
m_info->m_bitsPerSample = 8;
|
||||||
m_info->m_samplePerPixel = 4;
|
m_info->m_samplePerPixel = 4;
|
||||||
|
m_info->m_dpix = Stage::standardDpi;
|
||||||
|
m_info->m_dpiy = Stage::standardDpi;
|
||||||
}
|
}
|
||||||
//-----------------------------------------------------------
|
//-----------------------------------------------------------
|
||||||
|
|
||||||
|
@ -201,7 +207,7 @@ TImageReaderP TLevelReaderWebm::getFrameReader(TFrameId fid) {
|
||||||
if (fid.getLetter() != 0) return TImageReaderP(0);
|
if (fid.getLetter() != 0) return TImageReaderP(0);
|
||||||
int index = fid.getNumber();
|
int index = fid.getNumber();
|
||||||
|
|
||||||
TImageReaderWebm *irm = new TImageReaderWebm(m_path, index, this);
|
TImageReaderWebm *irm = new TImageReaderWebm(m_path, index, this, m_info);
|
||||||
return TImageReaderP(irm);
|
return TImageReaderP(irm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -148,7 +148,8 @@ QMutex levelFileMutex;
|
||||||
|
|
||||||
inline bool isMultipleFrameType(std::string type) {
|
inline bool isMultipleFrameType(std::string type) {
|
||||||
return (type == "tlv" || type == "tzl" || type == "pli" || type == "mov" ||
|
return (type == "tlv" || type == "tzl" || type == "pli" || type == "mov" ||
|
||||||
type == "avi" || type == "3gp");
|
type == "avi" || type == "3gp" || type == "gif" || type == "mp4" ||
|
||||||
|
type == "webm");
|
||||||
}
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
Loading…
Reference in a new issue