diff options
Diffstat (limited to 'src/picture_asset.cc')
| -rw-r--r-- | src/picture_asset.cc | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/picture_asset.cc b/src/picture_asset.cc index 84c187df..7b6dd293 100644 --- a/src/picture_asset.cc +++ b/src/picture_asset.cc @@ -72,11 +72,21 @@ PictureAsset::PictureAsset ( construct (sigc::bind (sigc::mem_fun (*this, &PictureAsset::path_from_list), files)); } -PictureAsset::PictureAsset (string directory, string mxf_name, int fps, int length, int width, int height) +PictureAsset::PictureAsset (string directory, string mxf_name, int fps, int length) : Asset (directory, mxf_name, 0, fps, length) - , _width (width) - , _height (height) { + ASDCP::JP2K::MXFReader reader; + if (ASDCP_FAILURE (reader.OpenRead (mxf_path().string().c_str()))) { + throw FileError ("could not open MXF file for reading", mxf_path().string()); + } + + ASDCP::JP2K::PictureDescriptor desc; + if (ASDCP_FAILURE (reader.FillPictureDescriptor (desc))) { + throw DCPReadError ("could not read video MXF information"); + } + + _width = desc.StoredWidth; + _height = desc.StoredHeight; } |
