source: SHVCSoftware/branches/SHM-dev/source/App/TAppDecoder/TAppDecCfg.h @ 930

Last change on this file since 930 was 924, checked in by seregin, 10 years ago

in order to generate the metadata related to conformance bitstreams, patch was provided by Ramasubramonian, Adarsh Krishnan <aramasub@…>

  • Property svn:eol-style set to native
File size: 5.8 KB
Line 
1/* The copyright in this software is being made available under the BSD
2 * License, included below. This software may be subject to other third party
3 * and contributor rights, including patent rights, and no such rights are
4 * granted under this license. 
5 *
6 * Copyright (c) 2010-2014, ITU/ISO/IEC
7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions are met:
11 *
12 *  * Redistributions of source code must retain the above copyright notice,
13 *    this list of conditions and the following disclaimer.
14 *  * Redistributions in binary form must reproduce the above copyright notice,
15 *    this list of conditions and the following disclaimer in the documentation
16 *    and/or other materials provided with the distribution.
17 *  * Neither the name of the ITU/ISO/IEC nor the names of its contributors may
18 *    be used to endorse or promote products derived from this software without
19 *    specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
25 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
31 * THE POSSIBILITY OF SUCH DAMAGE.
32 */
33
34/** \file     TAppDecCfg.h
35    \brief    Decoder configuration class (header)
36*/
37
38#ifndef __TAPPDECCFG__
39#define __TAPPDECCFG__
40
41#if _MSC_VER > 1000
42#pragma once
43#endif // _MSC_VER > 1000
44
45#include "TLibCommon/CommonDef.h"
46#include <vector>
47
48//! \ingroup TAppDecoder
49//! \{
50
51// ====================================================================================================================
52// Class definition
53// ====================================================================================================================
54
55/// Decoder configuration class
56class TAppDecCfg
57{
58protected:
59  Char*         m_pchBitstreamFile;                   ///< input bitstream file name
60#if SVC_EXTENSION
61  Char*         m_pchReconFile [MAX_LAYERS];          ///< output reconstruction file name
62#else
63  Char*         m_pchReconFile;                       ///< output reconstruction file name
64#endif
65  Int           m_iSkipFrame;                         ///< counter for frames prior to the random access point to skip
66  Int           m_outputBitDepthY;                     ///< bit depth used for writing output (luma)
67  Int           m_outputBitDepthC;                     ///< bit depth used for writing output (chroma)t
68
69  Int           m_iMaxTemporalLayer;                  ///< maximum temporal layer to be decoded
70  Int           m_decodedPictureHashSEIEnabled;       ///< Checksum(3)/CRC(2)/MD5(1)/disable(0) acting on decoded picture hash SEI message
71#if Q0074_COLOUR_REMAPPING_SEI
72  Bool          m_colourRemapSEIEnabled;              ///< Enable the Colour Remapping Information SEI message if available (remapping decoded pictures)
73#endif
74
75#if SVC_EXTENSION
76  Int           m_tgtLayerId;                        ///< target layer ID
77#if AVC_BASE
78  Char*         m_pchBLReconFile;                     ///< input BL reconstruction file name
79#if !REPN_FORMAT_IN_VPS
80  Int           m_iBLSourceWidth;
81  Int           m_iBLSourceHeight;
82#endif
83#endif
84#endif
85
86  std::vector<Int> m_targetDecLayerIdSet;             ///< set of LayerIds to be included in the sub-bitstream extraction process.
87  Int           m_respectDefDispWindow;               ///< Only output content inside the default display window
88#if OUTPUT_LAYER_SET_INDEX
89  CommonDecoderParams             m_commonDecoderParams;
90#endif
91#if CONFORMANCE_BITSTREAM_MODE
92  Bool          m_confModeFlag;
93  std::string m_confPrefix;
94  std::string m_metadataFileName;
95  Bool m_metadataFileRefresh;
96  std::string   m_decodedYuvLayerFileName[63];
97  Bool          m_decodedYuvLayerRefresh[63];
98#endif
99
100public:
101  TAppDecCfg()
102  : m_pchBitstreamFile(NULL)
103#if !SVC_EXTENSION
104  , m_pchReconFile(NULL) 
105#endif
106  , m_iSkipFrame(0)
107  , m_outputBitDepthY(0)
108  , m_outputBitDepthC(0)
109  , m_iMaxTemporalLayer(-1)
110  , m_decodedPictureHashSEIEnabled(0)
111#if Q0074_COLOUR_REMAPPING_SEI
112  , m_colourRemapSEIEnabled(0)
113#endif
114#if SVC_EXTENSION
115  , m_tgtLayerId(0)
116#if AVC_BASE && !REPN_FORMAT_IN_VPS
117  , m_iBLSourceWidth(0)
118  , m_iBLSourceHeight(0)
119#endif
120#endif
121  , m_respectDefDispWindow(0)
122  {}
123  virtual ~TAppDecCfg() {}
124 
125  Bool  parseCfg        ( Int argc, Char* argv[] );   ///< initialize option class from configuration
126#if OUTPUT_LAYER_SET_INDEX
127  CommonDecoderParams* getCommonDecoderParams() {return &m_commonDecoderParams;}
128#endif
129#if CONFORMANCE_BITSTREAM_MODE
130  Bool const getConfModeFlag() { return m_confModeFlag;  }
131  std::string const getConfPrefix() { return m_confPrefix;}
132  std::string const getMetadataFileName() { return m_metadataFileName; }
133  Bool const getMetadataFileRefresh() {return m_metadataFileRefresh; }
134  Void setMetadataFileRefresh(Bool const x) {m_metadataFileRefresh = x; }
135  Void setDecodedYuvLayerFileName(Int layerId, std::string x) {  m_decodedYuvLayerFileName[layerId] = x; }
136  std::string const getDecodedYuvLayerFileName(Int layerId) {  return m_decodedYuvLayerFileName[layerId]; }
137  Bool const getDecodedYuvLayerRefresh(Int const layerId) {return m_decodedYuvLayerRefresh[layerId]; }
138  Void setDecodedYuvLayerRefresh(Int const layerId, Bool const x) {m_decodedYuvLayerRefresh[layerId] = x; }
139#endif
140};
141
142//! \}
143
144#endif
145
146
Note: See TracBrowser for help on using the repository browser.