source: svn/newcon3bcm2_21bu/dst/dhl/api/include/DHL_AVCAP.h

Last change on this file was 76, checked in by megakiss, 10 years ago

1W 대기전력을 만족시키기 위하여 POWEROFF시 튜너를 Standby 상태로 함

  • Property svn:executable set to *
File size: 35.5 KB
Line 
1/**
2        @file
3                DHL_AVCAP.h
4
5        @brief
6                DHL AVCAP (Audio/Video decoding and Capture) API
7
8        AudioVideo decoding/capture/output API Header
9
10        Copyright 2006~2010 Digital STREAM Technology, Inc.
11        All Rights Reserved
12*/
13
14
15#ifndef __DHL_AVCAP_H__
16#define __DHL_AVCAP_H__
17
18
19#include "DHL_OSAL.h"
20
21#include "DHL_MPEGTypes.h"
22
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28
29
30#if COMMENT
31____Overview____(){}
32#endif
33
34/**
35        @file DHL_AVCAP.h
36       
37
38
39        HAL Interface Design Philosophy
40
41        Target:
42                Audio Video µðÄÚµù ¹× Ãâ·Â°ú °ü·ÃµÈ ±â´É.
43
44        °¢ ¼­ºñ½º º° ÀÔ·Â µ¥ÀÌÅÍ Æ÷Æ®
45       
46                ¾Æ³¯·Î±× ÀÔ·Â
47                        NTSC ¹æ¼Û
48                        ¾Æ³¯·Î±× ¿ÜºÎ ÀÔ·Â (ÄÄÆ÷³ÍÆ®, ÄÄÆ÷ÁöÆ®)
49                        ==> BT.601/656 ÀÔ·Â Æ÷Æ® ÇÚµé·Î Ãß»óÈ­ ÇÔ.
50                       
51                µðÁöÅÐ Compressed ÀÔ·Â
52                        Terrestrial ¹× Cable RF ¹æ¼Û
53                        IEEE1 1394
54                        ==> ¸ðµÎ DHL DemuxÀÇ DHL_TSD ÇÚµé·Î Ãß»óÈ­ ÇÔ.
55               
56                µðÁöÅÐ Uncompressed ÀÔ·Â
57                        HDMI ÀÔ·Â
58                        ==> TBD..
59       
60               
61
62       
63        module overview
64                -
65                -
66
67        APIs
68       
69        implementations
70       
71        dependencies           
72       
73        nv parameters
74               
75*/
76
77
78#if COMMENT
79____Config____(){}
80#endif
81
82/*
83        ÀÌ ºÎºÐÀº º°µµÀÇ DHL_XXX_Config configuration file À»
84        Ȱ¿ëÇÏ´Â °ÍÀÌ ÁÁÀ» °Í °°À½.
85*/
86#include "DHL_Config.h"
87
88
89#if COMMENT
90____Types____(){}
91#endif
92
93typedef enum {
94        eDHL_UD_TYPE_SEQ,
95        eDHL_UD_TYPE_GOP,
96        eDHL_UD_TYPE_PICTURE,
97        eDHL_UD_TYPE_SEI, /*H.264*/
98        eDHL_UD_TYPE_ENTRYPOINT,
99        eDHL_UD_TYPE_FIELD,
100        eDHL_UD_TYPE_FRAME,
101        eDHL_UD_TYPE_SLICE
102} tDHL_UserDataType;
103
104typedef enum 
105{
106        eDHL_PIC_POLARITY_TOP_FIELD,
107        eDHL_PIC_POLARITY_TOP_BOTTOM,
108        eDHL_PIC_POLARITY_TOP_FRAME
109}       tDHL_PicPolarity;
110
111typedef enum {
112        eDHL_PIC_CODING_UNKNOWN=0,
113        eDHL_PIC_CODING_I,
114        eDHL_PIC_CODING_P,
115        eDHL_PIC_CODING_B
116} tDHL_PicCoding;
117       
118typedef struct
119{
120        UINT32 block_size;
121        tDHL_PicPolarity polarity;
122        tDHL_UserDataType ud_type;
123        BOOL top_field_first;
124        BOOL repeat_first_field;
125        tDHL_PicCoding pic_coding;
126        BOOL pts_valid;
127        UINT32 pts;
128       
129        UINT32 pic_coding_ext[2];
130       
131        UINT32 payload_size;
132} tDHL_UserDataHeader;
133
134
135typedef struct
136{
137        tDHL_UserDataHeader hdr;
138        UINT8 *pdata;
139} tDHL_UserData;
140
141
142/** @brief video Ãâ·Â ´ÜÀÚ (Æ÷Æ®)
143
144        ¿Ü°ü »óÀ¸·Î º¸ÀÌ´Â ºñµð¿À ´ÜÀÚ (Å͹̳Î)´Â
145        ¸ðµÎ ÀÌ ÁßÀÇ Çϳª¿¡ ÇØ´çµÈ´Ù.
146*/
147typedef enum 
148{
149        eDHL_DISP_PORT_UNKNOWN   = 0x0,
150        eDHL_DISP_PORT_COMPONENT = 0x1,
151        eDHL_DISP_PORT_COMPOSITE = 0x2,
152        eDHL_DISP_PORT_SVIDEO    = 0x4,
153        eDHL_DISP_PORT_DVI       = 0x8,
154        eDHL_DISP_PORT_HDMI      = 0x10
155       
156} tDHL_DispPort;
157
158
159#if 0 // ´çÀå »ç¿ëµÇ´Â °÷ÀÌ ¾øÀ½.
160/** @brief video display Ãâ·Â ŸÀÔ.
161       
162        DHL_AV_ChangeVideoFormat() API ¿¡¼­ ÀÎÀÚ·Î »ç¿ë.
163       
164        °¢ ŸÀÔµéÀº µ¶¸³ÀûÀÎ Ãâ·Â Æ÷Æ® (Ä¿³ØÅÍ)°¡ µÇ¾î¾ß ÇÒÅÙµ¥,
165        ÀÌ »ó¼öµéÀº bit flag·Î Á¤ÀÇ µÇ¾î ÀÖÀ¸¹Ç·Î, bit OR¸¦ ÇÏ¿© °Ç³×¸é µÈ´Ù.
166       
167        ¹®Á¦Á¡
168        - HDMIÀÇ °æ¿ì YCbCr 4:4:4, YCbCr 4:2:2 µî°ú °°ÀÌ
169        ¼¼ºÎ »çÇ×À» ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀÌ ¾øÀ½.
170       
171*/
172typedef enum {
173        eDHL_DISP_OUTPUT_UNKNOWN=0x0,
174        eDHL_DISP_OUTPUT_PS2=0x1,           /* 1 PS/2 ("VGA")                 */
175        eDHL_DISP_OUTPUT_DVI=0x2,           /* 2 DVI                          */
176        eDHL_DISP_OUTPUT_656=0x4,           /* 3 ITU-R BT.656, 8-bit output   */
177        eDHL_DISP_OUTPUT_YPRPB=0x8,         /* 4 YPrPb (HDTV), tri-sync       */
178        eDHL_DISP_OUTPUT_COMPOSITE=0x10,     /* 5 SDTV composite               */
179        eDHL_DISP_OUTPUT_SVIDEO=0x20,        /* 6 SDTV S-Video                 */
180        eDHL_DISP_OUTPUT_YPRPB_YSYNC=0x40,   /* 7 YPrPb (HDTV), sync on Y only */
181        eDHL_DISP_OUTPUT_RGB=0x80,           /* 8 RGB component, tri-sync      */
182        eDHL_DISP_OUTPUT_RGB_GSYNC=0x100,     /* 9 RGB component, sync on green */
183        eDHL_DISP_OUTPUT_PS2_YPRPB=0x200      /* 10 PS/2 ("VGA") YPrPb output   */
184} tDHL_DispOutput;
185#endif
186
187
188/** @brief display output timing °ª
189
190        À̸§Àº VideoFormat ÀÌÁö¸¸,
191        STB ÀÔÀå¿¡¼­´Â »ç½Ç DisplayTiming ÀÌ ´õ Á¤È®ÇÑ Ç¥ÇöÀÌ´Ù.
192
193        DHL_AV_DispSetFormat() APIÀÇ ÀÎÀÚ·Î »ç¿ëµÈ´Ù.
194       
195        ¿©±â¿¡´Â Ãâ·Â frequency¸¦ ±¸ºÐÇÏ´Â Á¤º¸´Â ¾ø´Ù.
196        50Hz, 60Hz¸¦ µÑ ´Ù Áö¿øÇϸ鼭 ¼³Á¤¿¡ µû¶ó ¹Ù²î´Â ±×·± Á¦Ç°Àº ¾øÀ½.
197        µû¶ó¼­ °¢ Á¦Ç° »ç¾ç¿¡ µû¶ó ƯÁ¤ Á֯ļö·Î °íÁ¤ÇÑ´Ù.
198       
199        60Hz ¿Í 59.94Hz ¿Í °°Àº Â÷ÀÌ´Â HAL ³»ºÎ¿¡¼­ ¾Ë¾Æ¼­ °áÁ¤.
200       
201        VGA ȣȯ Ãâ·ÂÀÇ °æ¿ì ¾Æ·¡¿¡ ÀÖ´Â Á¤º¸¸¸À¸·Î´Â ÅξøÀÌ ºÎÁ·Çϰí,
202        ¹º°¡ ´Ù¸¥ ¹æ¹ýÀ¸·Î ÁöÁ¤ÇØ¾ß ÇÑ´Ù. (TODO)
203        ÀÏ´Ü VGA´Â Áö¿øÇÏÁö ¾Ê´Â °ÍÀ¸·Î °£ÁÖ.
204       
205        HDMI ºñÇ¥ÁØ ÇØ»óµµÀÇ °æ¿ìµµ ¿ª½Ã ´Ù¸¥ ¹æ¹ýÀÌ ÇÊ¿äÇÏ´Ù. (TODO)
206       
207        ÀϹÝÀûÀ¸·Î Ç¥ÁØ ÇØ»óµµ¸¦ ÁÖ·Î »ç¿ëÇÑ´Ù.
208
209        ÀÌ Å¸ÀÔÀº DHL_AV_VideoGetStatus() api ¿¡¼­µµ »ç¿ëÇϴµ¥,
210        ±× °æ¿ì ÇöÀç Ãâ·Â formatÀÌ ¾Æ·¡ ¸®½ºÆ®¿¡ ¾ø´Â °æ¿ì eDHL_DISP_UNKNOWN À» µÇµ¹·ÁÁØ´Ù.
211        ÀÌ eDHL_DISP_UNKNOWN ´Â DHL_AV_DispSetFormat() api ¿¡¼­´Â »ç¿ëµÇ¾î¼­´Â ¾ÈµÈ´Ù.
212*/
213
214typedef enum 
215{
216        eDHL_DISP_NO_OUTPUT,
217        eDHL_DISP_720x480i,     /*720x480 interlaced    */
218        eDHL_DISP_720x480p,     /*720x480 progressive   */
219        eDHL_DISP_960x540p,     /*960x540*/   
220        eDHL_DISP_1280x720p,    /*1280x720 progressive  */
221        eDHL_DISP_1920x1080i,   /*1920x1080 interlaced  */   
222        eDHL_DISP_1366x768,     /*1366x768P 59.94Hz : 32" WXGA LG LCD */
223
224        eDHL_DISP_UNKNOWN = 0xF0, /* Unknown format */
225
226} tDHL_DispFormat;
227
228
229#if 0 // ´çÀå »ç¿ëµÇ´Â °÷ÀÌ ¾øÀ½.
230/** @brief TV displayÀÇ aspect ratio.
231       
232        HDMI ÀåÄ¡ÀÇ °æ¿ì EDID·Î ºÎÅÍ ÀÐÀ» ¼öµµ Àִµ¥, ÀÏ´Ü applicationÀÌ
233        ÁöÁ¤ÇÏ´Â °ÍÀ¸·Î ÇÔ.
234       
235        ÀÚµ¿ ARC ±â´É¿¡¼­ ÀÌ Á¤º¸¸¦ Ȱ¿ëÇÏ´Â °æ¿ì°¡ ÀÖ´Ù.
236       
237        ±× ¿Ü¿¡´Â ÀÌ Á¤º¸´Â informational À̸ç, AFDÀÇ °æ¿ì application¿¡¼­´Â
238        ÀÌ¹Ì ÀÌ Á¤º¸¸¦ ¾Ë°í ÀÖÀ¸¹Ç·Î ±×³É ÂüÁ¶¿ëÀ¸·Î¸¸ Ȱ¿ëµÈ´Ù.
239       
240        ÇöÀç´Â 4:3°ú 16:9 ¸¸ Àǹ̰¡ ÀÖÀ½.
241*/
242typedef enum
243{
244        eDHL_DISP_ASPECT_1_1 = 1,  /* Display aspect ratio is 1:1      */
245        eDHL_DISP_ASPECT_4_3,      /* Display aspect ratio is 4:3      */
246        eDHL_DISP_ASPECT_16_9,     /* Display aspect ratio is 16:9     */
247        eDHL_DISP_ASPECT_5_4       /* Display aspect ratio is 5:4      */
248} tDHL_DispAspectRatio;
249#endif
250
251
252/** @brief display color space
253        ÄÄÆ÷³ÍÆ® ´ÜÀÚ ¹× HDMI/DVI °æ¿ì¿¡¸¸ ¼³Á¤ÀÌ °¡´ÉÇÏ´Ù.
254*/
255typedef enum
256{
257        eDHL_DISP_CS_DEFAULT,
258        eDHL_DISP_CS_YCBCR,
259        eDHL_DISP_CS_RGB,
260} tDHL_DispColorSpace;
261
262
263/** @brief ºñµð¿À µðÄÚ´õ ID
264        ºñµð¿À µðÄÚ´õ ID. 0ºÎÅÍ ½ÃÀÛÇÏ´Â Á¤¼ö.
265        single decoder¸¸ Áö¿øÇÏ´Â ½Ã½ºÅÛ¿¡¼­´Â 0À» »ç¿ëÇÑ´Ù.
266*/
267typedef UINT8 tDHL_VDID;
268
269
270/** @brief ºñµð¿À ĸÃÄ ÀåÄ¡ ID
271        ºñµð¿À ĸÃÄ ÀåÄ¡ ID.
272*/
273typedef UINT8 tDHL_VCAPID;
274
275
276/** @brief ºñµð¿À ÄÚµ¦ ŸÀÔ.
277
278        DHL_AV_VideoStart API ¿¡¼­ »ç¿ëµÈ´Ù.
279        ¹Ýµå½Ã Á¤È®ÇÑ typeÀ» ÁöÁ¤ÇØ¾ß Á¤»óÀûÀÎ µ¿ÀÛÀÌ º¸ÀåµÈ´Ù.
280*/
281
282typedef enum
283{
284        eDHL_VIDEO_TYPE_UNKNOWN =0,
285        eDHL_VIDEO_TYPE_MPEG1= 1,             /* MPEG-1 Video (ISO/IEC 11172-2) */
286        eDHL_VIDEO_TYPE_MPEG2= 2,             /* MPEG-2 Video (ISO/IEC 13818-2) */
287        eDHL_VIDEO_TYPE_MPEG4P2= 0x10,    /* MPEG-4 Part 2 Video */
288        eDHL_VIDEO_TYPE_H263 = 0x1A,           /* H.263 Video. The value of the enum is not based on PSI standards. */
289        eDHL_VIDEO_TYPE_H264= 5,           /* H.264 (ITU-T) or ISO/IEC 14496-10/MPEG-4 AVC */
290        eDHL_VIDEO_TYPE_VC1 = 0xEA,            /* VC-1 Advanced Profile */
291        eDHL_VIDEO_TYPE_VC1SM = 0xEB,         /* VC-1 Simple&Main Profile */
292        eDHL_VIDEO_TYPE_DIVX311= 0x311,      /* DivX 3.11 coded video */
293        eDHL_VIDEO_TYPE_AVS = 0x42,            /* AVS video */
294        eDHL_VIDEO_TYPE_DC2
295       
296} tDHL_VideoCodingType;
297
298
299
300
301
302/** @brief MPEG-2 Video ES sequence_header Á¤º¸
303       
304        ƯÁ¤ application¿¡¼­´Â ÀÌ Á¤º¸¸¦ ÇÊ¿ä·Î ÇϹǷΠÁ¦°øÇÔ.
305        MPEG-4 ³ª AVCÀÇ °æ¿ì¿¡´Â ȣȯÀÌ µÇÁö ¾ÊÀ» ¼ö ÀÖÀ½.
306*/
307typedef struct 
308{
309        UINT32             generationNumber;          /* Increments each time it changes */
310        UINT16             horizontal_size;           /* incorporates horizontal_size_value and extension */
311        UINT16             vertical_size;             /* incorporates vettical_size_value and extension */
312        MPEG_ASPECT_RATIO  aspect_ratio_information;
313        MPEG_FRAME_RATE    frame_rate_code;
314        float              frame_rate;                /* incorporates frame_rate_code, extension_n,_d */
315        UINT32             bit_rate;                  /* bit_rate_extension is added */
316        UINT32             vbv_buffer_size;           /* Specified in bytes. (vbv_buffer_size_extension,value * 16/8 * 1024 */
317        BOOL               constrained_parameter_flag;
318        BOOL               MPEG2;                     /* True if sequece_extension is present */
319        UINT8              profile_and_level_indication;
320        BOOL               progressive_sequence;
321        MPEG_CHROMA_FORMAT chroma_format;
322        BOOL               low_delay;
323       
324} tDHL_VideoSeqHdr;
325
326
327/** @brief ºñµð¿À µðÄÚµù »óÅ Á¤º¸
328
329        ¿¹¿Ü ó¸® üũ¸¦ À§ÇØ µ¿ÀÛ ¸ð´ÏÅ͸µÀ» Çϱâ À§ÇØ »ç¿ëµÈ´Ù.
330        ¶Ç´Â info banner µî¿¡ »ç¿ëÀÚ¸¦ À§ÇÑ °¢Á¾ Á¤º¸ Ç¥½Ã¸¦ À§ÇØ »ç¿ëµÈ´Ù.
331*/
332typedef struct
333{
334        /** @brief µðÄÚµùÀÌ ÁøÇàÁßÀ̸é TRUE.
335       
336                API´Â start µÇ¾úÁö¸¸ ³»ºÎÀûÀ¸·Î halt µÈ °æ¿ì¶ó¸é?
337                ÀÌ °ªÀº Ç×»ó DHL_AV_VideoStart/Stop API È£Ãâ »óŸ¦ ¹Ý¿µÇØ¾ß ÇÑ´Ù.
338                video decoderÀÇ ³»ºÎ µ¿ÀÛ ¿À·ùÀÇ º¹±¸¿¡ ´ëÇÑ Ã¥ÀÓÀº HAL¿¡ ÀÖ´Ù.
339        */
340        BOOL bDecoding;
341
342        /** @brief ÇöÀç decoding ÁßÀÎ ºñµð¿À ŸÀÔ.
343       
344                ´ëºÎºÐÀÇ °æ¿ì, DHL_AV_VideoStart ¿¡¼­ ÁöÁ¤Çß´ø °ªÀÌ µÉ °ÍÀÌÁö¸¸,
345                stream type auto detection ±â´ÉÀÌ ÀÖ´Ù¸é ´õ Á¤È®ÇÑ Á¤º¸°¡ µÉ ¼ö ÀÖ´Ù.
346        */
347        tDHL_VideoCodingType type;
348
349        /** @brief ºñµð¿À µ¥ÀÌÅͰ¡ Ãâ·Â ÁßÀ̸é TRUE.
350       
351                µðÄÚµùÀ» ½ÃÀÛ Çß´õ¶óµµ pid µîÀÌ À߸ø ÁöÁ¤µÇ¾ú´Ù¸é
352                ½ÇÁ¦·Î´Â ¾Æ¹«·± µðÄÚµùÀÌ ¼öÇàµÇÁö ¾Ê´Â´Ù. À̶§ ÀÌ °ªÀº FALSE°¡ µÇ¾î¾ß ÇÑ´Ù.
353               
354                DHL_AV_VideoGetStatus API¸¦ È£Ãâ ÇÒ ½ÃÁ¡ÀÇ »óÅÂÀ̾î¾ß ÇÑ´Ù.
355        */
356        BOOL bOutputExist;
357
358        /** @brief scrambled ºñµð¿ÀÀÎ °æ¿ì TRUE.
359
360                DHL_AV_VideoGetStatus API¸¦ È£Ãâ ÇÒ ½ÃÁ¡ÀÇ »óÅÂÀ̾î¾ß ÇÑ´Ù.
361        */
362        BOOL bScrambleDetected;
363
364        /** @brief ÇöÀç hdmi°¡ ¿¬°á ÁßÀ̸é TRUE.
365
366                ÇöÀç´Â HDMI ¿¬°á Á¤º¸¸¦ ¾Ë·ÁÁÖ´Â callbackÀº ¾ø°í,
367                app¿¡¼­´Â ÁÖ±âÀûÀ¸·Î polling üũ ÇØ¾ß ÇÑ´Ù.
368        */
369        BOOL bHdmiConnected;
370       
371        /** @brief ÇöÀç Ãâ·ÂÁßÀÎ hdmi (¶Ç´Â component) display formatÀ» ¾Ë·ÁÁØ´Ù.
372               
373                platform ÀÌ hdmi ¿Í component ÇØ»óµµ¸¦ º°µµ·Î ÁöÁ¤ÀÌ ºÒ°¡´ÉÇÒ °æ¿ì
374                hdmi ¿¬°á »óÅ¿¡ µû¶ó hd Ãâ·Â ÇØ»óµµ°¡ ´Þ¶óÁö°Ô µÈ´Ù.
375                À̶§ ÀÌ api·Î ½ÇÁ¦ Ãâ·Â ½ÅÈ£ formatÀ» ¾Ë ¼ö ÀÖ´Ù.
376               
377                hdmi°¡ ¿¬°áÀÌ ¾ÈµÈ »óŶó¸é ÀÌ °ªÀº component Ãâ·Â ÇØ»óµµ¸¦ ¸»ÇÑ´Ù.
378
379                ¸¸¾à hdmi ¿Í component ÇØ»óµµ¸¦ ´Ù¸£°Ô ¼³Á¤ÇÒ ¼ö ÀÖ´Â platform ÀÎ °æ¿ì,
380                        ÀÌ °ªÀº hdmi Æ÷Æ®ÀÇ Ãâ·Â ÇØ»óµµÀÌ´Ù. (component ÇØ»óµµ´Â ¾Æ´Ô)
381                component Ãâ·Â ÇØ»óµµ´Â Ç×»ó ¸¶Áö¸· DHL_AV_DispSetFormat() api¿¡¼­ ÁöÁ¤ÇÑ °ªÀ̹ǷÎ
382                ±»ÀÌ queryÇÏÁö ¾Ê¾Æµµ ¾Ë ¼ö ÀÖ´Ù.
383
384        */
385        tDHL_DispFormat curDisplayFormat;
386       
387} tDHL_VideoStatus;
388
389
390
391/** @brief HDMI »óÅ Á¤º¸.
392
393        eDHL_CB_HdmiStatusChanged ÄݹéÀÇ ÆÄ¶ó¹ÌÅÍ·Î »ç¿ëµÈ´Ù.
394        ÇöÀç ÀÌ Á¤º¸¸¦ queryÇÏ´Â API´Â ¾ÆÁ÷ ÁغñÇÏÁö ¾Ê¾ÒÀ½.
395        ÀϺΠ³»¿ëÀº DHL_AV_VideoGetStatus() ·Î ¾Ë ¼ö´Â ÀÖ´Ù.
396*/
397typedef struct
398{
399        /** @brief ÇöÀç hdmi/dvi°¡ ¿¬°á ÁßÀ̸é TRUE.
400       
401                ´Ü¼øÈ÷ ¹°¸®ÀûÀÎ ¿¬°áÀÌ ¾Æ´Ï°í, hdmi/dvi ¿¬°á ÈÄ RX sense ÈÄ¿¡
402                edid Á¤º¸±îÁö ÇØ¼®µÇ°í ³ª¼­ "connected"°¡ µÈ´Ù.
403        */
404        BOOL bConnected;
405
406        /** @brief ÇöÀç ¿¬°áµÈ hdmi display¿¡¼­ Áö¿øÇÏ´Â ÇØ»óµµ Á¤º¸ bitmap.
407               
408                °¢ bit°¡ tDHL_DispFormat ŸÀ̹ÖÀ» Áö¿øÇÒ °æ¿ì 1ÀÌ µÇ¸ç,
409                LSB bit 0 ºÎÅÍ »ç¿ë.
410                ¿¹¸¦ µé¾î 480p, 1080i ¸¦ Áö¿øÇÏ´Â TV¶ó¸é ´ÙÀ½ °ªÀ» °®´Â´Ù.
411                        (1 << eDHL_DISP_720x480p) | (1 << eDHL_DISP_1920x1080i)
412
413                eDHL_DISP_UNKNOWN °ªÀº Ç¥½ÃÇÏÁö ¾Ê´Â´Ù.
414                "connected" »óŰ¡ ¾Æ´Ñ °æ¿ì ÀÌ °ªÀº 0ÀÌ µÇ¾î¾ß ÇÑ´Ù.
415        */
416        UINT32 supportedFormat;
417
418        /** @brief TV°¡ ¼±È£ÇÏ´Â format.
419       
420                TVÀÇ ¼±È£ formatÀÌ DHL¿¡¼­ Áö¿øÇÏÁö ¸øÇÏ´Â Çü½ÄÀÏ °æ¿ì
421                eDHL_DISP_UNKNOWN À¸·Î ¾Ë·ÁÁØ´Ù.
422        */
423        tDHL_DispFormat preferedFormat;
424
425} tDHL_VideoHdmiStatus;
426
427
428
429/** @brief ºñµð¿À Ãâ·ÂÀÇ Aspect Ratio Adjustment.
430
431        ARC ¶ó°íµµ ÇÑ´Ù. (Aspect Ratio Correction)
432        DHL_AV_VideoSetARC APIÀÇ ÀÎÀÚ·Î »ç¿ëµÈ´Ù.
433
434        eDHL_ARC_USER ¸ðµåÀÇ °æ¿ì ¾î¶² ½ÄÀ¸·Î »ç¿ëÀÚ°¡ ¼³Á¤ÇÒ °ÍÀÎÁö¿¡ ´ëÇØ¼­´Â
435        ¹æ¹ýÀº È®Á¤µÇÁö ¾Ê¾Ò´Ù.
436*/
437typedef enum 
438{
439        /*! Ưº°ÇÑ Àǹ̷Π»ç¿ë. APIÀÇ ÀÎÀڷδ »ç¿ëµÇ¸é ¾ÈµÊ. */
440        eDHL_ARC_UNKNOWN = 0,
441       
442        /*! Àüü È­¸é: Ãâ·ÂÇØ»óµµ ÀüºÎ¸¦ ä¿ò */
443        eDHL_ARC_FULLSCREEN = 1,
444
445        /*! ·¹Å͹ڽº ¸ðµå: »óÇÏ ¿©¹é(»ó12.5% ÇÏ12.5%), no crop, Àüü video */
446        eDHL_ARC_LETTERBOX = 2,
447
448        /*! »çÀ̵å¹Ù ¸ðµå: ÁÂ¿ì ¿©¹é(ÁÂ12.5% ¿ì12.5%), no crop, Àüü video */
449        eDHL_ARC_SIDEBAR = 3,
450
451        /*! ÆÒ½ºÄµ ¸ðµå: Á¿ì 25% crop(ÁÂ12.5% ¿ì12.5%), Àüü ½ºÅ©¸° */
452        eDHL_ARC_PAN_AND_SCAN = 4,
453       
454        /*! ƿƮ½ºÄµ ¸ðµå: »óÇÏ 25% crop(»ó12.5% ÇÏ12.5%), Àüü ½ºÅ©¸° */
455        eDHL_ARC_TILT_AND_SCAN = 5,
456       
457        /*! ºÎºÐ ·¹Å͹ڽº ¸ðµå: »óÇÏ ¿©¹é(»ó6.25% ÇÏ6.25%),
458                Á¿ì 12.5% crop(ÁÂ6.25% ¿ì6.25%),
459                ·¹Å͹ڽº ¸ðµå¿Í ÆÒ½ºÄµ ¸ðµåÀÇ Áß°£.    */
460        eDHL_ARC_PARTIAL_LETTERBOX = 6,
461
462        /*! ºÎºÐ »çÀ̵å¹Ù ¸ðµå: ÁÂ¿ì ¿©¹é(ÁÂ6.25% ¿ì6.25%),
463                »óÇÏ 12.5% crop(»ó6.25% ÇÏ6.25%),
464                »çÀ̵å¹Ù ¸ðµå¿Í ƿƮ½ºÄµ ¸ðµåÀÇ Áß°£.    */
465        eDHL_ARC_PARTIAL_SIDEBAR = 7,
466
467        /*! »óÇÏÁ¿ì 12.5% crop(»ó6.25% ÇÏ6.25% ÁÂ6.25% ¿ì6.25%). Àüü ½ºÅ©¸° */
468        eDHL_ARC_ZOOM1 = 8,
469
470        /*! »óÇÏÁ¿ì 25% crop(»ó12.5% ÇÏ12.5% ÁÂ12.5% ¿ì12.5%). Àüü ½ºÅ©¸° */
471        eDHL_ARC_ZOOM2 = 9,
472
473        /*! callback¿¡ ÀÇÇØ »ç¿ëÀÚ°¡ Á÷Á¢ ÁöÁ¤/
474                ¾ÆÁ÷ ¾î¶°ÇÑ API, ¸ÞÄ¿´ÏÁò¿¡ ÀÇÇØ¼­ 󸮸¦ ÇÒÁö È®Á¤ µÇÁö ¾Ê¾ÒÀ½.
475                À§ÀÇ ARC ¸ðµå À̿ܿ¡ ´õ ¸¹Àº ¸ðµå¸¦ ¿øÇÏ´Â customer°¡ ÀÖ´Ù¸é
476                ±× ¶§ °í·ÁÇϵµ·Ï ÇÔ.
477        */
478        eDHL_ARC_USER = 100,
479       
480} tDHL_DispARC;
481
482
483typedef struct 
484{
485        INT16 x;
486        INT16 y;
487        INT16 w;
488        INT16 h;
489
490} DHL_WINRECT;
491
492
493#if COMMENT
494____Types2____(){}
495#endif
496
497/** @brief Audio Coding type.
498       
499        DHL_AV_AudioStart() API ¿¡¼­ »ç¿ëµÊ.
500        º¸ÅëÀº PMTÀÇ stream type Á¤º¸¿¡¼­ audio coding typeÀ» ¾Ë¾Æ³½´Ù.
501
502        Á¤È®ÇÏ°Ô ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é audio decodingÀÌ Á¦´ë·Î µ¿ÀÛÇÏÁö ¾Ê´Â´Ù.
503*/
504typedef enum
505{
506        eDHL_AUDIO_TYPE_UNKNOWN=0,
507        eDHL_AUDIO_TYPE_PCM,
508        eDHL_AUDIO_TYPE_AC3, ///< Dolby AC3 (A/52)
509        eDHL_AUDIO_TYPE_AAC_ADTS, ///< MPEG-2 part 7 AAC with ADTS syntax
510        eDHL_AUDIO_TYPE_AAC_LATM, ///< MPEG-4 part 3 AAC with LATM syntax
511        eDHL_AUDIO_TYPE_DTS,
512
513        /** @todo
514                ¾Æ·¡ Ç׸ñµéÀÌ ¾î¶»°Ô ±¸ºÐµÇ´ÂÁö üũ ÇÊ¿äÇÔ.
515        */
516        eDHL_AUDIO_TYPE_MPEG_1,
517        eDHL_AUDIO_TYPE_MPEG_2,
518        eDHL_AUDIO_TYPE_MPEG_4,
519        eDHL_AUDIO_TYPE_MPEG_L1,
520        eDHL_AUDIO_TYPE_MPEG_L2,
521        eDHL_AUDIO_TYPE_MPEG_L3,
522        eDHL_AUDIO_TYPE_AIFF,
523        eDHL_AUDIO_TYPE_SINEWAVE
524       
525} tDHL_AudioCodingType;
526
527
528/** @brief ¿Àµð¿À µðÄÚµù »óÅ Á¤º¸
529
530        ¿¹¿Ü ó¸® üũ¸¦ À§ÇØ µ¿ÀÛ ¸ð´ÏÅ͸µÀ» Çϱâ À§ÇØ »ç¿ëµÈ´Ù.
531        ¶Ç´Â info banner µî¿¡ »ç¿ëÀÚ¸¦ À§ÇÑ °¢Á¾ Á¤º¸ Ç¥½Ã¸¦ À§ÇØ »ç¿ëµÈ´Ù.
532*/
533typedef struct
534{
535        BOOL bDecoding; ///< µðÄÚµùÀÌ ÁøÇàÁßÀ̸é TRUE¸¦ ¸®ÅÏÇÑ´Ù.
536
537        tDHL_AudioCodingType type;
538
539        /** µðÄÚµùÀÌ ÁøÇà ÁßÀÌ´õ¶óµµ pid µîÀÌ À߸ø ÁöÁ¤µÇ¾ú´Ù¸é
540                ½ÇÁ¦·Î´Â ¾Æ¹«·± ¼Ò¸®µµ ³ª¿ÀÁö ¾Ê´Â´Ù. À̶§ ÀÌ °ªÀº FALSE°¡ µÇ¾î¾ß ÇÑ´Ù.
541                ½ÇÁ¦·Î ±Í¿¡ ¼Ò¸®°¡ µé¸®´ÂÁö ¿©ºÎ¿Í´Â »ó°ü ¾ø´Ù.
542                (¹«À½ Á¤º¸°¡ encoding µÈ ½ºÆ®¸²ÀÌ play µÇ´Â °æ¿ì ÀÌ °ªÀº TRUE°¡ µÇ¾î¾ß ÇÔ)
543        */
544        BOOL bOutputExist; ///< audio µ¥ÀÌÅͰ¡ Ãâ·Â ÁßÀ̸é TRUE¸¦ ¸®ÅÏ.
545       
546        BOOL bSurround; ///< 2ä³Î Ãʰú ÀÎ °æ¿ì TRUE. 2.1~5.1 ä³Î
547        BOOL bStereo;   ///< stereo 2ch ¿Àµð¿À¶ó¸é TRUE
548
549} tDHL_AudioStatus;
550
551
552/** @brief µðÁöÅÐ ¿Àµð¿À Ãâ·Â ÇüÅ ¼³Á¤.
553
554        S/PDIF Ãâ·Â Æ÷Æ® ¶Ç´Â HDMIÀÇ ¿Àµð¿À Ãâ·Â ºÎºÐ¿¡ ¼³Á¤ °¡´ÉÇÏ´Ù.
555
556        DISABLEÀ» »ç¿ëÇÏ¸é ½ÅÈ£ Ãâ·Â ÀÚü°¡ ³ª°¡Áö ¾Ê´Â °ÍÀ̸ç,
557        ÇØ´ç Æ÷Æ®ÀÇ audio mute¿Í´Â ¾à°£ÀÇ Â÷À̰¡ ÀÖÀ» ¼ö ÀÖ´Ù.
558*/
559typedef enum 
560{
561        eDHL_AUDIO_OUT_DISABLE,
562        eDHL_AUDIO_OUT_PCM,        ///< IEC 958 PCM uncompressed Ãâ·Â
563        eDHL_AUDIO_OUT_COMPRESSED, ///< IEC 61937 compressed Ãâ·Â
564        eDHL_AUDIO_OUT_END
565       
566} tDHL_AudioIecOutFormat;
567
568
569
570/** @brief ¿Àµð¿À Ãâ·Â mute ¼³Á¤ Æ÷ÀÎÆ®
571
572        API¸¦ ÀÌ¿ëÇÏ¿© SWÀûÀ¸·Î mute Á¦¾î ÇÒ ¼ö ÀÖ´Â À§Ä¡µéÀÌ´Ù.
573
574        ¿Àµð¿À mute Á¦¾î´Â ´ÙÀ½°ú °°Àº ¿©·¯ Á¶°Ç¿¡¼­ ÇÊ¿äÇÏ´Ù.
575        - »ç¿ëÀÚ°¡ ¸®¸ðÄÁÀÇ MUTE ۸¦ ´©¸¥ °æ¿ì
576        - °¢Á¾ block »óÅ (ch block, rating block µî..)
577        - ¿Àµð¿À º¼·ý 0 »óÅÂ
578        - ºÎÆÃ ÃʱâÈ­ ´Ü°èÀÇ pop noise Á¦°Å¸¦ À§ÇØ
579        - standby ÁøÀÔ Á÷Àü pop noise Á¦°Å¸¦ À§ÇØ
580
581        ÇÏÁö¸¸ application °èÃþ¿¡¼­ ÀÌ·¯ÇÑ ±¸ºÐ 󸮸¦ ÇϹǷÎ,
582        DHL ·¹º§¿¡¼­´Â ÇÑ Á¾·ùÀÇ mute¸¸ Á¦°øÇصµ ¹«¹æÇÏ´Ù.
583*/
584
585typedef enum {
586        eDHL_AUDIO_MUTE_DECODER, 
587                ///< ¿Àµð¿À µðÄÚ´õ¿¡¼­ mute¸¦ ¼öÇà. ¸ðµç ¿Àµð¿À Ãâ·Â Æ÷Æ®¿¡ ´Ù Àû¿ëµÈ´Ù.
588                ///< µû¶ó¼­ app level ¿¡¼­ ±âº»ÀûÀ¸·Î »ç¿ëÇÏ´Â mute ¹æ½ÄÀÌ´Ù.
589       
590        eDHL_AUDIO_MUTE_GPIO, 
591                ///< GPIO·Î Á÷Á¢ ±¸ÇöÇÑ mute ȸ·Î
592                ///< ÀÌ ¿É¼ÇÀº Àü¿ø on/off ½ÃÀÇ pop-up noise Á¦°Å¸¦ À§ÇØ ÁÖ·Î »ç¿ëµÈ´Ù.
593
594        eDHL_AUDIO_MUTE_AMP, 
595                ///< DAC ¶Ç´Â AmpÀÇ RST/MUTE µîÀ» ÀÌ¿ëÇÑ ¹æ½Ä.
596                ///< DACÀÌ ³»ÀåµÇ¾î SoC¿¡¼­ Á÷Á¢ LR ½ÅÈ£°¡ ³ª¿À´Â °æ¿ì¶óµç°¡,
597                ///< DDX·Î Ãâ·ÂÀÌ µÇ´Â °æ¿ì¿¡µµ, ´«¿¡ º¸ÀÌ´Â ¾ÚÇÁ´Â ¾øÁö¸¸
598                ///< ÀûÀýÇÑ mute ±â´É ±¸Çö ÇÊ¿ä.
599
600        eDHL_AUDIO_MUTE_SPDIF, 
601                ///< S/PDIF Ãâ·Â ¿Àµð¿ÀÀÇ mute.
602                ///< ½ÅÈ£ Ãâ·Â ÀÚü°¡ disable µÈ °Í°ú´Â ±¸ºÐµÈ´Ù.
603
604        eDHL_AUDIO_MUTE_HDMI, ///< HDMI Ãâ·Â ¿Àµð¿ÀÀÇ mute.
605
606        eDHL_AUDIO_MUTE_HEADPHONE, ///< ÇìµåÆù Ãâ·Â ´ÜÀÚ°¡ ÀÖÀ» °æ¿ì mute.
607
608} tDHL_AudioMutePlace;
609
610
611/** @brief ¿Àµð¿À ´Ù¿î¹Í½º ŸÀÔ
612       
613*/
614typedef enum 
615{
616        eDHL_AUDIO_MIX_TYPE_LTRT = 0, ///< Line out mode.
617        eDHL_AUDIO_MIX_TYPE_LORO = 1, ///< RF mode.
618
619} tDHL_AudioDownmixType;
620
621
622
623
624
625#if COMMENT
626____Types3____(){}
627#endif
628
629
630
631
632
633
634/** @brief ÀÏ¹Ý Á¶È¸ ÇÔ¼öÀÇ Á¶È¸ÇÒ ³»¿ë.
635
636        DHL_AV_Query APIÀÇ ÀÎÀÚ·Î »ç¿ëµÈ´Ù.
637        °¢ °ª º°·Î DHL_AV_Query ¸®ÅÏ °á°ú °ª (pValue)ÀÇ Àǹ̰¡ Á¤ÇØÁ® ÀÖ´Ù.
638*/
639typedef enum
640{
641        eDHL_AV_QUERY_UNKNOWN,
642
643        /** Video decoder capability data.
644
645                °á°ú: ºñµð¿À µðÄÚ´õ cap data.
646                tDHL_VideoCodingType ¿­°Å ŸÀÔÀÇ bit Ç¥ÇöÀÌ´Ù.
647
648                ex) MPEG1°ú MPEG2¸¸ Áö¿øÇÑ´Ù°í Çϸé, ¾Æ·¡ cap °ªÀÌ ¸®ÅϵȴÙ.
649                        cap = (1<<eDHL_VIDEO_TYPE_MPEG1) | (1<<eDHL_VIDEO_TYPE_MPEG2);
650                        *pValue = cap;
651        */
652        eDHL_AV_QUERY_VIDEO_CAP,
653       
654        /** Audio decoder capability data.
655
656                °á°ú: ¿Àµð¿À µðÄÚ´õ cap data.
657                tDHL_AudioCodingType ¿­°Å ŸÀÔÀÇ bit Ç¥ÇöÀÌ´Ù.
658        */
659        eDHL_AV_QUERY_AUDIO_CAP,
660       
661        eDHL_AV_QUERY_VIDEO_FMT,
662        /** video format return
663               
664                ÇöÀç Àç»ýÁßÀÎ ½ºÆ®¸²ÀÇ video formatÀ» ¸®ÅÏÇÔ(tDHL_VideoCodingType ŸÀÔ)
665        */
666       
667        eDHL_AV_QUERY_AUDIO_FMT,
668        /** audio format return
669                ÇöÀç Àç»ýÁßÀÎ ½ºÆ®¸²ÀÇ audio formatÀ» ¸®ÅÏÇÔ(tDHL_AudioCodingType ŸÀÔ)
670        */
671
672        eDHL_AV_QUERY_MAX,
673
674} tDHL_AVQueryType;
675
676
677
678/** @brief ¹ü¿ë Á¦¾î ÇÔ¼öÀÇ Á¦¾î ŸÀÔ.
679
680        DHL_AV_Control APIÀÇ ÀÎÀÚ·Î »ç¿ëµÈ´Ù.
681        °¢ °ª º°·Î DHL_AV_Control µÎ¹øÂ° ÀÎÀÚÀÇ Àǹ̰¡ Á¤ÇØÁ® ÀÖ´Ù.
682*/
683typedef enum
684{
685        eDHL_AV_CTL_UKNOWN,
686
687        /** ºñµð¿À ¹è°æ »ö. VideoStop µÈ »óÅ¿¡¼­ º¸¿©Áö´Â »ö±ò.
688                value type: RGB888 »ö»ó °ª.
689
690                R[23:16], G[15:8], B[7:0]
691        */
692        eDHL_AV_CTL_VIDEO_BG_COLOR,
693
694        /** ºñµð¿À ¹è°æ »ö. LetterBox µîÀÇ ARC Àû¿ë½Ã ºñµð¿À ¾ø´Â °ø°£¿¡ º¸¿©Áö´Â »ö±ò.
695                value type: RGB888 »ö»ó °ª.
696
697                R[23:16], G[15:8], B[7:0]
698        */
699        eDHL_AV_CTL_VIDEO_LETTERBOX_COLOR,
700       
701        /** ¿Àµð¿À ¸ÖƼä³Î ´Ù¿î¹Í½º ¹æ½Ä.
702                ¸ÖƼä³Î ¿Àµð¿À¸¦ 2ch ½ºÅ×·¹¿À·Î Ãâ·ÂÇϱâ À§ÇØ ¼öÇàÇÏ´Â
703                ´Ù¿î¹Í½º ÀÛ¾÷ÀÇ µ¿ÀÛ ¹æ½Ä ¼³Á¤.
704
705                value type: tDHL_AudioDownmixType °ª.
706        */
707        eDHL_AV_CTL_AUDIO_MIX_TYPE,
708
709        /** S/PDIF Ãâ·Â ¸ðµå
710                value type: tDHL_AudioIecOutFormat
711
712                S/PDIF Ãâ·Â ¿Àµð¿À ¸ðµå¿Í HDMI ¿Àµð¿À ¸ðµåÀÇ °³º° ¼³Á¤ÀÌ ºÒ°¡´ÉÇÑ
713                Ç÷§Æû¿¡¼­´Â ÇϳªÀÇ ¸ðµå¸¦ º¯°æÇÏ¸é ´Ù¸¥ Âʵµ °°ÀÌ º¯°æµÈ´Ù.
714        */
715        eDHL_AV_CTL_AUDIO_SPDIF_MODE,
716       
717        /** HDMI ¿Àµð¿À Ãâ·Â ¸ðµå
718                value type: tDHL_AudioIecOutFormat
719               
720                S/PDIF Ãâ·Â ¿Àµð¿À ¸ðµå¿Í HDMI ¿Àµð¿À ¸ðµåÀÇ °³º° ¼³Á¤ÀÌ ºÒ°¡´ÉÇÑ
721                Ç÷§Æû¿¡¼­´Â ÇϳªÀÇ ¸ðµå¸¦ º¯°æÇÏ¸é ´Ù¸¥ Âʵµ °°ÀÌ º¯°æµÈ´Ù.
722        */
723        eDHL_AV_CTL_AUDIO_HDMI_MODE,
724       
725       
726#if 0
727        // ¾Æ·¡ °ªµéÀº NEO ¿¡¼­ Ãß°¡µÈ °ÍµéÀε¥, °¢ Àǹ̰¡ ¹®¼­È­ µÇÁö ¾Ê¾î¼­ ºÎÁ¤È®.
728        eDHL_AV_CTL_ENABLE_VBI,
729        eDHL_AV_CTL_WRITE_VBI,
730        eDHL_AV_CTL_CGMS,
731        eDHL_AV_CTL_MACROVISION,
732#endif
733        eDHL_AV_CTL_MAX,
734       
735} tDHL_AVControlType;
736
737
738
739/*
740        HAL ÀÌÇÏ (driver)¿¡¼­ º¸³»´Â °¢Á¾ event ŸÀÔ.
741
742*/
743typedef enum 
744{
745        /*
746                Sequence Header Á¤º¸°¡ º¯°æµÇ¾úÀ½À» ¾Ë¸®´Â  callback.
747                ÀÌ callbackÀº AV_VideoStart °¡ ºÒ¸° ÀÌÈÄ¿¡ ¹«Á¶°Ç 1ȸ´Â ºÒ¸®µµ·Ï ±¸ÇöµÈ´Ù.
748                Áï VideoStop Á÷ÀüÀÇ »óÅÂ¿Í º¯°æÀÌ ¾ø´õ¶óµµ óÀ½ SeqHdr°¡ ¼ö½ÅµÇ¸é ºÒ¸®µµ·Ï
749                ±¸ÇöÇÑ´Ù.
750
751                param: tDHL_VideoSeqHdr *
752        */
753        eDHL_CB_VideoSeqHdr = 0,
754
755        /*
756                UserData Á¤º¸°¡ ¼ö½ÅµÇ¾úÀ½À» ¾Ë¸®´Â callback.
757                param: ??
758        */
759        eDHL_CB_VideoUserData,
760
761        /*
762                ºñµð¿À µðÄÚµù start ÀÌÈÄ ÃÖÃÊ ºñµð¿À È­¸éÀÌ º¸ÀÌ´Â ½ÃÁ¡¿¡ callback
763                param: none
764        */
765        eDHL_CB_FirstVideoShow,
766
767
768        /*
769                HDMI ¿¬°á »óÅ µîÀÇ º¯°æÀÌ »ý±æ °æ¿ì callback.
770                param: tDHL_VideoHdmiStatus *   
771        */
772        eDHL_CB_HdmiStatusChanged,
773
774
775        eDHL_CB_MAX_NUM
776       
777} tDHL_AVCallbackType;
778
779
780/** @brief
781        DHL_AV_SetCallback() api ¿¡¼­ »ç¿ëµÇ´Â callback ÇÔ¼ö ŸÀÔ.
782
783        paramÀº cb_type À̺¥Æ®¿¡ µû¶ó ±× Àǹ̰¡ ´Þ¶óÁø´Ù.
784*/
785typedef void (*tDHL_AVCALLBACK)(tDHL_AVCallbackType cb_type, UINT32 param);
786
787
788
789
790
791#if COMMENT
792____Types4____(){}
793#endif
794
795/** @brief ºñµð¿À ÀÔ·Â Á¾·ù
796
797*/
798typedef enum
799{
800        eDHL_CAP_VIDEO_START,
801        eDHL_CAP_AV_VIDEO_START = eDHL_CAP_VIDEO_START,
802        eDHL_CAP_AV0_VIDEO = eDHL_CAP_AV_VIDEO_START,
803        eDHL_CAP_AV1_VIDEO,
804        eDHL_CAP_AV2_VIDEO,
805        eDHL_CAP_AV3_VIDEO,
806        eDHL_CAP_AV4_VIDEO,
807       
808        eDHL_CAP_YPBPR_VIDEO_START,             // From external YPbPr 
809        eDHL_CAP_YPBPR0_VIDEO =         eDHL_CAP_YPBPR_VIDEO_START,             // From external YPbPr_0
810        eDHL_CAP_YPBPR1_VIDEO,          // From external YPbPr_1
811        eDHL_CAP_YPBPR2_VIDEO,          // From external YPbPr_2
812        eDHL_CAP_YPBPR3_VIDEO,          // From external YPbPr_3
813
814        eDHL_CAP_VGA_VIDEO_START,               // From external VGA   
815        eDHL_CAP_VGA0_VIDEO = eDHL_CAP_VGA_VIDEO_START, //from external VGA_0
816        eDHL_CAP_VGA1_VIDEO,            // From external VGA_1
817        eDHL_CAP_VGA2_VIDEO,            // From external VGA_2
818        eDHL_CAP_VGA3_VIDEO,            // From external VGA_3
819
820        eDHL_CAP_HDMI_VIDEO_START,              // From HDMI port 0
821        eDHL_CAP_HDMI0_VIDEO =  eDHL_CAP_HDMI_VIDEO_START ,             // From HDMI port 0
822        eDHL_CAP_HDMI1_VIDEO,           // From HDMI port 1
823        eDHL_CAP_HDMI2_VIDEO,           // From HDMI port 2
824        eDHL_CAP_HDMI3_VIDEO,           // From HDMI port 3
825
826        eDHL_CAP_NTSC_VIDEO_START,      // From NTSC (CVBS)
827        eDHL_CAP_NTSC0_VIDEO =  eDHL_CAP_NTSC_VIDEO_START,             
828        eDHL_CAP_NTSC1_VIDEO,           // From NTSC (CVBS)
829       
830        eDHL_CAP_UOC_VIDEO,
831
832        eDHL_CAP_1394_DV,
833        eDHL_CAP_1394_TS,
834
835        eDHL_CAP_DTV_TS0,
836        eDHL_CAP_DTV_TS1,
837
838        eDHL_CAP_VIDEO_END,
839        eDHL_CAP_VIDEO_NONE = eDHL_CAP_VIDEO_END
840       
841} tDHL_CapVideoInput;
842
843
844/** @brief ¿Àµð¿À ÀÔ·Â Á¾·ù
845
846*/
847typedef enum
848{
849        eDHL_CAP_AV_AUDIO_START,
850        eDHL_CAP_AV0_AUDIO = eDHL_CAP_AV_AUDIO_START,
851        eDHL_CAP_AV1_AUDIO,
852        eDHL_CAP_AV2_AUDIO,
853        eDHL_CAP_AV3_AUDIO,
854        eDHL_CAP_AV4_AUDIO,
855
856        eDHL_CAP_YPBPR_AUDIO_START,             // From external YPbPr 
857        eDHL_CAP_YPBPR0_AUDIO =         eDHL_CAP_YPBPR_AUDIO_START,             // From external YPbPr_0
858        eDHL_CAP_YPBPR1_AUDIO,          // From external YPbPr_1
859        eDHL_CAP_YPBPR2_AUDIO,          // From external YPbPr_2
860        eDHL_CAP_YPBPR3_AUDIO,          // From external YPbPr_3
861
862        eDHL_CAP_VGA_AUDIO_START,
863        eDHL_CAP_VGA0_AUDIO = eDHL_CAP_VGA_AUDIO_START,
864        eDHL_CAP_VGA1_AUDIO,            // From external VGA
865        eDHL_CAP_VGA2_AUDIO,            // From external
866        eDHL_CAP_VGA3_AUDIO,            // From external
867
868        eDHL_CAP_HDMI_AUDIO_START,              // From HDMI port 0
869        eDHL_CAP_HDMI0_AUDIO =  eDHL_CAP_HDMI_AUDIO_START ,             // From HDMI port 0
870        eDHL_CAP_HDMI1_AUDIO,           // From HDMI port 1
871        eDHL_CAP_HDMI2_AUDIO,           // From HDMI port 2
872        eDHL_CAP_HDMI3_AUDIO,           // From HDMI port 3
873
874        eDHL_CAP_NTSC_AUDIO_START,      // From NTSC (CVBS) - 3D Comb Filter input
875        eDHL_CAP_NTSC0_AUDIO =  eDHL_CAP_NTSC_AUDIO_START,             
876        eDHL_CAP_NTSC1_AUDIO,           // From NTSC (CVBS) - 3D Comb Filter input
877       
878        eDHL_CAP_UOC_AUDIO,                     // From UOC : SABIN Project specific
879
880        eDHL_CAP_1394_DV_AUDIO,         //   
881        eDHL_CAP_1394_TS_AUDIO,         //   
882
883        eDHL_CAP_DTV_TS0_AUDIO,         //   
884        eDHL_CAP_DTV_TS1_AUDIO,         //   
885
886        eDHL_CAP_AUDIO_END,
887        eDHL_CAP_AUDIO_NONE = eDHL_CAP_AUDIO_END
888       
889} tDHL_CapAudioInput;
890
891
892
893
894
895#if COMMENT
896_____Info_____(){}
897#endif
898
899
900/*
901        DHL video decoder ³»ºÎ »óÅ º¯¼ö.
902        ÇÊ¿äÇÑ °ªµéÀº À̰÷¿¡ Ãß°¡ÇÏ¿© »ç¿ëÇÒ °Í.
903*/
904typedef struct
905{
906        UINT32 magic1;
907
908        tDHL_VideoSeqHdr seqhdr; // copy of current seq hdr.
909
910        void *core; // vendor-specific internal data structure.
911
912        UINT32 magic2;
913       
914} DHL_VIDEO_CONTEXT;
915
916
917typedef enum 
918{
919        DHL_AV_VIDEO_INIT, // System is not initialized yet..
920       
921        DHL_AV_VIDEO_READY,        // context is created, but not run state yet
922        DHL_AV_VIDEO_START,        // video is playing now.
923       
924        DHL_AV_VIDEO_STOP_READY,  //
925        DHL_AV_VIDEO_STOP,                // context is deleted
926       
927        DHL_AV_VIDEO_FREEZE,  // video is currently freezed
928
929        DHL_AV_VIDEO_CLOSE // System finalized
930       
931} DHL_VIDEO_STATUS;
932
933
934typedef struct
935{
936        OS_SEMAPHORE_ID         Mutex;
937
938        // Program INFO
939        UINT16                          uVidPID;                //current video PID
940        UINT16                          uAudPID;                //current audio PID
941        UINT16                          uPcrPID;                //current PCR PID
942        tDHL_AudioCodingType    AudStremType;   //current input audio stream type
943
944        // capture config
945        //
946        tDHL_CapVideoInput              CapInVideoSrc;
947        tDHL_CapAudioInput              CapInAudioSrc;          //input audio source
948
949
950        //
951        // Video °ü·Ã º¯¼ö
952        //
953
954        DHL_VIDEO_CONTEXT *curVideoContext;
955                // video°¡ decoding Áغñ°¡ µÇ¸é ÀÌ context°¡ non-Null ÀÌ´Ù.
956                // freeze »óÅ¿¡¼­µµ ÀÌ °ªÀº non-Null À̾î¾ß ÇÑ´Ù.
957       
958        DHL_VIDEO_STATUS                uCurVideoStatus;
959
960        INT32        nDisplayWidth;
961        INT32        nDisplayHeight;
962       
963        //
964        // Video - Display °ü·Ã º¯¼ö
965        //
966
967        UINT32                                  curBgdcolor;       // dmc_backgroundColor
968
969        tDHL_DispARC    curARAdjustment;     // dmc_adjustment
970        // cafrii 060609 add
971        //AspectRatioAdjustment userAdjustment;
972       
973        DHL_WINRECT                             curWinRect;       // dmc_winRect
974        DHL_WINRECT                             userWinRect;
975
976        BOOL bVideoHide; // user video hide flag.
977
978        //
979        // Contrast/Brightness/Saturation/Tint
980        //
981        UINT32  uContrast;                      //contrast
982        UINT32  uBrightness;            //brightness
983        UINT32  uColor;                         //color saturation
984        INT32   uTint;                          //tint
985
986        //
987        // Audio °ü·Ã º¯¼ö
988        //
989//BK    DHL_AUDIO_STATUS uCurAudioStatus;
990       
991//BK    DHL_AUDIO_CONTEXT *curAudioContext;
992                // audio¸¦ µðÄÚµù ÇÒ Áغñ°¡ µÇ¸é ÀÌ context°¡ non-null ÀÌ´Ù.
993       
994        BOOL                                    bPortsParamInit;
995
996        tDHL_AudioIecOutFormat  iecOutputMode;
997        BOOL                                    isSpdifMuted;
998                // cafrii 060630 add
999                // SPDIF mute°¡ µÈ °æ¿ì¿¡µµ IEC mode´Â ÀÌÀü °ªÀ» À¯ÁöÇϰí ÀÖ´Ù.
1000                // SPDIF mute°¡ Ç®¸®¸é ´Ù½Ã ÇØ´ç ¸ðµå·Î ³ª¿Í¾ß ÇϹǷÎ..
1001
1002        UINT32 audioMuteMap;  //
1003        //BOOL isMuted;          // user mute status
1004       
1005        //BOO isAudioInitialized;
1006
1007        UINT16 uVolLvl;    // »ç¿ëÀÚ°¡ ¼³Á¤ÇÑ volume level..
1008        UINT16 uLogVolLvl; // Logical volume level
1009
1010        INT32                                   nAudioDelay, nAudioIecDelay; // cafrii 060609 add
1011       
1012} DHL_AV_CONFIG, *P_DHL_AV_CONFIG;
1013       
1014
1015#if COMMENT
1016____Defines____(){}
1017#endif
1018
1019
1020
1021
1022
1023
1024
1025#if COMMENT
1026____API____(){}
1027#endif
1028
1029/* RF CH3/4 function */
1030
1031DHL_RESULT DHL_SetRFM34(UINT8 chnum);
1032
1033/* Loop Through On */
1034DHL_RESULT DHL_SetLTO(BOOL onoff);
1035
1036/** @brief Ãâ·Â ÇØ»óµµ¸¦ º¯°æÇÏ´Â ÇÔ¼ö.
1037
1038        »ç½Ç port Áß¿¡¼­ ÇØ»óµµ ¼³Á¤ÀÌ °¡´ÉÇÑ Æ÷Æ®´Â Component ¿Í DVI/HDMI ¹Û¿¡ ¾ø´Ù.
1039
1040        ±×¸®°í Component¿Í HDMIÀÇ ÇØ»óµµ´Â ¼­·Î µ¿ÀÏÇØ¾ß ÇÏ´Â Á¶°ÇÀÌ ÀÖ´Â °æ¿ì°¡ ¸¹´Ù.
1041
1042        colorÀÇ ¿ëµµ´Â color space (YCbCr ¶Ç´Â RGB) ¼±ÅÃÇÏ´Â °Í.
1043        component¿Í HDMI/DVIÀÇ °æ¿ì¿¡¸¸ Àǹ̰¡ ÀÖ´Ù.
1044       
1045        format ÀÌ ½ÇÁ¦ º¯°æÇϰíÀÚ ÇÏ´Â ÇØ»óµµ Á¤º¸¸¦ ³ªÅ¸³½´Ù.
1046        format¿¡¼­ eDHL_DISP_NO_OUTPUTÀ» ÁöÁ¤Çϸé ÇØ´ç ½ÅÈ£´Â blockµÈ´Ù. (¹«½ÅÈ£)
1047       
1048        @param[in] port   Çػ󵵸¦ ¼³Á¤ÇÒ Æ÷Æ® ´ÜÀÚ.
1049        @param[in] format Ãâ·Â ÇØ»óµµ.
1050        @param[in] color  color space type.
1051*/
1052DHL_RESULT DHL_AV_DispSetFormat(
1053     tDHL_DispPort port, tDHL_DispFormat format, tDHL_DispColorSpace color);
1054
1055
1056
1057/** @brief MPEG Video decodingÀ» ½ÃÀÛÇÑ´Ù.
1058
1059        ÁÖ¾îÁø pid Á¤º¸·Î ºñµð¿À µðÄÚµùÀ» ½ÃÀÛÇϰí,
1060        µðÄÚµù µÈ ºñµð¿À È­¸éÀ» Ç¥½ÃÇÑ´Ù.
1061
1062        µðÄÚ´õ id´Â multiple decodingÀ» Áö¿øÇÏ´Â °æ¿ì µðÄÚ´õ ±¸ºÐÀ» À§ÇØ »ç¿ëµÈ´Ù.
1063
1064        È­¸é¿¡ Ãâ·ÂµÇ´Â ¿µ¿ªÀº ´Ù¸¥ API¸¦ ÅëÇØ¼­ ¿µ¿ª ÁöÁ¤(resize)ÀÌ °¡´ÉÇÏ´Ù.
1065       
1066        @param[in] id       ºñµð¿À µðÄÚ´õ id.
1067        @param[in] vid_pid  µðÄÚµù ÇÒ ºñµð¿ÀÀÇ PID
1068        @param[in] pcr_pid  µðÄÚµù ÇÒ ºñµð¿ÀÀÇ PCR PID
1069        @param[in] vid_type µðÄÚµù ÇÒ ºñµð¿À ESÀÇ ÄÚµù ŸÀÔ.
1070        @return
1071*/
1072DHL_RESULT DHL_AV_VideoStart(tDHL_VDID id, 
1073        UINT16 vid_pid, UINT16 pcr_pid, tDHL_VideoCodingType vid_type);
1074
1075
1076/** @brief MPEG video decodingÀ» Áß´ÜÇÑ´Ù.
1077
1078        @param[in] id ºñµð¿À µðÄÚ´õ id.
1079        @return
1080*/
1081DHL_RESULT DHL_AV_VideoStop (tDHL_VDID id);
1082
1083
1084
1085
1086
1087
1088/** @brief ÇöÀç µðÄÚµù ÁßÀÎ ºñµð¿ÀÀÇ Sequence Hdr Á¤º¸¸¦ °¡Á®¿Â´Ù.
1089
1090        sequence header Á¤º¸¸¦ ¾ò¾î¿Â´Ù.
1091        pSeq´Â Á¤º¸°¡ ä¿öÁú ±¸Á¶Ã¼ Æ÷ÀÎÅÍÀ̸ç caller°¡ Á¦°øÇÑ´Ù.
1092
1093        ÀÌ ÇÔ¼ö´Â blocking µÇÁö ¾Ê´Â´Ù.
1094        ¸¸¾à ÇöÀç SeqHdr Á¤º¸°¡ available ÇÏÁö ¾Ê´Ù¸é Áï½Ã ¿¡·¯¸¦ ¸®ÅÏÇÑ´Ù.
1095
1096        SeqHdr°¡ ¼ö½ÅµÇ¾ú´Ù´Â callback ÅëÁö¸¦ ¹ÞÀº ÈÄ¿¡ ÀÌ API¸¦ »ç¿ëÇÏ¿©¾ß ÇÑ´Ù.
1097
1098        @param[in]  id    Á¤º¸ Á¶È¸ÇÒ ºñµð¿À µðÄÚ´õ id.
1099        @param[out] pSeq  ½ÃÄö½º Çì´õ Á¤º¸°¡ ä¿öÁú ¿µ¿ª. caller°¡ Á¦°ø.
1100
1101        @return
1102                - DHL_FAIL_INVALID_PARAM : ÆÄ¶ó¹ÌÅÍ ¿À·ù
1103                - DHL_FAIL_NOT_AVAILABLE : ¾ÆÁ÷ SeqHdr Á¤º¸°¡ ¼ö½Å ¾ÈµÇ¾úÀ½.
1104               
1105*/
1106DHL_RESULT DHL_AV_VideoSeqInfo(tDHL_VDID id, tDHL_VideoSeqHdr *pSeq);
1107
1108
1109/** @brief ºñµð¿À °¢Á¾ »óÅ Á¤º¸¸¦ ¸®ÅÏÇÑ´Ù.
1110
1111        (ÁÖÀÇ)
1112        ÀϺΠtDHL_VideoStatus Á¤º¸´Â video decoder ¿Í ¹«°üÇÑ display ¼Ó¼ºÀÌ´Ù.
1113        µû¶ó¼­ ÀÌ·± Á¤º¸´Â tDHL_VDID ÀÎÀÚ °ª¿¡ »ó°ü ¾øÀÌ ÀÏÁ¤ÇÑ °ªÀÌ ¸®ÅϵȴÙ.
1114
1115        @param[in]  id    Á¤º¸ Á¶È¸ÇÒ ºñµð¿À µðÄÚ´õ id.
1116        @param[out] pStatus  ºñµð¿À µðÄÚ´õ »óÅÂ
1117*/
1118DHL_RESULT DHL_AV_VideoGetStatus(tDHL_VDID id, tDHL_VideoStatus *pStatus);
1119
1120
1121
1122/** @brief Video display hide(mute) Á¦¾î.
1123
1124        Video mute/unmute Á¦¾î¸¦ ÇÑ´Ù.
1125        Rating Á¦¾î °°Àº ¿ëµµ·Î »ç¿ëµÉ ¼ö ÀÖ´Ù.
1126        OSD (graphics) planeÀº ¿µÇâÀ» ¹ÞÁö ¾Ê¾Æ¾ß ÇÑ´Ù.
1127
1128        @param[in] id      ºñµð¿À µðÄÚ´õ id.
1129        @param[in] bHide   TRUE À̸é mute, FALSE À̸é unmute¸¦ ÇÑ´Ù.
1130
1131        @return
1132*/
1133void DHL_AV_DispStop(BOOL onoff);
1134DHL_RESULT DHL_AV_VideoHide(tDHL_VDID id, BOOL bHide);
1135
1136/** @brief ºñµð¿À Ãâ·ÂÀ» ÀϽà Á¤Áö/ÇØÁ¦ ÇÑ´Ù.
1137
1138        Video decoder/display freeze or unfreeze
1139
1140        ³»ºÎ¿¡¼­ ºñµð¿À µðÄÚµùÀº °è¼ÓÇØ¼­ ÁøÇàÇÏ´Â °ÍÀ» ¿øÄ¢À¸·Î ÇÑ´Ù.
1141
1142        unfreeze ½Ã¿¡ µðÄÚµùÀ» »õ·Ó°Ô ´Ù½Ã ½ÃÀÛÇÏ´Â °Í º¸´Ù´Â ´õ ºü¸£°Ô
1143        Àç»ý ¸ðµå·Î µé¾î°¡¾ß ÇÑ´Ù.
1144
1145        @param[in] id      ºñµð¿À µðÄÚ´õ id.
1146        @param[in] bFreeze TRUE À̸é freeze, FALSE À̸é unfreeze ÇÑ´Ù.
1147
1148        @return
1149*/
1150DHL_RESULT DHL_AV_VideoFreeze(tDHL_VDID id, BOOL bFreeze);
1151
1152
1153
1154/** @brief ºñµð¿À°¡ Ãâ·ÂµÇ´Â ¿µ¿ªÀ» ÁöÁ¤ÇÑ´Ù.
1155
1156        È­¸é ÀϺκп¡¸¸ ºñµð¿À È­¸éÀ» Ç¥½ÃÇÏ´Â °æ¿ì     »ç¿ëÇÑ´Ù.
1157        (¿¹: EPG µî¿¡¼­ÀÇ thumbnail µî)
1158
1159        Ãʱ⠵ðÆúÆ®´Â Àüü È­¸éÀÌ´Ù.
1160        ÇØ»óµµ¿¡ µû¶ó Àüü È­¸é ÁÂÇ¥°¡ ´Ù¸§¿¡ À¯ÀÇÇÑ´Ù.
1161       
1162        ÀÌ ±â´ÉÀº Video Hide »óÅÂ, Free »óÅ¿¡¼­µµ »ç¿ë °¡´ÉÇØ¾ß ÇÑ´Ù.
1163
1164        ARC¿Í´Â µ¶¸³ÀûÀ¸·Î µ¿ÀÛÇÑ´Ù. (resize µÈ È­¸é ³»¿¡¼­ ARC°¡ ´Ù½Ã Àû¿ëµÊ)
1165        Áï size¸¦ (0,0, 400,300) À¸·Î ÇÑ »óÅ¿¡¼­ LetterBox°¡ Àû¿ëµÇ¸é
1166        ½ÇÁ¦ video´Â (0,37, 400,225) ¿µ¿ª¿¡ Ç¥½ÃµÊ.
1167
1168        @todo
1169        Resize µÈ È­¸éÀÌ 4:3, 16:9 µîÀÇ Á¤º¸°¡ Ʋ·ÁÁ³´Âµ¥ ARCÀÇ Àǹ̰¡ Àִ°¡?
1170
1171        @param[in] id  ºñµð¿À µðÄÚ´õ id.
1172        @param[in] x
1173        @param[in] y
1174        @param[in] w
1175        @param[in] h
1176        @return
1177*/
1178DHL_RESULT DHL_AV_VideoResize(tDHL_VDID id, int x, int y, int w, int h);
1179
1180
1181
1182/** @brief ARC ¸ðµå¸¦ Àû¿ëÇÑ´Ù.
1183
1184        HD Ãâ·Â°ú SD Ãâ·Â¿¡ °¢°¢ ´Ù¸¥ ARC ¸ðµå¸¦ Àû¿ëÇÒ ¼ö ÀÖµµ·Ï
1185        µÎ°¡Áö ARC °ªÀ» ¹Þ´Â´Ù.
1186       
1187        °ú°Å rect ÀÎÀÚ´Â »ç¿ëÇÏÁö ¾ÊÀ¸¹Ç·Î »èÁ¦.
1188
1189        HD Ãâ·ÂÀº HDMI, Component ¸¦ ÀǹÌÇϰí (ÀϹÝÀûÀ¸·Î 16:9 display°¡ ¿¬°á)
1190        SD Ãâ·ÂÀº CVBS, S-Video ´ÜÀÚ¸¦ ÀǹÌ. (°ÅÀÇ ´ëºÎºÐ 4:3 display ¿¬°á)
1191
1192        HD, SD Ãâ·Â ´ÜÀÚ¿¡ µ¶¸³ÀûÀ¸·Î ARC Àû¿ëÀÌ ºÒ°¡´ÉÇÑ platform ¿¡¼­´Â
1193        adj_sd ÀÎÀÚ´Â ¹«½ÃµÉ ¼ö ÀÖÀ½.
1194
1195        @param[in] adj_hd  HD Ãâ·Â Æ÷Æ®¿¡ Àû¿ëÇϰíÀÚ ÇÏ´Â ARC mode
1196        @param[in] adj_sd  SD Ãâ·Â Æ÷Æ®¿¡ Àû¿ëÇϰíÀÚ ÇÏ´Â ARC mode
1197*/
1198DHL_RESULT DHL_AV_VideoSetARC(tDHL_DispARC adj_hd, tDHL_DispARC adj_sd);
1199
1200
1201
1202/** @brief ¾Æ³¯·Î±× ºñµð¿À Ãâ·Â¿¡ 608 µ¥ÀÌÅ͸¦ »ðÀÔÇÑ´Ù.
1203
1204        ¾Æ³¯·Î±× ºñµð¿À Ãâ·Â¿¡ 608 µ¥ÀÌÅ͸¦ »ðÀÔÇÑ´Ù.
1205
1206        @param[in] is_even  data1°ú data2°¡ »ðÀԵǴ frameÀÌ odd / even ÀÎÁö ±¸ºÐ
1207        @param[in] data1  608 µ¥ÀÌÅÍÀÇ ÇÏÀ§
1208        @param[in] data2  608 µ¥ÀÌÅÍÀÇ »óÀ§
1209        @param[in] is_end  »ðÀԵǴ 608 µ¥ÀÌÅÍ ´ÜÀ§¸¦ ±¸ºÐ
1210*/
1211DHL_RESULT DHL_AV_VideoFeeding608(BOOL is_even, UINT8 data1, UINT8 data2,
1212                                  BOOL is_end);
1213
1214
1215
1216
1217#if COMMENT
1218____API2____(){}
1219#endif
1220
1221
1222/** @brief Audio decodingÀ» ½ÃÀÛÇÑ´Ù.
1223
1224        ÁÖ¾îÁø pid Á¤º¸·Î audio decodingÀ» ½ÃÀÛÇÑ´Ù.
1225        µðÄÚµù °ú ÇÔ²² audio playµµ °°ÀÌ ½ÃÀÛÇÑ´Ù. (Áï ¼Ò¸®°¡ Ãâ·Â µÊ)
1226       
1227        TS ÀÔ·Â ¼Ò½º´Â ÀÌ API »ó¿¡¼­ ÁöÁ¤ÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÏ´Ù.
1228        Ç÷§Æû º°·Î ÀÔ·Â Æ÷Æ®°¡ °íÁ¤µÇ¾î ÀÖ´Ù.
1229
1230        pcr_pid´Â ¿ø·¡ Audio, video¿¡ °øÅëÀ¸·Î Àû¿ëµÇ´Âµ¥,
1231        video µðÄÚµùÀÌ ÀÌ¹Ì µ¿ÀÛ ÁßÀ̶ó¸é video decoding¿¡ »ç¿ëµÈ pcr pid¿Í
1232        µ¿ÀÏÇØ¾ß ÇÑ´Ù. ¸¸¾à µ¿ÀÏÇÏÁö ¾ÊÀº °æ¿ì ¹«½ÃµÇ°Å³ª ¾Æ´Ï¸é ±âÁ¸ÀÇ video
1233        decoding¿¡ ¿µÇâÀ» ³¢Ä¥ ¼ö ÀÖ´Ù.
1234
1235        caller´Â ÄÚµù ŸÀÔ (ÄÚµ¦ ŸÀÔ)Àº °¡´ÉÇϸé Á¤È®ÇÏ°Ô ÁöÁ¤ÇØ¾ß ÇÑ´Ù.
1236        UnknownÀ» ÁöÁ¤ÇÒ °æ¿ì DHL ³»ºÎ¿¡¼­ bitstream Á¤º¸¸¦ ºÐ¼®ÇÏ¿©
1237        ½ºÆ®¸² Á¤º¸¸¦ detect ÇÏ´Â ±â´ÉÀ» Á¦°øÇÒ ¼öµµ ÀÖ´Ù.
1238
1239        @param[in] aud_pid   µðÄÚµù ÇÒ audio pid
1240        @param[in] pcr_pid   pcr pid
1241        @param[in] aud_type  ¿Àµð¿À ÄÚµ¦ ŸÀÔ
1242
1243*/
1244DHL_RESULT DHL_AV_AudioStart(UINT16 aud_pid, UINT16 pcr_pid, tDHL_AudioCodingType aud_type);
1245
1246/** @brief Audio decodingÀ» Áß´ÜÇÑ´Ù.
1247
1248*/
1249DHL_RESULT DHL_AV_AudioStop(void);
1250
1251/** @brief Audio °¢Á¾ »óÅ Á¤º¸¸¦ ¸®ÅÏÇÑ´Ù.
1252
1253        @param[out] pStatus  ¿Àµð¿À µðÄÚ´õ »óÅÂ
1254*/
1255DHL_RESULT DHL_AV_AudioGetStatus(tDHL_AudioStatus *pStatus);
1256
1257
1258
1259
1260
1261/** @brief ¿Àµð¿À ¹ÂÆ® ¼³Á¤
1262
1263        @param[in] mutePlace ¾î´À ºÎºÐÀÇ mute¸¦ ¼³Á¤ÇÒ °ÍÀÎÁö ÁöÁ¤.
1264        @param[in] bMute     TRUE¸é mute, FALSE¸é unmute.
1265*/
1266DHL_RESULT DHL_AV_AudioMuteControl(tDHL_AudioMutePlace mutePlace, BOOL bMute);
1267
1268
1269/** @brief »ç¿ëÀÚ ¿Àµð¿À º¼·ý ¿µ¿ª ¼³Á¤.
1270
1271        DHL client°¡ »ç¿ëÇÏ´Â º¼·ý °³³äÀÎ user volumeÀÇ ¿µ¿ªÀ» ¼³Á¤ÇÑ´Ù.
1272
1273        Audio volume¿¡ ´ëÇÑ °¢ °èÃþº° ¿ë¾î´Â ´ÙÀ½°ú °°´Ù.
1274       
1275        - user volume
1276                - application¿¡¼­ »ç¿ëÇÏ´Â volume unit.
1277                - DHL_AV_AudioSetUserVolumeRange() ¸¦ ÀÌ¿ëÇÏ¿© ÃÖ¼Ò, ÃÖ´ë ¹üÀ§ ÁöÁ¤.
1278                - (´Ü stepÀº ÁöÁ¤ÀÌ ºÒ°¡´ÉÇϸç, Á¤¼ö ¸¸ »ç¿ë °¡´ÉÇÔ)           
1279       
1280        - logical volume
1281                - HAL ³»ºÎ¿¡¼­ »ç¿ëÇÏ´Â volume unit.
1282                - 0~100 ¹üÀ§¸¦ °¡Áø´Ù.
1283                - ÀÎÅÍÆäÀ̽º ³»ºÎ¿¡ °¨ÃçÁ® ÀÖÀ¸¸ç, app¿¡¼­´Â ÀÌ¿¡ ´ëÇØ¼­ ¾Ë ÇÊ¿ä ¾øÀ½. 
1284
1285        - device volume
1286                - ½ÇÁ¦ volume ÀåÄ¡
1287                - audio decoder, pcm output player, audio DAC µîÀÌ
1288                  volume Á¶Á¤ ÀåÄ¡°¡ µÉ ¼ö ÀÖÀ½.
1289*/
1290DHL_RESULT DHL_AV_AudioSetUserVolumeRange(UINT32 uVolMin, UINT32 uVolMax);
1291
1292/** @brief »ç¿ëÀÚ ¿Àµð¿À º¼·ýÀ» ¼³Á¤ÇÑ´Ù.
1293*/
1294DHL_RESULT DHL_AV_AudioSetVolume(UINT16 uVolLvl);
1295
1296
1297
1298
1299
1300#if COMMENT
1301____API3____(){}
1302#endif
1303
1304
1305/** @brief generic purpose query API
1306
1307        ¿©·¯°¡Áö ¿ëµµ·Î »ç¿ë °¡´ÉÇÑ Query API.
1308        tDHL_AVQueryType Ç׸ñ Âü°í.
1309
1310        @param[in] type    Á¶È¸ÇÒ ³»¿ë Á¾·ù.
1311        @param[in] pValue  Á¶È¸ °á°ú °ªÀÌ Àü´Þ µÉ °÷.
1312*/
1313DHL_RESULT DHL_AV_Query(tDHL_AVQueryType type, UINT32 *pValue);
1314
1315/** @brief generic purpose control API
1316
1317        ¿©·¯°¡Áö ¿ëµµ·Î »ç¿ë °¡´ÉÇÑ Control API.
1318        tDHL_AVControlType Ç׸ñ Âü°í.
1319
1320        @param[in] type   Á¦¾îÇÒ ³»¿ë Á¾·ù
1321        @param[in] value  Á¦¾î¿¡ ÇÊ¿äÇÑ µ¥ÀÌÅÍ
1322*/
1323DHL_RESULT DHL_AV_Control(tDHL_AVControlType type, UINT32 value);
1324
1325
1326
1327/** @brief
1328
1329        ±âÁ¸ HAL¿¡¼­´Â DHL_AV_PresetCallback() À̸§À» »ç¿ëÇߴµ¥, ÀÎÅÍÆäÀ̽º°¡
1330        ¸íÈ®ÇÏÁö ¾Ê¾ÒÀ½. (ÀÎÀÚ·Î tDHL_VideoContextHandle ÇÚµéÀ» ¹Þ´Â µî..)
1331
1332        »õ·Ó°Ô À̸§À» º¯°æÇϰí callback ŸÀÔµµ »õ·Ó°Ô Á¤ÀÇÇÏ¿´À½.
1333
1334        @param[in] cb_type   callback event Á¾·ù
1335        @param[in] cb        callback ÇÔ¼ö Æ÷ÀÎÅÍ
1336*/
1337DHL_RESULT DHL_AV_SetCallback(tDHL_AVCallbackType cb_type, tDHL_AVCALLBACK cb);
1338
1339
1340#if COMMENT
1341____API4____(){}
1342#endif
1343
1344/** @brief ºñµð¿À ÀÔ·Â ¼±ÅÃ
1345*/
1346DHL_RESULT DHL_CAP_ChangeVideoSource(tDHL_VCAPID id, tDHL_CapVideoInput VideoInputSrc);
1347
1348/** @brief ¿Àµð¿À ÀÔ·Â ¼±ÅÃ
1349
1350*/
1351DHL_RESULT DHL_CAP_ChangeAudioSource(tDHL_CapAudioInput AudioInputSrc);
1352
1353
1354#if COMMENT
1355____API5____(){}
1356#endif
1357
1358/** @brief video capture ÀåÄ¡¸¦ ½ÃÀÛÇÑ´Ù.
1359
1360        @param[in] id ºñµð¿À ĸÃÄ ÀåÄ¡ id.
1361*/
1362DHL_RESULT DHL_CAP_VideoStart(tDHL_VCAPID id);
1363
1364
1365/** @brief video capture ÀåÄ¡¸¦ ÁßÁöÇÑ´Ù.
1366
1367        @param[in] id ºñµð¿À ĸÃÄ ÀåÄ¡ id.
1368*/
1369DHL_RESULT DHL_CAP_VideoStop(tDHL_VCAPID id);
1370
1371
1372/** @brief video capture ÀåÄ¡ÀÇ Ç¥½Ã È­¸éÀ» °¨Ãá´Ù.
1373        DHL_AV_VideoHide ÀÇ »ç¿ë¹ý°ú µ¿ÀÏÇÏ´Ù.
1374
1375        @param[in] id ºñµð¿À ĸÃÄ ÀåÄ¡ id.
1376*/
1377DHL_RESULT DHL_CAP_VideoHide(tDHL_VCAPID id, BOOL bHide);
1378
1379
1380/** @brief video capture ÀåÄ¡ È­¸éÀ» ÀϽà Á¤Áö/ÇØÁ¦ ÇÑ´Ù.
1381        DHL_AV_VideoFreeze ÀÇ »ç¿ë¹ý°ú µ¿ÀÏÇÏ´Ù.
1382
1383        @param[in] id ºñµð¿À ĸÃÄ ÀåÄ¡ id.
1384*/
1385DHL_RESULT DHL_CAP_VideoFreeze(tDHL_VCAPID id, BOOL bFreeze);
1386
1387
1388/** @brief video capture ÀåÄ¡¸¦ ½ÃÀÛÇÑ´Ù.
1389        DHL_AV_VideoResize ÀÇ »ç¿ë¹ý°ú µ¿ÀÏÇÏ´Ù.
1390
1391        @param[in] id ºñµð¿À ĸÃÄ ÀåÄ¡ id.
1392*/
1393DHL_RESULT DHL_CAP_VideoResize(tDHL_VCAPID id, int x, int y, int w, int h);
1394
1395
1396#if COMMENT
1397____API6____(){}
1398#endif
1399
1400
1401/** @brief audio capture ÀåÄ¡¸¦ ½ÃÀÛÇÑ´Ù.
1402
1403*/
1404DHL_RESULT DHL_CAP_AudioStart(void);
1405
1406
1407/** @brief audio capture ÀåÄ¡¸¦ ÁßÁöÇÑ´Ù.
1408
1409*/
1410DHL_RESULT DHL_CAP_AudioStop(void);
1411
1412
1413
1414#if COMMENT
1415____Init____(){}
1416#endif
1417
1418/** @brief AV ¸ðµâÀ» ÃʱâÈ­ ÇÑ´Ù.
1419
1420        AV µðÄÚ´õ ¹× Capture block Çϵå¿þ¾î ºÎºÐÀÌ ÃʱâÈ­ µÈ´Ù.
1421
1422        display´Â µðÆúÆ® Ãâ·Â ŸÀ̹ÖÀ¸·Î ÃʱâÈ­ µÉ ¼ö ÀÖ´Ù.
1423        ³ªÁß¿¡ ´Ù¸¥ API¸¦ ÀÌ¿ëÇÏ¿© ¿øÇϴ ŸÀ̹ÖÀ¸·Î ´Ù½Ã ¼³Á¤ÇØ¾ß ÇÑ´Ù.
1424*/
1425DHL_RESULT DHL_AV_Init(void);
1426
1427/** @brief AV ¸ðµâÀ» uninit ÇÑ´Ù.
1428
1429*/
1430DHL_RESULT DHL_AV_Terminate(void);
1431
1432
1433
1434#ifdef __cplusplus
1435} /* extern "C" */
1436#endif
1437
1438
1439
1440#endif  /* __DHL_AVCAP_XXXXX_H__ */
1441
Note: See TracBrowser for help on using the repository browser.