|
|
|||
File indexing completed on 2026-09-26 09:04:00
0001 // Created by: Kirill GAVRILOV 0002 // Copyright (c) 2019 OPEN CASCADE SAS 0003 // 0004 // This file is part of Open CASCADE Technology software library. 0005 // 0006 // This library is free software; you can redistribute it and/or modify it under 0007 // the terms of the GNU Lesser General Public License version 2.1 as published 0008 // by the Free Software Foundation, with special exception defined in the file 0009 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 0010 // distribution for complete text of the license and disclaimer of any warranty. 0011 // 0012 // Alternatively, this file may be used under the terms of Open CASCADE 0013 // commercial license or contractual agreement. 0014 0015 #ifndef _Media_Scaler_HeaderFile 0016 #define _Media_Scaler_HeaderFile 0017 0018 #include <Media_Frame.hxx> 0019 0020 #include <Standard_Transient.hxx> 0021 #include <Standard_Type.hxx> 0022 #include <NCollection_Vec2.hxx> 0023 #include <Standard_TypeDef.hxx> 0024 0025 struct SwsContext; 0026 0027 //! SwsContext wrapper - tool performing image scaling and pixel format conversion. 0028 class Media_Scaler : public Standard_Transient 0029 { 0030 DEFINE_STANDARD_RTTIEXT(Media_Scaler, Standard_Transient) 0031 public: 0032 //! Empty constructor. 0033 Standard_EXPORT Media_Scaler(); 0034 0035 //! Destructor. 0036 Standard_EXPORT ~Media_Scaler() override; 0037 0038 //! sws_freeContext() wrapper. 0039 Standard_EXPORT void Release(); 0040 0041 //! sws_getContext() wrapper - creates conversion context. 0042 //! @param theSrcDims dimensions of input frame 0043 //! @param theSrcFormat pixel format (AVPixelFormat) of input frame 0044 //! @param theResDims dimensions of destination frame 0045 //! @param theResFormat pixel format (AVPixelFormat) of destination frame 0046 Standard_EXPORT bool Init(const NCollection_Vec2<int>& theSrcDims, 0047 int theSrcFormat, 0048 const NCollection_Vec2<int>& theResDims, 0049 int theResFormat); 0050 0051 //! Convert one frame to another. 0052 Standard_EXPORT bool Convert(const occ::handle<Media_Frame>& theSrc, 0053 const occ::handle<Media_Frame>& theRes); 0054 0055 //! Return TRUE if context was initialized. 0056 bool IsValid() const { return mySwsContext != nullptr; } 0057 0058 protected: 0059 SwsContext* mySwsContext; //!< conversion context 0060 NCollection_Vec2<int> mySrcDims; //!< dimensions of input frame 0061 int mySrcFormat; //!< pixel format (AVPixelFormat) of input frame 0062 NCollection_Vec2<int> myResDims; //!< dimensions of destination frame 0063 int myResFormat; //!< pixel format (AVPixelFormat) of destination frame 0064 }; 0065 0066 #endif // _Media_Scaler_HeaderFile
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|