Device Settings HAL 0.2.0
 
Loading...
Searching...
No Matches
dsVideoPort.h
Go to the documentation of this file.
1/*
2 * If not stated otherwise in this file or this component's LICENSE file the
3 * following copyright and licenses apply:
4 *
5 * Copyright 2016 RDK Management
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18*/
19
20/**
21 * @addtogroup HPK Hardware Porting Kit
22 * @{
23 * @par The Hardware Porting Kit
24 * HPK is the next evolution of the well-defined Hardware Abstraction Layer
25 * (HAL), but augmented with more comprehensive documentation and test suites
26 * that OEM or SOC vendors can use to self-certify their ports before taking
27 * them to RDKM for validation or to an operator for final integration and
28 * deployment. The Hardware Porting Kit effectively enables an OEM and/or SOC
29 * vendor to self-certify their own Video Accelerator devices, with minimal RDKM
30 * assistance.
31 *
32 */
33
34/**
35 * @addtogroup Device_Settings Device Settings Module
36 * @{
37 */
38
39/**
40 * @addtogroup Device_Settings_HAL Device Settings HAL
41 * @par Application API Specification
42 * Described herein are the DeviceSettings HAL types and functions that are part of
43 * the Video Port subsystem. The Video Port subsystem manages system-specific HAL operations.
44 * @{
45 */
46
47/**
48* @defgroup dsVideoPort_HAL DS Video Port HAL
49 * @{
50 * @par Application API Specification
51 * dsVideoPort HAL provides an interface for managing the Video Port settings for the device settings module
52 */
53
54/**
55 * @defgroup DSHAL_VIDEO_PORT_API DS HAL Video Port Public APIs
56 * @{
57 */
58
59/**
60 * @file dsVideoPort.h
61 *
62 * @brief Device Settings HAL Video Port Public API.
63 * This API defines the HAL for the Device Settings Video Port interface.
64 *
65 * @par Document
66 * Document reference.
67 *
68 * @par Open Issues (in no particular order)
69 * -# None
70 *
71 * @par Assumptions
72 * -# None
73 *
74 * @par Abbreviations
75 * - HAL: Hardware Abstraction Layer
76 * - API: Caller Programming Interface
77 * - Caller: Any user of the interface via the APIs
78 * - CPU: Central Processing Unit
79 * - DS: Device Settings
80 * - SoC: System on Chip
81 * - HDMI: High-Definition Multimedia Interface
82 * - DTCP: Digital Transmission Content Protection
83 * - HDCP: High-bandwidth Digital Content Protection
84 * - HDR: High Dynamic Range
85 * - SDR: Standard Dynamic Range
86 * - SCART: Syndicat des Constructeurs d'Appareils Radiorécepteurs et Téléviseurs - Radio and Television Receiver Manufacturers' Association
87 * - EDID: Extended Display Identification Data
88 *
89 * @par Implementation Notes
90 * -# None
91 *
92 */
93
94#ifndef _DS_VIDEOPORT_H
95#define _DS_VIDEOPORT_H
96
97#ifdef __cplusplus
98extern "C" {
99#endif
100
101#include "dsError.h"
102#include "dsTypes.h"
103
104/**
105 * @brief Callback function used to notify applications of Video Format change
106 *
107 * HAL Implementation should call this method to deliver updated Video Format info
108 * to the application
109 *
110 * @param videoFormat Current video format of the content playing
111 *
112 * @return None.
113 */
114typedef void (*dsVideoFormatUpdateCB_t)(dsHDRStandard_t videoFormat);
115
116/**
117 * @brief Initializes the underlying Video Port sub-system.
118 *
119 * This function must initialize all the video specific output ports and any associated resources.
120 *
121 * @return dsError_t - Status
122 * @retval dsERR_NONE - Success
123 * @retval dsERR_GENERAL - Underlying undefined platform error
124 *
125 * @warning This API is Not thread safe.
126 *
127 * @see dsVideoPortTerm()
128 */
130
131/**
132 * @brief Gets the handle for video port requested
133 *
134 * This function is used to get the handle of the video port corresponding to specified port type. It must return
135 * dsERR_OPERATION_NOT_SUPPORTED if the requested video port is unavailable.
136 *
137 * @param[in] type - Type of video port (e.g. HDMI). Please refer ::dsVideoPortType_t
138 * @param[in] index - Index of the video device (0, 1, ...) (Index of the port must be 0 if not specified)
139 * Max index is platform specific. Min value is 0.
140 * @param[out] handle - The handle used by the Caller to uniquely identify the HAL instance
141 *
142 * @return dsError_t - Status
143 * @retval dsERR_NONE - Success
144 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
145 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
146 * @retval dsERR_GENERAL - Underlying undefined platform error
147 *
148 * @pre dsVideoPortInit() must be called before calling this API.
149 *
150 * @warning This API is Not thread safe.
151 */
152dsError_t dsGetVideoPort(dsVideoPortType_t type, int index, intptr_t *handle);
153
154/**
155 * @brief Checks whether a video port is enabled or not.
156 *
157 * This function indicates whether the specified video port is enabled or not.
158 *
159 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
160 * @param[out] enabled - Flag to hold the enabled status of Video Port.
161 * ( @a true when video port is enabled or @a false otherwise)
162 *
163 * @return dsError_t - Status
164 * @retval dsERR_NONE - Success
165 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
166 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
167 * @retval dsERR_GENERAL - Underlying undefined platform error
168 *
169 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
170 *
171 * @warning This API is Not thread safe.
172 *
173 * @see dsEnableVideoPort()
174 */
175dsError_t dsIsVideoPortEnabled(intptr_t handle, bool *enabled);
176
177/**
178 * @brief Checks whether the specific video port is connected to display.
179 *
180 * This function is used to check whether video port is connected to a display or not.
181 *
182 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
183 * @param[out] connected - Flag to hold the connection status of display
184 * ( @a true if display is connected or @a false otherwise)
185 *
186 * @return dsError_t - Status
187 * @retval dsERR_NONE - Success
188 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
189 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
190 * @retval dsERR_GENERAL - Underlying undefined platform error
191 *
192 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
193 *
194 * @warning This API is Not thread safe.
195 */
196dsError_t dsIsDisplayConnected(intptr_t handle, bool *connected);
197
198/**
199 * @brief Checks if the connected display supports the audio surround.
200 *
201 * This function is used to check if the display connected to video port supports the audio surround.
202 *
203 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
204 * @param[out] surround - Audio surround support ( @a true if display supports surround sound or @a false otherwise)
205 *
206 * @return dsError_t - Status
207 * @retval dsERR_NONE - Success
208 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
209 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
210 * @retval dsERR_GENERAL - Underlying undefined platform error
211 *
212 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
213 *
214 * @warning This API is Not thread safe.
215 */
216dsError_t dsIsDisplaySurround(intptr_t handle, bool *surround);
217
218/**
219 * @brief Gets the surround mode of video port
220 *
221 * This function is used to get the surround mode of the specified video port.
222 *
223 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
224 * @param[out] surround - Surround mode .Please refer :: dsSURROUNDMode_t
225 *
226 * @return dsError_t - Status
227 * @retval dsERR_NONE - Success
228 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
229 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
230 * @retval dsERR_GENERAL - Underlying undefined platform error
231 *
232 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
233 *
234 * @warning This API is Not thread safe.
235 */
236dsError_t dsGetSurroundMode(intptr_t handle, int *surround);
237
238
239/**
240 * @brief Checks whether a video port is active or not.
241 *
242 * This function is used to indicate whether a video port is active or not. A HDMI output port is active if it is connected
243 * to the active port of sink device.
244 *
245 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
246 * @param[out] active - Connection state of the video port
247 * ( @a true if connected, @a false otherwise)
248 *
249 * @return dsError_t - Status
250 * @retval dsERR_NONE - Success
251 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
252 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
253 * @retval dsERR_GENERAL - Underlying undefined platform error
254 *
255 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
256 *
257 * @see dsSetActiveSource()
258 *
259 * @warning This API is Not thread safe.
260 */
261dsError_t dsIsVideoPortActive(intptr_t handle, bool *active);
262
263/**
264 * @brief Enables/Disables the DTCP of a video port.
265 *
266 * This function is used to enable/disable the DTCP (Digital Transmission Content Protection)
267 * for the specified video port. It must return dsERR_OPERATION_NOT_SUPPORTED if connected
268 * video port does not support DTCP.
269 *
270 *
271 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
272 * @param[in] contentProtect - Flag to enable/disable DTCP content protection
273 * ( @a true to enable, @a false to disable)
274 *
275 * @return dsError_t - Status
276 * @retval dsERR_NONE - Success
277 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
278 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
279 * @retval dsERR_GENERAL - Underlying undefined platform error
280 *
281 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
282 *
283 * @warning This API is Not thread safe.
284 *
285 * @see dsIsDTCPEnabled()
286 */
287dsError_t dsEnableDTCP(intptr_t handle, bool contentProtect);
288
289/**
290 * @brief Enables/Disables the HDCP of a video port.
291 *
292 * This function is used to enable/disable the HDCP (High-bandwidth Digital Content Protection)
293 * for the specified video port. It must return dsERR_OPERATION_NOT_SUPPORTED if connected
294 * video port does not support HDCP.
295 *
296 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
297 * @param[in] contentProtect - Flag to enable/disable DTCP content protection
298 * ( @a true to enable, @a false to disable)
299 * @param[in] hdcpKey - HDCP key
300 * @param[in] keySize - HDCP key size. Please refer ::HDCP_KEY_MAX_SIZE
301 *
302 * @return dsError_t - Status
303 * @retval dsERR_NONE - Success
304 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
305 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
306 * @retval dsERR_GENERAL - Underlying undefined platform error
307 *
308 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
309 *
310 * @warning This API is Not thread safe.
311 *
312 * @see dsGetHDCPStatus(), dsIsHDCPEnabled()
313 */
314dsError_t dsEnableHDCP(intptr_t handle, bool contentProtect, char *hdcpKey, size_t keySize);
315
316/**
317 * @brief Indicates whether a video port is DTCP protected.
318 *
319 * This function indicates whether the specified video port is configured for DTCP
320 * content protection. It must return dsERR_OPERATION_NOT_SUPPORTED if DTCP
321 * is not supported.
322 *
323 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
324 * @param [out] pContentProtected - Current DTCP content protection status
325 * ( @a true when enabled, @a false otherwise)
326 *
327 * @return dsError_t - Status
328 * @retval dsERR_NONE - Success
329 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
330 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
331 * @retval dsERR_GENERAL - Underlying undefined platform error
332 *
333 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
334 *
335 * @warning This API is Not thread safe.
336 *
337 * @see dsEnableDTCP()
338 */
339dsError_t dsIsDTCPEnabled (intptr_t handle, bool* pContentProtected);
340
341 /**
342 * @brief Indicates whether a video port is HDCP protected.
343 *
344 * This function indicates whether the specified video port is configured for HDCP
345 * content protection. It must return dsERR_OPERATION_NOT_SUPPORTED if HDCP
346 * is not supported.
347 *
348 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
349 * @param [out] pContentProtected - Current HDCP content protection status
350 * ( @a true when enabled, @a false otherwise)
351 *
352 * @return dsError_t - Status
353 * @retval dsERR_NONE - Success
354 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
355 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
356 * @retval dsERR_GENERAL - Underlying undefined platform error
357 *
358 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
359 *
360 * @warning This API is Not thread safe.
361 *
362 * @see dsEnableHDCP()
363 */
364dsError_t dsIsHDCPEnabled (intptr_t handle, bool* pContentProtected);
365
366 /**
367 * @brief Enables/Disables a video port.
368 *
369 * This function enables or disables the specified video port.
370 *
371 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
372 * @param[in] enabled - Flag to enable/disable the video port
373 * ( @a true to enable, @a false to disable)
374 *
375 * @return dsError_t - Status
376 * @retval dsERR_NONE - Success
377 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
378 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
379 * @retval dsERR_GENERAL - Underlying undefined platform error
380 *
381 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
382 *
383 * @warning This API is Not thread safe.
384 *
385 * @see dsIsVideoPortEnabled()
386 */
387dsError_t dsEnableVideoPort(intptr_t handle, bool enabled);
388
389/**
390 * @brief Sets the display resolution of specified video port.
391 *
392 * This function sets the resolution of the specified video port.
393 *
394 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
395 * @param[in] resolution - Video resolution. Please refer ::dsVideoPortResolution_t
396 * @param [in] persist - In false state allows disabling persist of resolution value.
397 *
398 * @return dsError_t - Status
399 * @retval dsERR_NONE - Success
400 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
401 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
402 * @retval dsERR_GENERAL - Underlying undefined platform error
403 *
404 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
405 *
406 * @warning This API is Not thread safe.
407 *
408 * @see dsGetResolution()
409 */
410dsError_t dsSetResolution(intptr_t handle, dsVideoPortResolution_t *resolution, bool persist);
411
412/**
413 * @brief Gets the display resolution of specified video port.
414 *
415 * This function gets the current display resolution of the specified video port.
416 *
417 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
418 * @param [out] resolution - Current resolution of the video port. Please refer ::dsVideoPortResolution_t
419 *
420 * @return dsError_t - Status
421 * @retval dsERR_NONE - Success
422 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
423 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
424 * @retval dsERR_GENERAL - Underlying undefined platform error
425 *
426 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
427 *
428 * @warning This API is Not thread safe.
429 *
430 * @see dsSetResolution()
431 */
433
434/**
435 * @brief Sets the specified video port as active source.
436 *
437 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
438 *
439 * @return dsError_t - Status
440 * @retval dsERR_NONE - Success
441 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
442 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
443 * @retval dsERR_GENERAL - Underlying undefined platform error
444 *
445 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
446 *
447 * @see dsIsVideoPortActive()
448 *
449 * @warning This API is Not thread safe.
450 */
452
453 /**
454 * @brief Terminates the underlying Video Port sub-system.
455 *
456 * This function must terminate all the video output ports and any associated resources.
457 *
458 * @return dsError_t - Status
459 * @retval dsERR_NONE - Success
460 * @retval dsERR_GENERAL - Underlying undefined platform error
461 *
462 * @pre dsVideoPortInit() must be called before calling this API.
463 *
464 * @warning This API is Not thread safe.
465 *
466 * @see dsVideoPortInit()
467 */
469
470/**
471 * @brief Initialize the Video Resolution
472 *
473 * This function Initialize the Video Resolution
474 *
475 * @return dsError_t - Status
476 * @retval dsERR_NONE - Success
477 * @retval dsERR_GENERAL - Underlying undefined platform error
478 *
479 */
481
482/**
483 * @brief Callback function to notify the HDCP status change.
484 *
485 * HAL Implementation must invoke this callback to notify the HDCP status change event
486 * to the caller(e.g. Authentication , Failure etc.).
487 *
488 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
489 * @param[in] status - HDCP status change. Please refer :: dsHdcpStatus_t
490 *
491 * @pre dsRegisterHdcpStatusCallback()
492 *
493 */
494typedef void (*dsHDCPStatusCallback_t)(intptr_t handle, dsHdcpStatus_t status);
495
496/**
497 * @brief Callback Registration for the HDCP status change event.
498 *
499 * This function registers a callback function to receive the HDCP status change event from
500 * the specific HDMI Port
501 *
502 * @note Application must install at most one callback function per handle.
503 * Multiple listeners are supported at application layer and thus not
504 * required in HAL implementation.
505 *
506 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
507 * @param[in] cb - Callback function. Please refer ::dsHDCPStatusCallback_t
508 *
509 * @return dsError_t - Status
510 * @retval dsERR_NONE - Success
511 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
512 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
513 * @retval dsERR_GENERAL - Underlying undefined platform error
514 *
515 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
516 *
517 * @warning This API is Not thread safe.
518 */
520
521 /**
522 * @brief Gets the current HDCP status of the specified video port.
523 *
524 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
525 * @param[out] status - HDCP status of the video port. Please refer ::dsHdcpStatus_t
526 *
527 * @return dsError_t - Status
528 * @retval dsERR_NONE - Success
529 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
530 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
531 * @retval dsERR_GENERAL - Underlying undefined platform error
532 *
533 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
534 *
535 * @warning This API is Not thread safe.
536 *
537 * @see dsEnableHDCP()
538 */
539dsError_t dsGetHDCPStatus (intptr_t handle, dsHdcpStatus_t *status);
540
541/**
542 * @brief Gets the HDCP protocol version of the device.
543 *
544 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
545 * @param [out] protocolVersion - HDCP protocol version. Please refer ::dsHdcpProtocolVersion_t
546 *
547 * @return dsError_t - Status
548 * @retval dsERR_NONE - Success
549 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
550 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
551 * @retval dsERR_GENERAL - Underlying undefined platform error
552 *
553 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
554 *
555 * @warning This API is Not thread safe.
556 *
557 * @see dsEnableHDCP()
558 */
559dsError_t dsGetHDCPProtocol (intptr_t handle,dsHdcpProtocolVersion_t *protocolVersion);
560
561/**
562 * @brief Gets the HDCP protocol version of the connected sink device.
563 *
564 * This function is only for source devices.
565 *
566 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
567 * @param [out] protocolVersion - HDCP protocol version. Please refer ::dsHdcpProtocolVersion_t
568 *
569 * @return dsError_t - Status
570 * @retval dsERR_NONE - Success
571 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
572 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported/When a sink device invokes this API
573 * @retval dsERR_GENERAL - Underlying undefined platform error
574 *
575 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
576 *
577 * @warning This API is Not thread safe.
578 *
579 * @see dsEnableHDCP()
580 */
582
583/**
584 * @brief Gets the current negotiated HDCP protocol version.
585 *
586 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
587 * @param [out] protocolVersion - HDCP protocol version. Please refer ::dsHdcpProtocolVersion_t
588 *
589 * @return dsError_t - Status
590 * @retval dsERR_NONE - Success
591 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
592 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
593 * @retval dsERR_GENERAL - Underlying undefined platform error
594 *
595 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
596 *
597 * @warning This API is Not thread safe.
598 *
599 * @see dsEnableHDCP()
600 */
602
603/**
604 * @brief Gets the HDR capabilities of the TV/display device
605 *
606 * This function is used to get the HDR capabilities of the TV/display device.
607 *
608 * @param[in] handle - Handle of the video port(TV) returned from dsGetVideoPort()
609 * @param [out] capabilities - Bitwise OR-ed value of supported HDR standards. Please refer ::dsHDRStandard_t
610 *
611 * @return dsError_t - Status
612 * @retval dsERR_NONE - Success
613 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
614 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
615 * @retval dsERR_GENERAL - Underlying undefined platform error
616 *
617 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
618 *
619 * @see dsIsOutputHDR()
620 *
621 * @warning This API is Not thread safe.
622 */
623dsError_t dsGetTVHDRCapabilities(intptr_t handle, int *capabilities);
624
625/**
626 * @brief Gets the supported resolutions of TV.
627 *
628 * This function is used to get TV supported resolutions of TV/display device.
629 *
630 * @param[in] handle - Handle of the video port(TV) returned from dsGetVideoPort()
631 * @param [out] resolutions - OR-ed value supported resolutions. Please refer ::dsTVResolution_t
632 *
633 * @return dsError_t - Status
634 * @retval dsERR_NONE - Success
635 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
636 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
637 * @retval dsERR_GENERAL - Underlying undefined platform error
638 *
639 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
640 *
641 * @warning This API is Not thread safe.
642 */
643dsError_t dsSupportedTvResolutions(intptr_t handle, int *resolutions);
644
645/**
646 * @brief Sets ForceDisable 4K support variable.
647 *
648 * This function is used to set Forcefully disable 4K support.
649 *
650 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
651 * @param [out] disable - bool value to disable 4K support
652 * ( @a true to forcefully disable 4K support, @a false otherwise)
653 *
654 * @return dsError_t - Status
655 * @retval dsERR_NONE - Success
656 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
657 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
658 * @retval dsERR_GENERAL - Underlying undefined platform error
659 *
660 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
661 *
662 * @warning This API is Not thread safe.
663 *
664 * @see dsGetForceDisable4KSupport()
665 */
666dsError_t dsSetForceDisable4KSupport(intptr_t handle, bool disable);
667
668/**
669 * @brief Gets ForceDisable 4K support variable.
670 *
671 * This function is used to get status if the device is Forcefully disabled 4K support.
672 *
673 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
674 * @param [out] disable - bool value which indicates whether 4K Support is forcefully disabled or not
675 * ( @a true if disabled, @a false otherwise)
676 *
677 * @return dsError_t - Status
678 * @retval dsERR_NONE - Success
679 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
680 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
681 * @retval dsERR_GENERAL - Underlying undefined platform error
682 *
683 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
684 *
685 * @warning This API is Not thread safe.
686 *
687 * @see dsSetForceDisable4KSupport()
688 */
689dsError_t dsGetForceDisable4KSupport(intptr_t handle, bool *disable);
690
691 /**
692 * @brief Sets various SCART parameters
693 *
694 * Supported values:
695 * parameter_str value_str
696 * "aspect_ratio" "4x3", 16x9"
697 * "tv_startup" "on", "off"
698 * "tv_startup" "on", "off"
699 * "rgb" "on" (disables cvbs)
700 * "cvbs" "on" (disables rgb)
701 * "macrovision", "*" (not implemented)
702 * "cgms", "disabled"
703 * "cgms", "copyNever"
704 * "cgms", "copyOnce"
705 * "cgms", "copyFreely"
706 * "cgms", "copyNoMore"
707 * "port" "on", "off"
708 *
709 * @param[in] handle - a name of parameter
710 * @param[in] parameter_str - a name of parameter
711 * @param[in] value_str - a value of parameter
712 *
713 * @return dsError_t - Status
714 * @retval dsERR_NONE - Success
715 * @retval dsERR_GENERAL - Underlying undefined platform error
716 *
717 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
718 *
719 * @warning This API is Not thread safe.
720 */
721dsError_t dsSetScartParameter(intptr_t handle, const char* parameter_str, const char* value_str);
722
723/**
724 * @brief Gets the current video Electro-Optical Transfer Function (EOT) value.
725 *
726 * This function is used to get the current Electro-Optical Transfer Function of the specified video port.
727 *
728 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
729 * @param[out] video_eotf - EOTF value. Please refer ::dsHDRStandard_t
730 *
731 * @return dsError_t - Status
732 * @retval dsERR_NONE - Success
733 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
734 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
735 * @retval dsERR_GENERAL - Underlying undefined platform error
736 *
737 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
738 *
739 * @warning This API is Not thread safe.
740 */
741dsError_t dsGetVideoEOTF(intptr_t handle, dsHDRStandard_t *video_eotf);
742
743/**
744 * @brief Gets the current matrix coefficients value.
745 *
746 * This function is used to get the current matrix coefficient value of the specified video port.
747 *
748 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
749 * @param[out] matrix_coefficients - pointer to matrix coefficients value. Please refer ::dsDisplayMatrixCoefficients_t
750 *
751 * @return dsError_t - Status
752 * @retval dsERR_NONE - Success
753 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
754 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
755 * @retval dsERR_GENERAL - Underlying undefined platform error
756 *
757 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
758 *
759 * @warning This API is Not thread safe.
760 */
762
763/**
764 * @brief Gets the color depth value of specified video port.
765 *
766 * This fundtion is used to get the current color depth value of specified video port.
767 *
768 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
769 * @param[out] color_depth - pointer to color depth values.Please refer :: dsDisplayColorDepth_t
770 *
771 * @return dsError_t - Status
772 * @retval dsERR_NONE - Success
773 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
774 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
775 * @retval dsERR_GENERAL - Underlying undefined platform error
776 *
777 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
778 *
779 * @warning This API is Not thread safe.
780 */
781dsError_t dsGetColorDepth(intptr_t handle, unsigned int* color_depth);
782
783/**
784 * @brief Gets the color space setting of specified video port.
785 *
786 * This function is used to get the current color space setting of specified video port.
787 *
788 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
789 * @param[out] color_space - pointer to color space value. Please refer ::dsDisplayColorSpace_t
790 *
791 * @return dsError_t - Status
792 * @retval dsERR_NONE - Success
793 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
794 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
795 * @retval dsERR_GENERAL - Underlying undefined platform error
796 *
797 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
798 *
799 * @warning This API is Not thread safe.
800 */
801dsError_t dsGetColorSpace(intptr_t handle, dsDisplayColorSpace_t* color_space);
802
803/**
804 * @brief Gets the quantization range of specified video port.
805 *
806 * This function is used to get the quantization range of the specified video port.
807 *
808 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
809 * @param[out] quantization_range - pointer to quantization range. Please refer ::dsDisplayQuantizationRange_t
810 *
811 * @return dsError_t - Status
812 * @retval dsERR_NONE - Success
813 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
814 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
815 * @retval dsERR_GENERAL - Underlying undefined platform error
816 *
817 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
818 *
819 * @warning This API is Not thread safe.
820 */
822
823/**
824 * @brief Gets current color space setting, color depth, matrix coefficients, video Electro-Optical Transfer Function (EOT)
825 * and quantization range in one call of the specified video port
826 *
827 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
828 * @param[out] video_eotf - pointer to EOTF value. Please refer ::dsHDRStandard_t
829 * @param[out] matrix_coefficients - pointer to matrix coefficients value. Please refer ::dsDisplayMatrixCoefficients_t
830 * @param[out] color_space - pointer to color space value. Please refer ::dsDisplayColorSpace_t
831 * @param[out] color_depth - pointer to color depths value. Please refer ::dsDisplayColorDepth_t
832 * @param[out] quantization_range - pointer to quantization range value. Please refer ::dsDisplayQuantizationRange_t
833 *
834 * @return dsError_t - Status
835 * @retval dsERR_NONE - Success
836 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
837 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
838 * @retval dsERR_GENERAL - Underlying undefined platform error
839 *
840 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
841 *
842 * @warning This API is Not thread safe.
843 */
844dsError_t dsGetCurrentOutputSettings(intptr_t handle, dsHDRStandard_t* video_eotf, dsDisplayMatrixCoefficients_t* matrix_coefficients, dsDisplayColorSpace_t* color_space, unsigned int* color_depth, dsDisplayQuantizationRange_t* quantization_range);
845
846/**
847 * @brief Checks if video output is HDR or not.
848 *
849 * This function checks if the video output is HDR or not.
850 *
851 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
852 * @param [out] hdr - pointer to HDR support status.( @a true if output is HDR, @a false otherwise )
853 *
854 * @return dsError_t - Status
855 * @retval dsERR_NONE - Success
856 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
857 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
858 * @retval dsERR_GENERAL - Underlying undefined platform error
859 *
860 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
861 *
862 * @see dsGetTVHDRCapabilities()
863 *
864 * @warning This API is Not thread safe.
865 */
866dsError_t dsIsOutputHDR(intptr_t handle, bool *hdr);
867
868/**
869 * @brief Resets Video Output to SDR.
870 *
871 * This function resets the video output to SDR.
872 *
873 * @return dsError_t - Status
874 * @retval dsERR_NONE - Success
875 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
876 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
877 * @retval dsERR_GENERAL - Underlying undefined platform error
878 *
879 * @pre dsVideoPortInit() must be called before calling this API.
880 *
881 * @warning This API is Not thread safe.
882 */
884
885/**
886 * @brief Sets the preferred HDMI Protocol of the specified video port.
887 *
888 * This function sets the preferred HDMI Protocol of the specified video port.
889 *
890 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
891 * @param[in] hdcpCurrentProtocol - HDCP protocol to be set. Please refer ::dsHdcpProtocolVersion_t
892 *
893 * @return dsError_t - Status
894 * @retval dsERR_NONE - Success
895 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
896 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
897 * @retval dsERR_GENERAL - Underlying undefined platform error
898 *
899 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
900 *
901 * @warning This API is Not thread safe.
902 *
903 * @see dsGetHdmiPreference()
904 */
905dsError_t dsSetHdmiPreference(intptr_t handle, dsHdcpProtocolVersion_t *hdcpCurrentProtocol);
906
907/**
908 * @brief Gets the preferred HDMI Protocol version of specified video port.
909 *
910 * This function is used to get the preferred HDMI protocol version of the specified video port.
911 *
912 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
913 * @param [out] hdcpCurrentProtocol - Preferred HDMI Protocol. Please refer ::dsHdcpProtocolVersion_t
914 *
915 * @return dsError_t - Status
916 * @retval dsERR_NONE - Success
917 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
918 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
919 * @retval dsERR_GENERAL - Underlying undefined platform error
920 *
921 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
922 *
923 * @warning This API is Not thread safe.
924 *
925 * @see dsSetHdmiPreference()
926 */
927dsError_t dsGetHdmiPreference(intptr_t handle, dsHdcpProtocolVersion_t *hdcpCurrentProtocol);
928
929/**
930 * @brief Gets the IgnoreEDID status variable set in the device.
931 *
932 * This function is used to retrieve the status variable in order to determine whether to ignore the EDID data or not.
933 *
934 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
935 * @param [out] status - Status of IgnoreEDID variable, ( @a true if EDID data ccan be ignored, @a false otherwise )
936 *
937 * @return dsError_t - Status
938 * @retval dsERR_NONE - Success
939 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
940 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
941 * @retval dsERR_GENERAL - Underlying undefined platform error
942 *
943 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
944 *
945 * @warning This API is Not thread safe.
946 */
947dsError_t dsGetIgnoreEDIDStatus(intptr_t handle, bool* status);
948
949/**
950 * @brief Sets the background color of the specified video port.
951 *
952 * This function sets the background color of the specified video port.
953 *
954 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
955 * @param[in] color - Background color to be set. Please refer ::dsVideoBackgroundColor_t
956 *
957 * @return dsError_t - Status
958 * @retval dsERR_NONE - Success
959 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
960 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
961 * @retval dsERR_GENERAL - Underlying undefined platform error
962 *
963 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
964 *
965 * @warning This API is Not thread safe.
966 */
968
969/**
970 * @brief Sets/Resets the force HDR mode.
971 *
972 * This function is used to set/reset force HDR mode for the specified video port.
973 *
974 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
975 * @param[in] mode - HDR mode to be forced. Please refer ::dsHDRStandard_t
976 *
977 * @return dsError_t - Status
978 * @retval dsERR_NONE - Success
979 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
980 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
981 * @retval dsERR_GENERAL - Underlying undefined platform error
982 *
983 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
984 *
985 * @warning This API is Not thread safe.
986 */
988
989/**
990 * @brief Gets the color depth capabilities of the specified video port
991 *
992 * This function is used to get the color depth capabilities of the specified video port.
993 *
994 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
995 * @param [out] colorDepthCapability - OR-ed value of supported color depth standards. Please refer ::dsDisplayColorDepth_t
996 *
997 * @return dsError_t - Status
998 * @retval dsERR_NONE - Success
999 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
1000 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
1001 * @retval dsERR_GENERAL - Underlying undefined platform error
1002 *
1003 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
1004 *
1005 * @warning This API is Not thread safe.
1006 */
1007dsError_t dsColorDepthCapabilities(intptr_t handle, unsigned int *colorDepthCapability );
1008
1009/**
1010 * @brief Gets the preferred color depth values.
1011 *
1012 * This function is used to get the preferred color depth of the specified video port.
1013 *
1014 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
1015 * @param [out] colorDepth - color depth value. Please refer ::dsDisplayColorDepth_t
1016 * @param [in] persist - In false state allows disabling persist of resolution value.
1017 *
1018 * @return dsError_t - Status
1019 * @retval dsERR_NONE - Success
1020 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
1021 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
1022 * @retval dsERR_GENERAL - Underlying undefined platform error
1023 *
1024 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
1025 *
1026 * @warning This API is Not thread safe.
1027 *
1028 * @see dsSetPreferredColorDepth()
1029 */
1030dsError_t dsGetPreferredColorDepth(intptr_t handle, dsDisplayColorDepth_t *colorDepth, bool persist );
1031
1032/**
1033 * @brief Sets the preferred color depth for the specified video port.
1034 *
1035 * This function is used to set the preferred color depth for the specified video port.
1036 *
1037 * @param[in] handle - Handle of the video port returned from dsGetVideoPort()
1038 * @param[in] colorDepth - color depth value. Please refer :: dsDisplayColorDepth_t
1039 * @param [in] persist - In false state allows disabling persist of resolution value.
1040 *
1041 * @return dsError_t - Status
1042 * @retval dsERR_NONE - Success
1043 * @retval dsERR_NOT_INITIALIZED - Module is not initialised
1044 * @retval dsERR_INVALID_PARAM - Parameter passed to this function is invalid
1045 * @retval dsERR_OPERATION_NOT_SUPPORTED - The attempted operation is not supported
1046 * @retval dsERR_GENERAL - Underlying undefined platform error
1047 *
1048 * @pre dsVideoPortInit() and dsGetVideoPort() must be called before calling this API.
1049 *
1050 * @warning This API is Not thread safe.
1051 *
1052 * @see dsGetPreferredColorDepth()
1053 */
1054dsError_t dsSetPreferredColorDepth(intptr_t handle,dsDisplayColorDepth_t colorDepth, bool persist );
1055
1056#ifdef __cplusplus
1057}
1058#endif
1059#endif /* _DS_VIDEOPORT_H */
1060
1061/** @} */ // End of DS HAL VIDEO PORT Public APIs
1062/** @} */ // End of DS Video Port HAL
1063/** @} */ // End of Device Settings HAL
1064/** @} */ // End of Device Settings Module
1065/** @} */ // End of HPK
Device Settings HAL error codes.
HAL types.
dsError_t
Device Settings API Error return codes.
Definition dsError.h:100
enum _dsVideoBackgroundColor_t dsVideoBackgroundColor_t
This enumeration defines background color for video port.
enum _dsDisplayColorDepth_t dsDisplayColorDepth_t
This enumeration defines the type of display Color depth.
enum _dsDisplayColorSpace_t dsDisplayColorSpace_t
This enumeration defines the type of display color spaces supported.
enum _dsDisplayQuantizationRange_t dsDisplayQuantizationRange_t
This enumeration defines the type of display quantization ranges.
enum _dsDisplayMatrixCoefficients_t dsDisplayMatrixCoefficients_t
This enumeration defines the type of Matrix coefficients.
enum _dsHdcpStatus_t dsHdcpStatus_t
This enumeration defines all HDCP Authentication Status.
enum _dsHdcpProtocolVersion_t dsHdcpProtocolVersion_t
This enumeration defines HDCP protocol version types.
enum _dsVideoPortType_t dsVideoPortType_t
This enumeration defines all of the standard type of Video ports.
enum _dsHDRStandard_t dsHDRStandard_t
Enumeration defines all of the standard HDR types. Each bit of uint32_t represent a standard....
dsError_t dsSetForceDisable4KSupport(intptr_t handle, bool disable)
Sets ForceDisable 4K support variable.
dsError_t dsGetResolution(intptr_t handle, dsVideoPortResolution_t *resolution)
Gets the display resolution of specified video port.
dsError_t dsIsDTCPEnabled(intptr_t handle, bool *pContentProtected)
Indicates whether a video port is DTCP protected.
dsError_t dsColorDepthCapabilities(intptr_t handle, unsigned int *colorDepthCapability)
Gets the color depth capabilities of the specified video port.
dsError_t dsGetHDCPStatus(intptr_t handle, dsHdcpStatus_t *status)
Gets the current HDCP status of the specified video port.
dsError_t dsSetHdmiPreference(intptr_t handle, dsHdcpProtocolVersion_t *hdcpCurrentProtocol)
Sets the preferred HDMI Protocol of the specified video port.
dsError_t dsSetBackgroundColor(intptr_t handle, dsVideoBackgroundColor_t color)
Sets the background color of the specified video port.
dsError_t dsEnableHDCP(intptr_t handle, bool contentProtect, char *hdcpKey, size_t keySize)
Enables/Disables the HDCP of a video port.
dsError_t dsGetIgnoreEDIDStatus(intptr_t handle, bool *status)
Gets the IgnoreEDID status variable set in the device.
dsError_t dsIsDisplaySurround(intptr_t handle, bool *surround)
Checks if the connected display supports the audio surround.
void(* dsHDCPStatusCallback_t)(intptr_t handle, dsHdcpStatus_t status)
Callback function to notify the HDCP status change.
Definition dsVideoPort.h:494
dsError_t dsGetVideoEOTF(intptr_t handle, dsHDRStandard_t *video_eotf)
Gets the current video Electro-Optical Transfer Function (EOT) value.
dsError_t dsGetHDCPProtocol(intptr_t handle, dsHdcpProtocolVersion_t *protocolVersion)
Gets the HDCP protocol version of the device.
dsError_t dsInitResolution(dsVideoPortResolution_t *)
Initialize the Video Resolution.
dsError_t dsEnableVideoPort(intptr_t handle, bool enabled)
Enables/Disables a video port.
dsError_t dsIsVideoPortEnabled(intptr_t handle, bool *enabled)
Checks whether a video port is enabled or not.
dsError_t dsGetColorDepth(intptr_t handle, unsigned int *color_depth)
Gets the color depth value of specified video port.
dsError_t dsVideoPortInit()
Initializes the underlying Video Port sub-system.
dsError_t dsGetSurroundMode(intptr_t handle, int *surround)
Gets the surround mode of video port.
dsError_t dsGetQuantizationRange(intptr_t handle, dsDisplayQuantizationRange_t *quantization_range)
Gets the quantization range of specified video port.
dsError_t dsIsOutputHDR(intptr_t handle, bool *hdr)
Checks if video output is HDR or not.
dsError_t dsIsDisplayConnected(intptr_t handle, bool *connected)
Checks whether the specific video port is connected to display.
dsError_t dsResetOutputToSDR()
Resets Video Output to SDR.
dsError_t dsGetCurrentOutputSettings(intptr_t handle, dsHDRStandard_t *video_eotf, dsDisplayMatrixCoefficients_t *matrix_coefficients, dsDisplayColorSpace_t *color_space, unsigned int *color_depth, dsDisplayQuantizationRange_t *quantization_range)
Gets current color space setting, color depth, matrix coefficients, video Electro-Optical Transfer Fu...
dsError_t dsGetVideoPort(dsVideoPortType_t type, int index, intptr_t *handle)
Gets the handle for video port requested.
dsError_t dsGetHDCPReceiverProtocol(intptr_t handle, dsHdcpProtocolVersion_t *protocolVersion)
Gets the HDCP protocol version of the connected sink device.
dsError_t dsGetForceDisable4KSupport(intptr_t handle, bool *disable)
Gets ForceDisable 4K support variable.
dsError_t dsRegisterHdcpStatusCallback(intptr_t handle, dsHDCPStatusCallback_t cb)
Callback Registration for the HDCP status change event.
dsError_t dsIsHDCPEnabled(intptr_t handle, bool *pContentProtected)
Indicates whether a video port is HDCP protected.
dsError_t dsGetColorSpace(intptr_t handle, dsDisplayColorSpace_t *color_space)
Gets the color space setting of specified video port.
void(* dsVideoFormatUpdateCB_t)(dsHDRStandard_t videoFormat)
Callback function used to notify applications of Video Format change.
Definition dsVideoPort.h:114
dsError_t dsVideoPortTerm()
Terminates the underlying Video Port sub-system.
dsError_t dsEnableDTCP(intptr_t handle, bool contentProtect)
Enables/Disables the DTCP of a video port.
dsError_t dsIsVideoPortActive(intptr_t handle, bool *active)
Checks whether a video port is active or not.
dsError_t dsSetPreferredColorDepth(intptr_t handle, dsDisplayColorDepth_t colorDepth, bool persist)
Sets the preferred color depth for the specified video port.
dsError_t dsGetPreferredColorDepth(intptr_t handle, dsDisplayColorDepth_t *colorDepth, bool persist)
Gets the preferred color depth values.
dsError_t dsSetScartParameter(intptr_t handle, const char *parameter_str, const char *value_str)
Sets various SCART parameters.
dsError_t dsSetResolution(intptr_t handle, dsVideoPortResolution_t *resolution, bool persist)
Sets the display resolution of specified video port.
dsError_t dsGetTVHDRCapabilities(intptr_t handle, int *capabilities)
Gets the HDR capabilities of the TV/display device.
dsError_t dsGetHDCPCurrentProtocol(intptr_t handle, dsHdcpProtocolVersion_t *protocolVersion)
Gets the current negotiated HDCP protocol version.
dsError_t dsGetHdmiPreference(intptr_t handle, dsHdcpProtocolVersion_t *hdcpCurrentProtocol)
Gets the preferred HDMI Protocol version of specified video port.
dsError_t dsSetActiveSource(intptr_t handle)
Sets the specified video port as active source.
dsError_t dsSetForceHDRMode(intptr_t handle, dsHDRStandard_t mode)
Sets/Resets the force HDR mode.
dsError_t dsGetMatrixCoefficients(intptr_t handle, dsDisplayMatrixCoefficients_t *matrix_coefficients)
Gets the current matrix coefficients value.
dsError_t dsSupportedTvResolutions(intptr_t handle, int *resolutions)
Gets the supported resolutions of TV.
Structure that defines video port resolution settings of output video device.
Definition dsTypes.h:582