xbmc
DVDOverlaySpu.h
1 /*
2  * Copyright (C) 2005-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "DVDOverlay.h"
12 
13 #include <stdint.h>
14 #include <string.h>
15 
17 {
18 public:
19  CDVDOverlaySpu() : CDVDOverlay(DVDOVERLAY_TYPE_SPU)
20  {
21  pTFData = 0;
22  pBFData = 0;
23  x = 0;
24  y = 0;
25  width = 0;
26  height = 0;
27 
28  crop_i_x_end = 0;
29  crop_i_y_end = 0;
30  crop_i_x_start = 0;
31  crop_i_y_start = 0;
32 
33  bHasColor = false;
34  bHasAlpha = false;
35 
36  memset(result, 0, sizeof(result));
37  memset(alpha, 0, sizeof(alpha));
38  memset(color, 0, sizeof(color));
39  memset(highlight_alpha, 0, sizeof(highlight_alpha));
40  memset(highlight_color, 0, sizeof(highlight_color));
41  }
42 
43  CDVDOverlaySpu(const CDVDOverlaySpu& src)
44  : CDVDOverlay(src)
45  {
46  pTFData = src.pTFData;
47  pBFData = src.pBFData;
48  x = src.x;
49  y = src.y;
50  width = src.width;
51  height = src.height;
52 
53  crop_i_x_end = src.crop_i_x_end;
54  crop_i_y_end = src.crop_i_y_end;
55  crop_i_x_start = src.crop_i_x_start;
56  crop_i_y_start = src.crop_i_y_start;
57 
58  bHasColor = src.bHasColor;
59  bHasAlpha = src.bHasAlpha;
60 
61  memcpy(result , src.result , sizeof(result));
62  memcpy(alpha , src.alpha , sizeof(alpha));
63  memcpy(color , src.color , sizeof(color));
64  memcpy(highlight_alpha, src.highlight_alpha, sizeof(highlight_alpha));
65  memcpy(highlight_color, src.highlight_color, sizeof(highlight_color));
66  }
67 
68  ~CDVDOverlaySpu() override = default;
69 
70  uint8_t result[2*65536 + 20]; // rle data
71  int pTFData; // pointer to top field picture data (needs rle parsing)
72  int pBFData; // pointer to bottom field picture data (needs rle parsing)
73  int x;
74  int y;
75  int width;
76  int height;
77 
78  // the four contrasts, [0] = background
79  int alpha[4];
80  bool bHasAlpha;
81 
82  // the four yuv colors, containing [][0] = Y, [][1] = Cr, [][2] = Cb
83  // [0][] = background, [1][] = pattern, [2][] = emphasis1, [3][] = emphasis2
84  int color[4][3];
85  bool bHasColor;
86 
87  // used for cropping overlays
88  int crop_i_x_end;
89  int crop_i_y_end;
90  int crop_i_x_start;
91  int crop_i_y_start;
92 
93  // provided by the navigator engine
94  // should be used on the highlighted areas
95  int highlight_color[4][3];
96  int highlight_alpha[4];
97 };
Definition: DVDOverlaySpu.h:16
Definition: DVDOverlay.h:27