OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. | 2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 #ifndef VPX_VP8CX_H_ | 10 #ifndef VPX_VP8CX_H_ |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 | 117 |
118 | 118 |
119 /*!\brief Disable entropy update | 119 /*!\brief Disable entropy update |
120 * | 120 * |
121 * When this flag is set, the encoder will not update its internal entropy | 121 * When this flag is set, the encoder will not update its internal entropy |
122 * model based on the entropy of this frame. | 122 * model based on the entropy of this frame. |
123 */ | 123 */ |
124 #define VP8_EFLAG_NO_UPD_ENTROPY (1<<20) | 124 #define VP8_EFLAG_NO_UPD_ENTROPY (1<<20) |
125 | 125 |
126 | 126 |
127 /*!\brief VP8 encoder control functions | 127 /*!\brief VPx encoder control functions |
128 * | 128 * |
129 * This set of macros define the control functions available for the VP8 | 129 * This set of macros define the control functions available for VPx |
130 * encoder interface. | 130 * encoder interface. |
131 * | 131 * |
132 * \sa #vpx_codec_control | 132 * \sa #vpx_codec_control |
133 */ | 133 */ |
134 enum vp8e_enc_control_id { | 134 enum vp8e_enc_control_id { |
135 VP8E_UPD_ENTROPY = 5, /**< control function to set mode of entropy
update in encoder */ | 135 /*!\brief Codec control function to set mode of entropy update in encoder. |
136 VP8E_UPD_REFERENCE, /**< control function to set reference update
mode in encoder */ | 136 * |
137 VP8E_USE_REFERENCE, /**< control function to set which reference
frame encoder can use */ | 137 * Supported in codecs: VP8, VP9 |
138 VP8E_SET_ROI_MAP, /**< control function to pass an ROI map to e
ncoder */ | 138 */ |
139 VP8E_SET_ACTIVEMAP, /**< control function to pass an Active map t
o encoder */ | 139 VP8E_UPD_ENTROPY = 5, |
140 VP8E_SET_SCALEMODE = 11, /**< control function to set encoder scaling
mode */ | 140 |
141 /*!\brief control function to set vp8 encoder cpuused | 141 /*!\brief Codec control function to set reference update mode in encoder. |
| 142 * |
| 143 * Supported in codecs: VP8, VP9 |
| 144 */ |
| 145 VP8E_UPD_REFERENCE, |
| 146 |
| 147 /*!\brief Codec control function to set which reference frame encoder can use. |
| 148 * |
| 149 * Supported in codecs: VP8, VP9 |
| 150 */ |
| 151 VP8E_USE_REFERENCE, |
| 152 |
| 153 /*!\brief Codec control function to pass an ROI map to encoder. |
| 154 * |
| 155 * Supported in codecs: VP8, VP9 |
| 156 */ |
| 157 VP8E_SET_ROI_MAP, |
| 158 |
| 159 /*!\brief Codec control function to pass an Active map to encoder. |
| 160 * |
| 161 * Supported in codecs: VP8, VP9 |
| 162 */ |
| 163 VP8E_SET_ACTIVEMAP, |
| 164 |
| 165 /*!\brief Codec control function to set encoder scaling mode. |
| 166 * |
| 167 * Supported in codecs: VP8, VP9 |
| 168 */ |
| 169 VP8E_SET_SCALEMODE = 11, |
| 170 |
| 171 /*!\brief Codec control function to set encoder internal speed settings. |
142 * | 172 * |
143 * Changes in this value influences, among others, the encoder's selection | 173 * Changes in this value influences, among others, the encoder's selection |
144 * of motion estimation methods. Values greater than 0 will increase encoder | 174 * of motion estimation methods. Values greater than 0 will increase encoder |
145 * speed at the expense of quality. | 175 * speed at the expense of quality. |
146 * The full set of adjustments can be found in | |
147 * onyx_if.c:vp8_set_speed_features(). | |
148 * \todo List highlights of the changes at various levels. | |
149 * | 176 * |
150 * \note Valid range: -16..16 | 177 * \note Valid range for VP8: -16..16 |
| 178 * \note Valid range for VP9: -8..8 |
| 179 * |
| 180 * Supported in codecs: VP8, VP9 |
151 */ | 181 */ |
152 VP8E_SET_CPUUSED = 13, | 182 VP8E_SET_CPUUSED = 13, |
153 VP8E_SET_ENABLEAUTOALTREF, /**< control function to enable vp8 to automa
tic set and use altref frame */ | 183 |
| 184 /*!\brief Codec control function to enable automatic set and use alf frames. |
| 185 * |
| 186 * Supported in codecs: VP8, VP9 |
| 187 */ |
| 188 VP8E_SET_ENABLEAUTOALTREF, |
| 189 |
154 /*!\brief control function to set noise sensitivity | 190 /*!\brief control function to set noise sensitivity |
155 * | 191 * |
156 * 0: off, 1: OnYOnly, 2: OnYUV, | 192 * 0: off, 1: OnYOnly, 2: OnYUV, |
157 * 3: OnYUVAggressive, 4: Adaptive | 193 * 3: OnYUVAggressive, 4: Adaptive |
| 194 * |
| 195 * Supported in codecs: VP8 |
158 */ | 196 */ |
159 VP8E_SET_NOISE_SENSITIVITY, | 197 VP8E_SET_NOISE_SENSITIVITY, |
160 VP8E_SET_SHARPNESS, /**< control function to set sharpness */ | |
161 VP8E_SET_STATIC_THRESHOLD, /**< control function to set the threshold fo
r macroblocks treated static */ | |
162 VP8E_SET_TOKEN_PARTITIONS, /**< control function to set the number of to
ken partitions */ | |
163 VP8E_GET_LAST_QUANTIZER, /**< return the quantizer chosen by the | |
164 encoder for the last frame using the i
nternal | |
165 scale */ | |
166 VP8E_GET_LAST_QUANTIZER_64, /**< return the quantizer chosen by the | |
167 encoder for the last frame, using the
0..63 | |
168 scale as used by the rc_*_quantizer co
nfig | |
169 parameters */ | |
170 VP8E_SET_ARNR_MAXFRAMES, /**< control function to set the max number o
f frames blurred creating arf*/ | |
171 VP8E_SET_ARNR_STRENGTH, //!< control function to set the filter | |
172 //!< strength for the arf | |
173 | 198 |
174 /*!\deprecated control function to set the filter type to use for the arf */ | 199 /*!\brief Codec control function to set sharpness. |
| 200 * |
| 201 * Supported in codecs: VP8, VP9 |
| 202 */ |
| 203 VP8E_SET_SHARPNESS, |
| 204 |
| 205 /*!\brief Codec control function to set the threshold for MBs treated static. |
| 206 * |
| 207 * Supported in codecs: VP8, VP9 |
| 208 */ |
| 209 VP8E_SET_STATIC_THRESHOLD, |
| 210 |
| 211 /*!\brief Codec control function to set the number of token partitions. |
| 212 * |
| 213 * Supported in codecs: VP8 |
| 214 */ |
| 215 VP8E_SET_TOKEN_PARTITIONS, |
| 216 |
| 217 /*!\brief Codec control function to get last quantizer chosen by the encoder. |
| 218 * |
| 219 * Return value uses internal quantizer scale defined by the codec. |
| 220 * |
| 221 * Supported in codecs: VP8, VP9 |
| 222 */ |
| 223 VP8E_GET_LAST_QUANTIZER, |
| 224 |
| 225 /*!\brief Codec control function to get last quantizer chosen by the encoder. |
| 226 * |
| 227 * Return value uses the 0..63 scale as used by the rc_*_quantizer config |
| 228 * parameters. |
| 229 * |
| 230 * Supported in codecs: VP8, VP9 |
| 231 */ |
| 232 VP8E_GET_LAST_QUANTIZER_64, |
| 233 |
| 234 /*!\brief Codec control function to set the max no of frames to create arf. |
| 235 * |
| 236 * Supported in codecs: VP8, VP9 |
| 237 */ |
| 238 VP8E_SET_ARNR_MAXFRAMES, |
| 239 |
| 240 /*!\brief Codec control function to set the filter strength for the arf. |
| 241 * |
| 242 * Supported in codecs: VP8, VP9 |
| 243 */ |
| 244 VP8E_SET_ARNR_STRENGTH, |
| 245 |
| 246 /*!\deprecated control function to set the filter type to use for the arf. */ |
175 VP8E_SET_ARNR_TYPE, | 247 VP8E_SET_ARNR_TYPE, |
176 | 248 |
177 VP8E_SET_TUNING, /**< control function to set visual tuning */ | 249 /*!\brief Codec control function to set visual tuning. |
178 /*!\brief control function to set constrained quality level | 250 * |
| 251 * Supported in codecs: VP8, VP9 |
| 252 */ |
| 253 VP8E_SET_TUNING, |
| 254 |
| 255 /*!\brief Codec control function to set constrained quality level. |
179 * | 256 * |
180 * \attention For this value to be used vpx_codec_enc_cfg_t::g_usage must be | 257 * \attention For this value to be used vpx_codec_enc_cfg_t::g_usage must be |
181 * set to #VPX_CQ. | 258 * set to #VPX_CQ. |
182 * \note Valid range: 0..63 | 259 * \note Valid range: 0..63 |
| 260 * |
| 261 * Supported in codecs: VP8, VP9 |
183 */ | 262 */ |
184 VP8E_SET_CQ_LEVEL, | 263 VP8E_SET_CQ_LEVEL, |
185 | 264 |
186 /*!\brief Max data rate for Intra frames | 265 /*!\brief Codec control function to set Max data rate for Intra frames. |
187 * | 266 * |
188 * This value controls additional clamping on the maximum size of a | 267 * This value controls additional clamping on the maximum size of a |
189 * keyframe. It is expressed as a percentage of the average | 268 * keyframe. It is expressed as a percentage of the average |
190 * per-frame bitrate, with the special (and default) value 0 meaning | 269 * per-frame bitrate, with the special (and default) value 0 meaning |
191 * unlimited, or no additional clamping beyond the codec's built-in | 270 * unlimited, or no additional clamping beyond the codec's built-in |
192 * algorithm. | 271 * algorithm. |
193 * | 272 * |
194 * For example, to allocate no more than 4.5 frames worth of bitrate | 273 * For example, to allocate no more than 4.5 frames worth of bitrate |
195 * to a keyframe, set this to 450. | 274 * to a keyframe, set this to 450. |
196 * | 275 * |
| 276 * Supported in codecs: VP8, VP9 |
197 */ | 277 */ |
198 VP8E_SET_MAX_INTRA_BITRATE_PCT, | 278 VP8E_SET_MAX_INTRA_BITRATE_PCT, |
199 VP8E_SET_FRAME_FLAGS, /**< control function to set reference and upd
ate frame flags */ | |
200 | 279 |
201 /*!\brief Max data rate for Inter frames | 280 /*!\brief Codec control function to set reference and update frame flags. |
| 281 * |
| 282 * Supported in codecs: VP8 |
| 283 */ |
| 284 VP8E_SET_FRAME_FLAGS, |
| 285 |
| 286 /*!\brief Codec control function to set max data rate for Inter frames. |
202 * | 287 * |
203 * This value controls additional clamping on the maximum size of an | 288 * This value controls additional clamping on the maximum size of an |
204 * inter frame. It is expressed as a percentage of the average | 289 * inter frame. It is expressed as a percentage of the average |
205 * per-frame bitrate, with the special (and default) value 0 meaning | 290 * per-frame bitrate, with the special (and default) value 0 meaning |
206 * unlimited, or no additional clamping beyond the codec's built-in | 291 * unlimited, or no additional clamping beyond the codec's built-in |
207 * algorithm. | 292 * algorithm. |
208 * | 293 * |
209 * For example, to allow no more than 4.5 frames worth of bitrate | 294 * For example, to allow no more than 4.5 frames worth of bitrate |
210 * to an inter frame, set this to 450. | 295 * to an inter frame, set this to 450. |
211 * | 296 * |
| 297 * Supported in codecs: VP9 |
212 */ | 298 */ |
213 VP8E_SET_MAX_INTER_BITRATE_PCT, | 299 VP9E_SET_MAX_INTER_BITRATE_PCT, |
214 | 300 |
215 /*!\brief Boost percentage for Golden Frame in CBR mode | 301 /*!\brief Boost percentage for Golden Frame in CBR mode. |
216 * | 302 * |
217 * This value controls the amount of boost given to Golden Frame in | 303 * This value controls the amount of boost given to Golden Frame in |
218 * CBR mode. It is expressed as a percentage of the average | 304 * CBR mode. It is expressed as a percentage of the average |
219 * per-frame bitrate, with the special (and default) value 0 meaning | 305 * per-frame bitrate, with the special (and default) value 0 meaning |
220 * the feature is off, i.e., no golden frame boost in CBR mode and | 306 * the feature is off, i.e., no golden frame boost in CBR mode and |
221 * average bitrate target is used. | 307 * average bitrate target is used. |
222 * | 308 * |
223 * For example, to allow 100% more bits, i.e, 2X, in a golden frame | 309 * For example, to allow 100% more bits, i.e, 2X, in a golden frame |
224 * than average frame, set this to 100. | 310 * than average frame, set this to 100. |
225 * | 311 * |
| 312 * Supported in codecs: VP9 |
226 */ | 313 */ |
227 VP8E_SET_GF_CBR_BOOST_PCT, | 314 VP9E_SET_GF_CBR_BOOST_PCT, |
228 | 315 |
229 /*!\brief Codec control function to set the temporal layer id | 316 /*!\brief Codec control function to set the temporal layer id. |
230 * | 317 * |
231 * For temporal scalability: this control allows the application to set the | 318 * For temporal scalability: this control allows the application to set the |
232 * layer id for each frame to be encoded. Note that this control must be set | 319 * layer id for each frame to be encoded. Note that this control must be set |
233 * for every frame prior to encoding. The usage of this control function | 320 * for every frame prior to encoding. The usage of this control function |
234 * supersedes the internal temporal pattern counter, which is now deprecated. | 321 * supersedes the internal temporal pattern counter, which is now deprecated. |
| 322 * |
| 323 * Supported in codecs: VP8 |
235 */ | 324 */ |
236 VP8E_SET_TEMPORAL_LAYER_ID, | 325 VP8E_SET_TEMPORAL_LAYER_ID, |
237 | 326 |
238 VP8E_SET_SCREEN_CONTENT_MODE, /**<control function to set encoder screen cont
ent mode */ | 327 /*!\brief Codec control function to set encoder screen content mode. |
| 328 * |
| 329 * Supported in codecs: VP8 |
| 330 */ |
| 331 VP8E_SET_SCREEN_CONTENT_MODE, |
239 | 332 |
240 /*!\brief Codec control function to set lossless encoding mode | 333 /*!\brief Codec control function to set lossless encoding mode. |
241 * | 334 * |
242 * VP9 can operate in lossless encoding mode, in which the bitstream | 335 * VP9 can operate in lossless encoding mode, in which the bitstream |
243 * produced will be able to decode and reconstruct a perfect copy of | 336 * produced will be able to decode and reconstruct a perfect copy of |
244 * input source. This control function provides a mean to switch encoder | 337 * input source. This control function provides a mean to switch encoder |
245 * into lossless coding mode(1) or normal coding mode(0) that may be lossy. | 338 * into lossless coding mode(1) or normal coding mode(0) that may be lossy. |
246 * 0 = lossy coding mode | 339 * 0 = lossy coding mode |
247 * 1 = lossless coding mode | 340 * 1 = lossless coding mode |
248 * | 341 * |
249 * By default, encoder operates in normal coding mode (maybe lossy). | 342 * By default, encoder operates in normal coding mode (maybe lossy). |
| 343 * |
| 344 * Supported in codecs: VP9 |
250 */ | 345 */ |
251 VP9E_SET_LOSSLESS, | 346 VP9E_SET_LOSSLESS, |
252 | 347 |
253 /*!\brief Codec control function to set number of tile columns | 348 /*!\brief Codec control function to set number of tile columns. |
254 * | 349 * |
255 * In encoding and decoding, VP9 allows an input image frame be partitioned | 350 * In encoding and decoding, VP9 allows an input image frame be partitioned |
256 * into separated vertical tile columns, which can be encoded or decoded | 351 * into separated vertical tile columns, which can be encoded or decoded |
257 * independently. This enables easy implementation of parallel encoding and | 352 * independently. This enables easy implementation of parallel encoding and |
258 * decoding. This control requests the encoder to use column tiles in | 353 * decoding. This control requests the encoder to use column tiles in |
259 * encoding an input frame, with number of tile columns (in Log2 unit) as | 354 * encoding an input frame, with number of tile columns (in Log2 unit) as |
260 * the parameter: | 355 * the parameter: |
261 * 0 = 1 tile column | 356 * 0 = 1 tile column |
262 * 1 = 2 tile columns | 357 * 1 = 2 tile columns |
263 * 2 = 4 tile columns | 358 * 2 = 4 tile columns |
264 * ..... | 359 * ..... |
265 * n = 2**n tile columns | 360 * n = 2**n tile columns |
266 * The requested tile columns will be capped by encoder based on image size | 361 * The requested tile columns will be capped by encoder based on image size |
267 * limitation (The minimum width of a tile column is 256 pixel, the maximum | 362 * limitation (The minimum width of a tile column is 256 pixel, the maximum |
268 * is 4096). | 363 * is 4096). |
269 * | 364 * |
270 * By default, the value is 0, i.e. one single column tile for entire image. | 365 * By default, the value is 0, i.e. one single column tile for entire image. |
| 366 * |
| 367 * Supported in codecs: VP9 |
271 */ | 368 */ |
272 VP9E_SET_TILE_COLUMNS, | 369 VP9E_SET_TILE_COLUMNS, |
273 | 370 |
274 /*!\brief Codec control function to set number of tile rows | 371 /*!\brief Codec control function to set number of tile rows. |
275 * | 372 * |
276 * In encoding and decoding, VP9 allows an input image frame be partitioned | 373 * In encoding and decoding, VP9 allows an input image frame be partitioned |
277 * into separated horizontal tile rows. Tile rows are encoded or decoded | 374 * into separated horizontal tile rows. Tile rows are encoded or decoded |
278 * sequentially. Even though encoding/decoding of later tile rows depends on | 375 * sequentially. Even though encoding/decoding of later tile rows depends on |
279 * earlier ones, this allows the encoder to output data packets for tile rows | 376 * earlier ones, this allows the encoder to output data packets for tile rows |
280 * prior to completely processing all tile rows in a frame, thereby reducing | 377 * prior to completely processing all tile rows in a frame, thereby reducing |
281 * the latency in processing between input and output. The parameter | 378 * the latency in processing between input and output. The parameter |
282 * for this control describes the number of tile rows, which has a valid | 379 * for this control describes the number of tile rows, which has a valid |
283 * range [0, 2]: | 380 * range [0, 2]: |
284 * 0 = 1 tile row | 381 * 0 = 1 tile row |
285 * 1 = 2 tile rows | 382 * 1 = 2 tile rows |
286 * 2 = 4 tile rows | 383 * 2 = 4 tile rows |
287 * | 384 * |
288 * By default, the value is 0, i.e. one single row tile for entire image. | 385 * By default, the value is 0, i.e. one single row tile for entire image. |
| 386 * |
| 387 * Supported in codecs: VP9 |
289 */ | 388 */ |
290 VP9E_SET_TILE_ROWS, | 389 VP9E_SET_TILE_ROWS, |
291 | 390 |
292 /*!\brief Codec control function to enable frame parallel decoding feature | 391 /*!\brief Codec control function to enable frame parallel decoding feature. |
293 * | 392 * |
294 * VP9 has a bitstream feature to reduce decoding dependency between frames | 393 * VP9 has a bitstream feature to reduce decoding dependency between frames |
295 * by turning off backward update of probability context used in encoding | 394 * by turning off backward update of probability context used in encoding |
296 * and decoding. This allows staged parallel processing of more than one | 395 * and decoding. This allows staged parallel processing of more than one |
297 * video frames in the decoder. This control function provides a mean to | 396 * video frames in the decoder. This control function provides a mean to |
298 * turn this feature on or off for bitstreams produced by encoder. | 397 * turn this feature on or off for bitstreams produced by encoder. |
299 * | 398 * |
300 * By default, this feature is off. | 399 * By default, this feature is off. |
| 400 * |
| 401 * Supported in codecs: VP9 |
301 */ | 402 */ |
302 VP9E_SET_FRAME_PARALLEL_DECODING, | 403 VP9E_SET_FRAME_PARALLEL_DECODING, |
303 | 404 |
304 /*!\brief Codec control function to set adaptive quantization mode | 405 /*!\brief Codec control function to set adaptive quantization mode. |
305 * | 406 * |
306 * VP9 has a segment based feature that allows encoder to adaptively change | 407 * VP9 has a segment based feature that allows encoder to adaptively change |
307 * quantization parameter for each segment within a frame to improve the | 408 * quantization parameter for each segment within a frame to improve the |
308 * subjective quality. This control makes encoder operate in one of the | 409 * subjective quality. This control makes encoder operate in one of the |
309 * several AQ_modes supported. | 410 * several AQ_modes supported. |
310 * | 411 * |
311 * By default, encoder operates with AQ_Mode 0(adaptive quantization off). | 412 * By default, encoder operates with AQ_Mode 0(adaptive quantization off). |
| 413 * |
| 414 * Supported in codecs: VP9 |
312 */ | 415 */ |
313 VP9E_SET_AQ_MODE, | 416 VP9E_SET_AQ_MODE, |
314 | 417 |
315 /*!\brief Codec control function to enable/disable periodic Q boost | 418 /*!\brief Codec control function to enable/disable periodic Q boost. |
316 * | 419 * |
317 * One VP9 encoder speed feature is to enable quality boost by lowering | 420 * One VP9 encoder speed feature is to enable quality boost by lowering |
318 * frame level Q periodically. This control function provides a mean to | 421 * frame level Q periodically. This control function provides a mean to |
319 * turn on/off this feature. | 422 * turn on/off this feature. |
320 * 0 = off | 423 * 0 = off |
321 * 1 = on | 424 * 1 = on |
322 * | 425 * |
323 * By default, the encoder is allowed to use this feature for appropriate | 426 * By default, the encoder is allowed to use this feature for appropriate |
324 * encoding modes. | 427 * encoding modes. |
| 428 * |
| 429 * Supported in codecs: VP9 |
325 */ | 430 */ |
326 VP9E_SET_FRAME_PERIODIC_BOOST, | 431 VP9E_SET_FRAME_PERIODIC_BOOST, |
327 | 432 |
328 /*!\brief control function to set noise sensitivity | 433 /*!\brief Codec control function to set noise sensitivity. |
329 * | 434 * |
330 * 0: off, 1: OnYOnly | 435 * 0: off, 1: On(YOnly) |
| 436 * |
| 437 * Supported in codecs: VP9 |
331 */ | 438 */ |
332 VP9E_SET_NOISE_SENSITIVITY, | 439 VP9E_SET_NOISE_SENSITIVITY, |
333 | 440 |
334 /*!\brief control function to turn on/off SVC in encoder. | 441 /*!\brief Codec control function to turn on/off SVC in encoder. |
335 * \note Return value is VPX_CODEC_INVALID_PARAM if the encoder does not | 442 * \note Return value is VPX_CODEC_INVALID_PARAM if the encoder does not |
336 * support SVC in its current encoding mode | 443 * support SVC in its current encoding mode |
337 * 0: off, 1: on | 444 * 0: off, 1: on |
| 445 * |
| 446 * Supported in codecs: VP9 |
338 */ | 447 */ |
339 VP9E_SET_SVC, | 448 VP9E_SET_SVC, |
340 | 449 |
341 /*!\brief control function to set parameters for SVC. | 450 /*!\brief Codec control function to set parameters for SVC. |
342 * \note Parameters contain min_q, max_q, scaling factor for each of the | 451 * \note Parameters contain min_q, max_q, scaling factor for each of the |
343 * SVC layers. | 452 * SVC layers. |
| 453 * |
| 454 * Supported in codecs: VP9 |
344 */ | 455 */ |
345 VP9E_SET_SVC_PARAMETERS, | 456 VP9E_SET_SVC_PARAMETERS, |
346 | 457 |
347 /*!\brief control function to set svc layer for spatial and temporal. | 458 /*!\brief Codec control function to set svc layer for spatial and temporal. |
348 * \note Valid ranges: 0..#vpx_codec_enc_cfg::ss_number_layers for spatial | 459 * \note Valid ranges: 0..#vpx_codec_enc_cfg::ss_number_layers for spatial |
349 * layer and 0..#vpx_codec_enc_cfg::ts_number_layers for | 460 * layer and 0..#vpx_codec_enc_cfg::ts_number_layers for |
350 * temporal layer. | 461 * temporal layer. |
| 462 * |
| 463 * Supported in codecs: VP9 |
351 */ | 464 */ |
352 VP9E_SET_SVC_LAYER_ID, | 465 VP9E_SET_SVC_LAYER_ID, |
353 | 466 |
354 /*!\brief control function to set content type. | 467 /*!\brief Codec control function to set content type. |
355 * \note Valid parameter range: | 468 * \note Valid parameter range: |
356 * VP9E_CONTENT_DEFAULT = Regular video content (Default) | 469 * VP9E_CONTENT_DEFAULT = Regular video content (Default) |
357 * VP9E_CONTENT_SCREEN = Screen capture content | 470 * VP9E_CONTENT_SCREEN = Screen capture content |
| 471 * |
| 472 * Supported in codecs: VP9 |
358 */ | 473 */ |
359 VP9E_SET_TUNE_CONTENT, | 474 VP9E_SET_TUNE_CONTENT, |
360 | 475 |
361 /*!\brief control function to get svc layer ID. | 476 /*!\brief Codec control function to get svc layer ID. |
362 * \note The layer ID returned is for the data packet from the registered | 477 * \note The layer ID returned is for the data packet from the registered |
363 * callback function. | 478 * callback function. |
| 479 * |
| 480 * Supported in codecs: VP9 |
364 */ | 481 */ |
365 VP9E_GET_SVC_LAYER_ID, | 482 VP9E_GET_SVC_LAYER_ID, |
366 | 483 |
367 /*!\brief control function to register callback for getting per layer packet. | 484 /*!\brief Codec control function to register callback to get per layer packet. |
368 * \note Parameter for this control function is a structure with a callback | 485 * \note Parameter for this control function is a structure with a callback |
369 * function and a pointer to private data used by the callback. | 486 * function and a pointer to private data used by the callback. |
| 487 * |
| 488 * Supported in codecs: VP9 |
370 */ | 489 */ |
371 VP9E_REGISTER_CX_CALLBACK, | 490 VP9E_REGISTER_CX_CALLBACK, |
372 | 491 |
373 /*!\brief control function to set color space info. | 492 /*!\brief Codec control function to set color space info. |
374 * \note Valid ranges: 0..7, default is "UNKNOWN". | 493 * \note Valid ranges: 0..7, default is "UNKNOWN". |
375 * 0 = UNKNOWN, | 494 * 0 = UNKNOWN, |
376 * 1 = BT_601 | 495 * 1 = BT_601 |
377 * 2 = BT_709 | 496 * 2 = BT_709 |
378 * 3 = SMPTE_170 | 497 * 3 = SMPTE_170 |
379 * 4 = SMPTE_240 | 498 * 4 = SMPTE_240 |
380 * 5 = BT_2020 | 499 * 5 = BT_2020 |
381 * 6 = RESERVED | 500 * 6 = RESERVED |
382 * 7 = SRGB | 501 * 7 = SRGB |
| 502 * |
| 503 * Supported in codecs: VP9 |
383 */ | 504 */ |
384 VP9E_SET_COLOR_SPACE, | 505 VP9E_SET_COLOR_SPACE, |
385 }; | 506 }; |
386 | 507 |
387 /*!\brief vpx 1-D scaling mode | 508 /*!\brief vpx 1-D scaling mode |
388 * | 509 * |
389 * This set of constants define 1-D vpx scaling modes | 510 * This set of constants define 1-D vpx scaling modes |
390 */ | 511 */ |
391 typedef enum vpx_scaling_mode_1d { | 512 typedef enum vpx_scaling_mode_1d { |
392 VP8E_NORMAL = 0, | 513 VP8E_NORMAL = 0, |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
524 VPX_CTRL_USE_TYPE(VP9E_SET_TILE_COLUMNS, int) | 645 VPX_CTRL_USE_TYPE(VP9E_SET_TILE_COLUMNS, int) |
525 VPX_CTRL_USE_TYPE(VP9E_SET_TILE_ROWS, int) | 646 VPX_CTRL_USE_TYPE(VP9E_SET_TILE_ROWS, int) |
526 | 647 |
527 VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER, int *) | 648 VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER, int *) |
528 VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER_64, int *) | 649 VPX_CTRL_USE_TYPE(VP8E_GET_LAST_QUANTIZER_64, int *) |
529 VPX_CTRL_USE_TYPE(VP9E_GET_SVC_LAYER_ID, vpx_svc_layer_id_t *) | 650 VPX_CTRL_USE_TYPE(VP9E_GET_SVC_LAYER_ID, vpx_svc_layer_id_t *) |
530 | 651 |
531 VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTRA_BITRATE_PCT, unsigned int) | 652 VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTRA_BITRATE_PCT, unsigned int) |
532 VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTER_BITRATE_PCT, unsigned int) | 653 VPX_CTRL_USE_TYPE(VP8E_SET_MAX_INTER_BITRATE_PCT, unsigned int) |
533 | 654 |
534 VPX_CTRL_USE_TYPE(VP8E_SET_GF_CBR_BOOST_PCT, unsigned int) | 655 VPX_CTRL_USE_TYPE(VP8E_SET_SCREEN_CONTENT_MODE, unsigned int) |
535 | 656 |
536 VPX_CTRL_USE_TYPE(VP8E_SET_SCREEN_CONTENT_MODE, unsigned int) | 657 VPX_CTRL_USE_TYPE(VP9E_SET_GF_CBR_BOOST_PCT, unsigned int) |
537 | 658 |
538 VPX_CTRL_USE_TYPE(VP9E_SET_LOSSLESS, unsigned int) | 659 VPX_CTRL_USE_TYPE(VP9E_SET_LOSSLESS, unsigned int) |
539 | 660 |
540 VPX_CTRL_USE_TYPE(VP9E_SET_FRAME_PARALLEL_DECODING, unsigned int) | 661 VPX_CTRL_USE_TYPE(VP9E_SET_FRAME_PARALLEL_DECODING, unsigned int) |
541 | 662 |
542 VPX_CTRL_USE_TYPE(VP9E_SET_AQ_MODE, unsigned int) | 663 VPX_CTRL_USE_TYPE(VP9E_SET_AQ_MODE, unsigned int) |
543 | 664 |
544 VPX_CTRL_USE_TYPE(VP9E_SET_FRAME_PERIODIC_BOOST, unsigned int) | 665 VPX_CTRL_USE_TYPE(VP9E_SET_FRAME_PERIODIC_BOOST, unsigned int) |
545 | 666 |
546 VPX_CTRL_USE_TYPE(VP9E_SET_NOISE_SENSITIVITY, unsigned int) | 667 VPX_CTRL_USE_TYPE(VP9E_SET_NOISE_SENSITIVITY, unsigned int) |
547 | 668 |
548 VPX_CTRL_USE_TYPE(VP9E_SET_TUNE_CONTENT, int) /* vp9e_tune_content */ | 669 VPX_CTRL_USE_TYPE(VP9E_SET_TUNE_CONTENT, int) /* vp9e_tune_content */ |
549 | 670 |
550 VPX_CTRL_USE_TYPE(VP9E_SET_COLOR_SPACE, int) | 671 VPX_CTRL_USE_TYPE(VP9E_SET_COLOR_SPACE, int) |
551 /*! @} - end defgroup vp8_encoder */ | 672 /*! @} - end defgroup vp8_encoder */ |
552 #ifdef __cplusplus | 673 #ifdef __cplusplus |
553 } // extern "C" | 674 } // extern "C" |
554 #endif | 675 #endif |
555 | 676 |
556 #endif // VPX_VP8CX_H_ | 677 #endif // VPX_VP8CX_H_ |
OLD | NEW |