/src/vlc/modules/codec/avcodec/avcommon.h
Line | Count | Source |
1 | | /***************************************************************************** |
2 | | * avcommon.h: common code for libav* |
3 | | ***************************************************************************** |
4 | | * Copyright (C) 2012 VLC authors and VideoLAN |
5 | | * |
6 | | * Authors: Rafaël Carré <funman@videolanorg> |
7 | | * |
8 | | * This program is free software; you can redistribute it and/or modify it |
9 | | * under the terms of the GNU Lesser General Public License as published by |
10 | | * the Free Software Foundation; either version 2.1 of the License, or |
11 | | * (at your option) any later version. |
12 | | * |
13 | | * This program is distributed in the hope that it will be useful, |
14 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | | * GNU Lesser General Public License for more details. |
17 | | * |
18 | | * You should have received a copy of the GNU Lesser General Public License |
19 | | * along with this program; if not, write to the Free Software Foundation, |
20 | | * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. |
21 | | *****************************************************************************/ |
22 | | |
23 | | #ifndef AVCOMMON_H |
24 | | #define AVCOMMON_H 1 |
25 | | |
26 | | #ifdef HAVE_CONFIG_H |
27 | | # include "config.h" |
28 | | #endif |
29 | | |
30 | | #include <vlc_avcodec.h> |
31 | | #include <vlc_configuration.h> |
32 | | #include <vlc_variables.h> |
33 | | #include <vlc_es.h> |
34 | | |
35 | | #include <limits.h> |
36 | | |
37 | | #include "avcommon_compat.h" |
38 | | |
39 | | # include <libavutil/avutil.h> |
40 | | # include <libavutil/dict.h> |
41 | | # include <libavutil/cpu.h> |
42 | | # include <libavutil/log.h> |
43 | | |
44 | 0 | #define VLC_TIME_BASE_Q (AVRational){1, CLOCK_FREQ} |
45 | | |
46 | | #define FROM_AVSCALE(x, scale) \ |
47 | 0 | av_rescale_q((x), (scale), VLC_TIME_BASE_Q) |
48 | | #define TO_AVSCALE(x, scale)\ |
49 | 0 | av_rescale_q((x), VLC_TIME_BASE_Q, (scale)) |
50 | | |
51 | | #if (CLOCK_FREQ == AV_TIME_BASE) |
52 | 70.9k | #define FROM_AV_TS_NZ(x) (x) |
53 | 2.01M | #define TO_AV_TS_NZ(x) (x) |
54 | | #else |
55 | | #define FROM_AV_TS_NZ(x) FROM_AVSCALE((x), AV_TIME_BASE_Q) |
56 | | #define TO_AV_TS_NZ(x) TO_AVSCALE((x), AV_TIME_BASE_Q) |
57 | | #endif |
58 | | |
59 | 70.9k | #define FROM_AV_TS(x) (FROM_AV_TS_NZ(x) + VLC_TICK_0) |
60 | 2.01M | #define TO_AV_TS(x) (TO_AV_TS_NZ((x) - VLC_TICK_0)) |
61 | | |
62 | | #define AV_OPTIONS_TEXT N_("Advanced options") |
63 | | #define AV_OPTIONS_LONGTEXT N_("Advanced options, in the form {opt=val,opt2=val2}.") |
64 | | |
65 | | #define AV_RESET_TS_TEXT N_("Reset timestamps") |
66 | | #define AV_RESET_TS_LONGTEXT N_("The muxed content will start near a 0 timestamp.") |
67 | | |
68 | | static inline void vlc_av_get_options(const char *psz_opts, AVDictionary** pp_dict) |
69 | 0 | { |
70 | 0 | config_chain_t *cfg = NULL; |
71 | 0 | config_ChainParseOptions(&cfg, psz_opts); |
72 | 0 | for (config_chain_t *item = cfg; item != NULL; item = item->p_next) { |
73 | 0 | av_dict_set(pp_dict, item->psz_name, item->psz_value, 0); |
74 | 0 | } |
75 | 0 | if (cfg) |
76 | 0 | config_ChainDestroy(cfg); |
77 | 0 | } Unexecuted instantiation: avcodec.c:vlc_av_get_options Unexecuted instantiation: encoder.c:vlc_av_get_options Unexecuted instantiation: fourcc.c:vlc_av_get_options Unexecuted instantiation: video.c:vlc_av_get_options Unexecuted instantiation: subtitle.c:vlc_av_get_options Unexecuted instantiation: audio.c:vlc_av_get_options |
78 | | |
79 | | static inline void vlc_init_avutil(vlc_object_t *obj) |
80 | 807k | { |
81 | 807k | int level = AV_LOG_QUIET; |
82 | | |
83 | 807k | int64_t verbose = var_InheritInteger(obj, "verbose"); |
84 | 807k | if (verbose >= 0) switch(verbose + VLC_MSG_ERR) { |
85 | 807k | case VLC_MSG_ERR: |
86 | 807k | level = AV_LOG_ERROR; |
87 | 807k | break; |
88 | 0 | case VLC_MSG_WARN: |
89 | 0 | level = AV_LOG_WARNING; |
90 | 0 | break; |
91 | 0 | case VLC_MSG_INFO: |
92 | 0 | level = AV_LOG_INFO; |
93 | 0 | break; |
94 | 0 | case VLC_MSG_DBG: |
95 | 0 | level = AV_LOG_VERBOSE; |
96 | 0 | break; |
97 | 0 | default: |
98 | 0 | level = AV_LOG_DEBUG; |
99 | 0 | break; |
100 | 807k | } |
101 | | |
102 | 807k | av_log_set_level(level); |
103 | | |
104 | 807k | msg_Dbg(obj, "CPU flags: 0x%08x", av_get_cpu_flags()); |
105 | 807k | } avcodec.c:vlc_init_avutil Line | Count | Source | 80 | 807k | { | 81 | 807k | int level = AV_LOG_QUIET; | 82 | | | 83 | 807k | int64_t verbose = var_InheritInteger(obj, "verbose"); | 84 | 807k | if (verbose >= 0) switch(verbose + VLC_MSG_ERR) { | 85 | 807k | case VLC_MSG_ERR: | 86 | 807k | level = AV_LOG_ERROR; | 87 | 807k | break; | 88 | 0 | case VLC_MSG_WARN: | 89 | 0 | level = AV_LOG_WARNING; | 90 | 0 | break; | 91 | 0 | case VLC_MSG_INFO: | 92 | 0 | level = AV_LOG_INFO; | 93 | 0 | break; | 94 | 0 | case VLC_MSG_DBG: | 95 | 0 | level = AV_LOG_VERBOSE; | 96 | 0 | break; | 97 | 0 | default: | 98 | 0 | level = AV_LOG_DEBUG; | 99 | 0 | break; | 100 | 807k | } | 101 | | | 102 | 807k | av_log_set_level(level); | 103 | | | 104 | 807k | msg_Dbg(obj, "CPU flags: 0x%08x", av_get_cpu_flags()); | 105 | 807k | } |
Unexecuted instantiation: encoder.c:vlc_init_avutil Unexecuted instantiation: fourcc.c:vlc_init_avutil Unexecuted instantiation: video.c:vlc_init_avutil Unexecuted instantiation: subtitle.c:vlc_init_avutil Unexecuted instantiation: audio.c:vlc_init_avutil |
106 | | |
107 | | #ifdef HAVE_LIBAVFORMAT_AVFORMAT_H |
108 | | # include <libavformat/avformat.h> |
109 | | # include <libavformat/version.h> |
110 | | static inline void vlc_init_avformat(vlc_object_t *obj) |
111 | 0 | { |
112 | 0 | vlc_avcodec_lock(); |
113 | 0 |
|
114 | 0 | vlc_init_avutil(obj); |
115 | 0 |
|
116 | 0 | avformat_network_init(); |
117 | 0 |
|
118 | 0 | vlc_avcodec_unlock(); |
119 | 0 | } Unexecuted instantiation: avcodec.c:vlc_init_avformat Unexecuted instantiation: encoder.c:vlc_init_avformat Unexecuted instantiation: fourcc.c:vlc_init_avformat Unexecuted instantiation: video.c:vlc_init_avformat Unexecuted instantiation: subtitle.c:vlc_init_avformat Unexecuted instantiation: audio.c:vlc_init_avformat |
120 | | #endif |
121 | | |
122 | | # include <libavcodec/avcodec.h> |
123 | | # include <libavcodec/version.h> |
124 | | static inline void vlc_init_avcodec(vlc_object_t *obj) |
125 | 807k | { |
126 | 807k | vlc_avcodec_lock(); |
127 | | |
128 | 807k | vlc_init_avutil(obj); |
129 | | |
130 | | |
131 | 807k | vlc_avcodec_unlock(); |
132 | 807k | } avcodec.c:vlc_init_avcodec Line | Count | Source | 125 | 807k | { | 126 | 807k | vlc_avcodec_lock(); | 127 | | | 128 | 807k | vlc_init_avutil(obj); | 129 | | | 130 | | | 131 | 807k | vlc_avcodec_unlock(); | 132 | 807k | } |
Unexecuted instantiation: encoder.c:vlc_init_avcodec Unexecuted instantiation: fourcc.c:vlc_init_avcodec Unexecuted instantiation: video.c:vlc_init_avcodec Unexecuted instantiation: subtitle.c:vlc_init_avcodec Unexecuted instantiation: audio.c:vlc_init_avcodec |
133 | | |
134 | | #ifndef AV_ERROR_MAX_STRING_SIZE |
135 | | #define AV_ERROR_MAX_STRING_SIZE 64 |
136 | | #endif |
137 | | |
138 | | static inline vlc_rational_t FromAVRational(const AVRational rat) |
139 | 0 | { |
140 | 0 | return (vlc_rational_t){.num = rat.num, .den = rat.den}; |
141 | 0 | } Unexecuted instantiation: avcodec.c:FromAVRational Unexecuted instantiation: encoder.c:FromAVRational Unexecuted instantiation: fourcc.c:FromAVRational Unexecuted instantiation: video.c:FromAVRational Unexecuted instantiation: subtitle.c:FromAVRational Unexecuted instantiation: audio.c:FromAVRational |
142 | | |
143 | | static inline void set_video_color_settings( const video_format_t *p_fmt, AVCodecContext *p_context ) |
144 | 170k | { |
145 | 170k | switch( p_fmt->color_range ) |
146 | 170k | { |
147 | 8.72k | case COLOR_RANGE_FULL: |
148 | 8.72k | p_context->color_range = AVCOL_RANGE_JPEG; |
149 | 8.72k | break; |
150 | 27.4k | case COLOR_RANGE_LIMITED: |
151 | 27.4k | p_context->color_range = AVCOL_RANGE_MPEG; |
152 | 161k | case COLOR_RANGE_UNDEF: /* do nothing */ |
153 | 161k | break; |
154 | 0 | default: |
155 | 0 | p_context->color_range = AVCOL_RANGE_UNSPECIFIED; |
156 | 0 | break; |
157 | 170k | } |
158 | | |
159 | 170k | switch( p_fmt->space ) |
160 | 170k | { |
161 | 2.09k | case COLOR_SPACE_BT709: |
162 | 2.09k | p_context->colorspace = AVCOL_SPC_BT709; |
163 | 2.09k | break; |
164 | 2.60k | case COLOR_SPACE_BT601: |
165 | 2.60k | p_context->colorspace = AVCOL_SPC_BT470BG; |
166 | 2.60k | break; |
167 | 1.14k | case COLOR_SPACE_BT2020: |
168 | 1.14k | p_context->colorspace = AVCOL_SPC_BT2020_CL; |
169 | 1.14k | break; |
170 | 164k | default: |
171 | 164k | p_context->colorspace = AVCOL_SPC_UNSPECIFIED; |
172 | 164k | break; |
173 | 170k | } |
174 | | |
175 | 170k | switch( p_fmt->transfer ) |
176 | 170k | { |
177 | 483 | case TRANSFER_FUNC_LINEAR: |
178 | 483 | p_context->color_trc = AVCOL_TRC_LINEAR; |
179 | 483 | break; |
180 | 70 | case TRANSFER_FUNC_SRGB: |
181 | 70 | p_context->color_trc = AVCOL_TRC_GAMMA22; |
182 | 70 | break; |
183 | 790 | case TRANSFER_FUNC_BT470_BG: |
184 | 790 | p_context->color_trc = AVCOL_TRC_GAMMA28; |
185 | 790 | break; |
186 | 218 | case TRANSFER_FUNC_BT470_M: |
187 | 218 | p_context->color_trc = AVCOL_TRC_GAMMA22; |
188 | 218 | break; |
189 | 4.31k | case TRANSFER_FUNC_BT709: |
190 | 4.31k | p_context->color_trc = AVCOL_TRC_BT709; |
191 | 4.31k | break; |
192 | 239 | case TRANSFER_FUNC_SMPTE_ST2084: |
193 | 239 | p_context->color_trc = AVCOL_TRC_SMPTEST2084; |
194 | 239 | break; |
195 | 103 | case TRANSFER_FUNC_SMPTE_240: |
196 | 103 | p_context->color_trc = AVCOL_TRC_SMPTE240M; |
197 | 103 | break; |
198 | 164k | default: |
199 | 164k | p_context->color_trc = AVCOL_TRC_UNSPECIFIED; |
200 | 164k | break; |
201 | 170k | } |
202 | 170k | switch( p_fmt->primaries ) |
203 | 170k | { |
204 | 2.73k | case COLOR_PRIMARIES_BT601_525: |
205 | 2.73k | p_context->color_primaries = AVCOL_PRI_SMPTE170M; |
206 | 2.73k | break; |
207 | 1.76k | case COLOR_PRIMARIES_BT601_625: |
208 | 1.76k | p_context->color_primaries = AVCOL_PRI_BT470BG; |
209 | 1.76k | break; |
210 | 2.15k | case COLOR_PRIMARIES_BT709: |
211 | 2.15k | p_context->color_primaries = AVCOL_PRI_BT709; |
212 | 2.15k | break; |
213 | 677 | case COLOR_PRIMARIES_BT2020: |
214 | 677 | p_context->color_primaries = AVCOL_PRI_BT2020; |
215 | 677 | break; |
216 | 105 | case COLOR_PRIMARIES_FCC1953: |
217 | 105 | p_context->color_primaries = AVCOL_PRI_BT470M; |
218 | 105 | break; |
219 | 163k | default: |
220 | 163k | p_context->color_primaries = AVCOL_PRI_UNSPECIFIED; |
221 | 163k | break; |
222 | 170k | } |
223 | 170k | switch( p_fmt->chroma_location ) |
224 | 170k | { |
225 | 0 | case CHROMA_LOCATION_LEFT: |
226 | 0 | p_context->chroma_sample_location = AVCHROMA_LOC_LEFT; |
227 | 0 | break; |
228 | 0 | case CHROMA_LOCATION_CENTER: |
229 | 0 | p_context->chroma_sample_location = AVCHROMA_LOC_CENTER; |
230 | 0 | break; |
231 | 0 | case CHROMA_LOCATION_TOP_LEFT: |
232 | 0 | p_context->chroma_sample_location = AVCHROMA_LOC_TOPLEFT; |
233 | 0 | break; |
234 | 0 | case CHROMA_LOCATION_TOP_CENTER: |
235 | 0 | p_context->chroma_sample_location = AVCHROMA_LOC_TOP; |
236 | 0 | break; |
237 | 0 | case CHROMA_LOCATION_BOTTOM_LEFT: |
238 | 0 | p_context->chroma_sample_location = AVCHROMA_LOC_BOTTOMLEFT; |
239 | 0 | break; |
240 | 0 | case CHROMA_LOCATION_BOTTOM_CENTER: |
241 | 0 | p_context->chroma_sample_location = AVCHROMA_LOC_BOTTOM; |
242 | 0 | break; |
243 | 170k | default: |
244 | 170k | p_context->chroma_sample_location = AVCHROMA_LOC_UNSPECIFIED; |
245 | 170k | break; |
246 | 170k | } |
247 | 170k | } Unexecuted instantiation: avcodec.c:set_video_color_settings Unexecuted instantiation: encoder.c:set_video_color_settings Unexecuted instantiation: fourcc.c:set_video_color_settings video.c:set_video_color_settings Line | Count | Source | 144 | 170k | { | 145 | 170k | switch( p_fmt->color_range ) | 146 | 170k | { | 147 | 8.72k | case COLOR_RANGE_FULL: | 148 | 8.72k | p_context->color_range = AVCOL_RANGE_JPEG; | 149 | 8.72k | break; | 150 | 27.4k | case COLOR_RANGE_LIMITED: | 151 | 27.4k | p_context->color_range = AVCOL_RANGE_MPEG; | 152 | 161k | case COLOR_RANGE_UNDEF: /* do nothing */ | 153 | 161k | break; | 154 | 0 | default: | 155 | 0 | p_context->color_range = AVCOL_RANGE_UNSPECIFIED; | 156 | 0 | break; | 157 | 170k | } | 158 | | | 159 | 170k | switch( p_fmt->space ) | 160 | 170k | { | 161 | 2.09k | case COLOR_SPACE_BT709: | 162 | 2.09k | p_context->colorspace = AVCOL_SPC_BT709; | 163 | 2.09k | break; | 164 | 2.60k | case COLOR_SPACE_BT601: | 165 | 2.60k | p_context->colorspace = AVCOL_SPC_BT470BG; | 166 | 2.60k | break; | 167 | 1.14k | case COLOR_SPACE_BT2020: | 168 | 1.14k | p_context->colorspace = AVCOL_SPC_BT2020_CL; | 169 | 1.14k | break; | 170 | 164k | default: | 171 | 164k | p_context->colorspace = AVCOL_SPC_UNSPECIFIED; | 172 | 164k | break; | 173 | 170k | } | 174 | | | 175 | 170k | switch( p_fmt->transfer ) | 176 | 170k | { | 177 | 483 | case TRANSFER_FUNC_LINEAR: | 178 | 483 | p_context->color_trc = AVCOL_TRC_LINEAR; | 179 | 483 | break; | 180 | 70 | case TRANSFER_FUNC_SRGB: | 181 | 70 | p_context->color_trc = AVCOL_TRC_GAMMA22; | 182 | 70 | break; | 183 | 790 | case TRANSFER_FUNC_BT470_BG: | 184 | 790 | p_context->color_trc = AVCOL_TRC_GAMMA28; | 185 | 790 | break; | 186 | 218 | case TRANSFER_FUNC_BT470_M: | 187 | 218 | p_context->color_trc = AVCOL_TRC_GAMMA22; | 188 | 218 | break; | 189 | 4.31k | case TRANSFER_FUNC_BT709: | 190 | 4.31k | p_context->color_trc = AVCOL_TRC_BT709; | 191 | 4.31k | break; | 192 | 239 | case TRANSFER_FUNC_SMPTE_ST2084: | 193 | 239 | p_context->color_trc = AVCOL_TRC_SMPTEST2084; | 194 | 239 | break; | 195 | 103 | case TRANSFER_FUNC_SMPTE_240: | 196 | 103 | p_context->color_trc = AVCOL_TRC_SMPTE240M; | 197 | 103 | break; | 198 | 164k | default: | 199 | 164k | p_context->color_trc = AVCOL_TRC_UNSPECIFIED; | 200 | 164k | break; | 201 | 170k | } | 202 | 170k | switch( p_fmt->primaries ) | 203 | 170k | { | 204 | 2.73k | case COLOR_PRIMARIES_BT601_525: | 205 | 2.73k | p_context->color_primaries = AVCOL_PRI_SMPTE170M; | 206 | 2.73k | break; | 207 | 1.76k | case COLOR_PRIMARIES_BT601_625: | 208 | 1.76k | p_context->color_primaries = AVCOL_PRI_BT470BG; | 209 | 1.76k | break; | 210 | 2.15k | case COLOR_PRIMARIES_BT709: | 211 | 2.15k | p_context->color_primaries = AVCOL_PRI_BT709; | 212 | 2.15k | break; | 213 | 677 | case COLOR_PRIMARIES_BT2020: | 214 | 677 | p_context->color_primaries = AVCOL_PRI_BT2020; | 215 | 677 | break; | 216 | 105 | case COLOR_PRIMARIES_FCC1953: | 217 | 105 | p_context->color_primaries = AVCOL_PRI_BT470M; | 218 | 105 | break; | 219 | 163k | default: | 220 | 163k | p_context->color_primaries = AVCOL_PRI_UNSPECIFIED; | 221 | 163k | break; | 222 | 170k | } | 223 | 170k | switch( p_fmt->chroma_location ) | 224 | 170k | { | 225 | 0 | case CHROMA_LOCATION_LEFT: | 226 | 0 | p_context->chroma_sample_location = AVCHROMA_LOC_LEFT; | 227 | 0 | break; | 228 | 0 | case CHROMA_LOCATION_CENTER: | 229 | 0 | p_context->chroma_sample_location = AVCHROMA_LOC_CENTER; | 230 | 0 | break; | 231 | 0 | case CHROMA_LOCATION_TOP_LEFT: | 232 | 0 | p_context->chroma_sample_location = AVCHROMA_LOC_TOPLEFT; | 233 | 0 | break; | 234 | 0 | case CHROMA_LOCATION_TOP_CENTER: | 235 | 0 | p_context->chroma_sample_location = AVCHROMA_LOC_TOP; | 236 | 0 | break; | 237 | 0 | case CHROMA_LOCATION_BOTTOM_LEFT: | 238 | 0 | p_context->chroma_sample_location = AVCHROMA_LOC_BOTTOMLEFT; | 239 | 0 | break; | 240 | 0 | case CHROMA_LOCATION_BOTTOM_CENTER: | 241 | 0 | p_context->chroma_sample_location = AVCHROMA_LOC_BOTTOM; | 242 | 0 | break; | 243 | 170k | default: | 244 | 170k | p_context->chroma_sample_location = AVCHROMA_LOC_UNSPECIFIED; | 245 | 170k | break; | 246 | 170k | } | 247 | 170k | } |
Unexecuted instantiation: subtitle.c:set_video_color_settings Unexecuted instantiation: audio.c:set_video_color_settings |
248 | | |
249 | | static inline void get_video_color_settings( const AVCodecContext *ctx, |
250 | | video_format_t *fmt ) |
251 | 158k | { |
252 | 158k | switch ( ctx->color_range ) |
253 | 158k | { |
254 | 23.1k | case AVCOL_RANGE_JPEG: |
255 | 23.1k | fmt->color_range = COLOR_RANGE_FULL; |
256 | 23.1k | break; |
257 | 63.3k | case AVCOL_RANGE_MPEG: |
258 | 63.3k | fmt->color_range = COLOR_RANGE_LIMITED; |
259 | 63.3k | break; |
260 | 71.6k | default: /* do nothing */ |
261 | 71.6k | break; |
262 | 158k | } |
263 | | |
264 | 158k | switch( ctx->colorspace ) |
265 | 158k | { |
266 | 1.43k | case AVCOL_SPC_BT709: |
267 | 1.43k | fmt->space = COLOR_SPACE_BT709; |
268 | 1.43k | break; |
269 | 932 | case AVCOL_SPC_SMPTE170M: |
270 | 1.58k | case AVCOL_SPC_BT470BG: |
271 | 1.58k | fmt->space = COLOR_SPACE_BT601; |
272 | 1.58k | break; |
273 | 2.51k | case AVCOL_SPC_BT2020_NCL: |
274 | 3.27k | case AVCOL_SPC_BT2020_CL: |
275 | 3.27k | fmt->space = COLOR_SPACE_BT2020; |
276 | 3.27k | break; |
277 | 151k | default: |
278 | 151k | break; |
279 | 158k | } |
280 | | |
281 | 158k | switch( ctx->color_trc ) |
282 | 158k | { |
283 | 893 | case AVCOL_TRC_LINEAR: |
284 | 893 | fmt->transfer = TRANSFER_FUNC_LINEAR; |
285 | 893 | break; |
286 | 1.08k | case AVCOL_TRC_GAMMA22: |
287 | 1.08k | fmt->transfer = TRANSFER_FUNC_SRGB; |
288 | 1.08k | break; |
289 | 4.03k | case AVCOL_TRC_BT709: |
290 | 4.03k | fmt->transfer = TRANSFER_FUNC_BT709; |
291 | 4.03k | break; |
292 | 143 | case AVCOL_TRC_SMPTE170M: |
293 | 1.84k | case AVCOL_TRC_BT2020_10: |
294 | 2.12k | case AVCOL_TRC_BT2020_12: |
295 | 2.12k | fmt->transfer = TRANSFER_FUNC_BT2020; |
296 | 2.12k | break; |
297 | 283 | case AVCOL_TRC_ARIB_STD_B67: |
298 | 283 | fmt->transfer = TRANSFER_FUNC_ARIB_B67; |
299 | 283 | break; |
300 | 80 | case AVCOL_TRC_SMPTE2084: |
301 | 80 | fmt->transfer = TRANSFER_FUNC_SMPTE_ST2084; |
302 | 80 | break; |
303 | 146 | case AVCOL_TRC_SMPTE240M: |
304 | 146 | fmt->transfer = TRANSFER_FUNC_SMPTE_240; |
305 | 146 | break; |
306 | 189 | case AVCOL_TRC_GAMMA28: |
307 | 189 | fmt->transfer = TRANSFER_FUNC_BT470_BG; |
308 | 189 | break; |
309 | 149k | default: |
310 | 149k | break; |
311 | 158k | } |
312 | | |
313 | 158k | switch( ctx->color_primaries ) |
314 | 158k | { |
315 | 1.33k | case AVCOL_PRI_BT709: |
316 | 1.33k | fmt->primaries = COLOR_PRIMARIES_BT709; |
317 | 1.33k | break; |
318 | 473 | case AVCOL_PRI_BT470BG: |
319 | 473 | fmt->primaries = COLOR_PRIMARIES_BT601_625; |
320 | 473 | break; |
321 | 1.25k | case AVCOL_PRI_SMPTE170M: |
322 | 1.62k | case AVCOL_PRI_SMPTE240M: |
323 | 1.62k | fmt->primaries = COLOR_PRIMARIES_BT601_525; |
324 | 1.62k | break; |
325 | 117 | case AVCOL_PRI_BT2020: |
326 | 117 | fmt->primaries = COLOR_PRIMARIES_BT2020; |
327 | 117 | break; |
328 | 154k | default: |
329 | 154k | break; |
330 | 158k | } |
331 | | |
332 | 158k | switch( ctx->chroma_sample_location ) |
333 | 158k | { |
334 | 75.2k | case AVCHROMA_LOC_LEFT: |
335 | 75.2k | fmt->chroma_location = CHROMA_LOCATION_LEFT; |
336 | 75.2k | break; |
337 | 8.09k | case AVCHROMA_LOC_CENTER: |
338 | 8.09k | fmt->chroma_location = CHROMA_LOCATION_CENTER; |
339 | 8.09k | break; |
340 | 10.2k | case AVCHROMA_LOC_TOPLEFT: |
341 | 10.2k | fmt->chroma_location = CHROMA_LOCATION_TOP_LEFT; |
342 | 10.2k | break; |
343 | 64.5k | default: |
344 | 64.5k | break; |
345 | 158k | } |
346 | 158k | } Unexecuted instantiation: avcodec.c:get_video_color_settings Unexecuted instantiation: encoder.c:get_video_color_settings Unexecuted instantiation: fourcc.c:get_video_color_settings video.c:get_video_color_settings Line | Count | Source | 251 | 158k | { | 252 | 158k | switch ( ctx->color_range ) | 253 | 158k | { | 254 | 23.1k | case AVCOL_RANGE_JPEG: | 255 | 23.1k | fmt->color_range = COLOR_RANGE_FULL; | 256 | 23.1k | break; | 257 | 63.3k | case AVCOL_RANGE_MPEG: | 258 | 63.3k | fmt->color_range = COLOR_RANGE_LIMITED; | 259 | 63.3k | break; | 260 | 71.6k | default: /* do nothing */ | 261 | 71.6k | break; | 262 | 158k | } | 263 | | | 264 | 158k | switch( ctx->colorspace ) | 265 | 158k | { | 266 | 1.43k | case AVCOL_SPC_BT709: | 267 | 1.43k | fmt->space = COLOR_SPACE_BT709; | 268 | 1.43k | break; | 269 | 932 | case AVCOL_SPC_SMPTE170M: | 270 | 1.58k | case AVCOL_SPC_BT470BG: | 271 | 1.58k | fmt->space = COLOR_SPACE_BT601; | 272 | 1.58k | break; | 273 | 2.51k | case AVCOL_SPC_BT2020_NCL: | 274 | 3.27k | case AVCOL_SPC_BT2020_CL: | 275 | 3.27k | fmt->space = COLOR_SPACE_BT2020; | 276 | 3.27k | break; | 277 | 151k | default: | 278 | 151k | break; | 279 | 158k | } | 280 | | | 281 | 158k | switch( ctx->color_trc ) | 282 | 158k | { | 283 | 893 | case AVCOL_TRC_LINEAR: | 284 | 893 | fmt->transfer = TRANSFER_FUNC_LINEAR; | 285 | 893 | break; | 286 | 1.08k | case AVCOL_TRC_GAMMA22: | 287 | 1.08k | fmt->transfer = TRANSFER_FUNC_SRGB; | 288 | 1.08k | break; | 289 | 4.03k | case AVCOL_TRC_BT709: | 290 | 4.03k | fmt->transfer = TRANSFER_FUNC_BT709; | 291 | 4.03k | break; | 292 | 143 | case AVCOL_TRC_SMPTE170M: | 293 | 1.84k | case AVCOL_TRC_BT2020_10: | 294 | 2.12k | case AVCOL_TRC_BT2020_12: | 295 | 2.12k | fmt->transfer = TRANSFER_FUNC_BT2020; | 296 | 2.12k | break; | 297 | 283 | case AVCOL_TRC_ARIB_STD_B67: | 298 | 283 | fmt->transfer = TRANSFER_FUNC_ARIB_B67; | 299 | 283 | break; | 300 | 80 | case AVCOL_TRC_SMPTE2084: | 301 | 80 | fmt->transfer = TRANSFER_FUNC_SMPTE_ST2084; | 302 | 80 | break; | 303 | 146 | case AVCOL_TRC_SMPTE240M: | 304 | 146 | fmt->transfer = TRANSFER_FUNC_SMPTE_240; | 305 | 146 | break; | 306 | 189 | case AVCOL_TRC_GAMMA28: | 307 | 189 | fmt->transfer = TRANSFER_FUNC_BT470_BG; | 308 | 189 | break; | 309 | 149k | default: | 310 | 149k | break; | 311 | 158k | } | 312 | | | 313 | 158k | switch( ctx->color_primaries ) | 314 | 158k | { | 315 | 1.33k | case AVCOL_PRI_BT709: | 316 | 1.33k | fmt->primaries = COLOR_PRIMARIES_BT709; | 317 | 1.33k | break; | 318 | 473 | case AVCOL_PRI_BT470BG: | 319 | 473 | fmt->primaries = COLOR_PRIMARIES_BT601_625; | 320 | 473 | break; | 321 | 1.25k | case AVCOL_PRI_SMPTE170M: | 322 | 1.62k | case AVCOL_PRI_SMPTE240M: | 323 | 1.62k | fmt->primaries = COLOR_PRIMARIES_BT601_525; | 324 | 1.62k | break; | 325 | 117 | case AVCOL_PRI_BT2020: | 326 | 117 | fmt->primaries = COLOR_PRIMARIES_BT2020; | 327 | 117 | break; | 328 | 154k | default: | 329 | 154k | break; | 330 | 158k | } | 331 | | | 332 | 158k | switch( ctx->chroma_sample_location ) | 333 | 158k | { | 334 | 75.2k | case AVCHROMA_LOC_LEFT: | 335 | 75.2k | fmt->chroma_location = CHROMA_LOCATION_LEFT; | 336 | 75.2k | break; | 337 | 8.09k | case AVCHROMA_LOC_CENTER: | 338 | 8.09k | fmt->chroma_location = CHROMA_LOCATION_CENTER; | 339 | 8.09k | break; | 340 | 10.2k | case AVCHROMA_LOC_TOPLEFT: | 341 | 10.2k | fmt->chroma_location = CHROMA_LOCATION_TOP_LEFT; | 342 | 10.2k | break; | 343 | 64.5k | default: | 344 | 64.5k | break; | 345 | 158k | } | 346 | 158k | } |
Unexecuted instantiation: subtitle.c:get_video_color_settings Unexecuted instantiation: audio.c:get_video_color_settings |
347 | | |
348 | | #endif |