1# Copyright (c) 2011 Intel Corporation. All Rights Reserved.
2#
3#
4# Permission is hereby granted, free of charge, to any person obtaining a
5# copy of this software and associated documentation files (the
6# "Software"), to deal in the Software without restriction, including
7# without limitation the rights to use, copy, modify, merge, publish,
8# distribute, sub license, and/or sell copies of the Software, and to
9# permit persons to whom the Software is furnished to do so, subject to
10# the following conditions:
11#
12# The above copyright notice and this permission notice (including the
13# next paragraph) shall be included in all copies or substantial portions
14# of the Software.
15#
16# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
19# IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
20# ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
21# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
22# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23#
24
25LOCAL_PATH:= $(call my-dir)
26
27include $(CLEAR_VARS)
28
29# pnw_H264.c, pnw_MPEG4.c, pnw_MPEG2.c, pnw_VC1.c, pnw_H263ES.c, tng_H263ES.c, etc.
30# all use GNU old-style field designator extension.
31# psb_drv_video.c: comparison of constant 32 with expression of type 'VAProfile'
32# is always false
33# pnw_H263ES.c and tng_hostcode.c has implicit conversion
34# from one enumeration type to another
35LOCAL_CLANG_CFLAGS += \
36    -Wno-gnu-designator \
37    -Wno-tautological-constant-out-of-range-compare \
38    -Wno-enum-conversion
39
40LOCAL_CFLAGS := \
41    -DLINUX -DANDROID -g -Wall -Wno-unused \
42    -DPSBVIDEO_LOG_ENABLE -DPSBVIDEO_VXD392 \
43    -DPSBVIDEO_MSVDX_DEC_TILING -DPSBVIDEO_MSVDX_EC
44
45LOCAL_C_INCLUDES := \
46    $(call include-path-for, libhardware)/hardware \
47    system/core/libsync/include \
48    $(TARGET_OUT_HEADERS)/libva \
49    $(TARGET_OUT_HEADERS)/libttm \
50    $(TARGET_OUT_HEADERS)/libwsbm \
51    $(TARGET_OUT_HEADERS)/libdrm \
52    $(TARGET_OUT_HEADERS)/opengles \
53    $(TARGET_OUT_HEADERS)/pvr \
54    $(LOCAL_PATH)/hwdefs
55
56LOCAL_SHARED_LIBRARIES += libdl libdrm libwsbm libcutils \
57    libutils libbinder libhardware liblog libsync
58
59LOCAL_SRC_FILES := \
60    object_heap.c \
61    psb_buffer.c \
62    psb_buffer_dm.c \
63    psb_cmdbuf.c \
64    psb_drv_video.c \
65    psb_drv_debug.c \
66    psb_surface_attrib.c \
67    psb_output.c \
68    android/psb_output_android.c \
69    android/psb_android_glue.cpp \
70    android/psb_surface_gralloc.c \
71    android/psb_gralloc.cpp \
72    psb_surface.c \
73    psb_overlay.c \
74    vc1_idx.c \
75    vc1_vlc.c \
76    pnw_H264.c \
77    pnw_MPEG4.c \
78    pnw_MPEG2.c \
79    pnw_VC1.c \
80    pnw_rotate.c \
81    tng_vld_dec.c \
82    tng_yuv_processor.c \
83    tng_VP8.c \
84    tng_jpegdec.c
85
86ifneq ($(filter $(TARGET_BOARD_PLATFORM),merrifield moorefield morganfield),)
87LOCAL_SRC_FILES += \
88    pnw_H263ES.c \
89    pnw_H264ES.c \
90    pnw_MPEG4ES.c \
91    pnw_cmdbuf.c \
92    pnw_hostcode.c \
93    pnw_hostheader.c \
94    pnw_hostjpeg.c \
95    pnw_jpeg.c \
96    tng_ved_scaling.c \
97    tng_cmdbuf.c \
98    tng_hostheader.c \
99    tng_hostcode.c \
100    tng_picmgmt.c \
101    tng_hostbias.c \
102    tng_H264ES.c \
103    tng_H263ES.c \
104    tng_MPEG4ES.c \
105    tng_jpegES.c \
106    tng_slotorder.c \
107    tng_hostair.c \
108    tng_trace.c
109
110ifeq ($(TARGET_HAS_ISV),true)
111LOCAL_SRC_FILES += \
112    vsp_VPP.c \
113    vsp_cmdbuf.c \
114    vsp_vp8.c \
115    vsp_compose.c
116
117LOCAL_CFLAGS += \
118    -DPSBVIDEO_MRFL_VPP \
119    -DPSBVIDEO_VPP_TILING
120endif
121
122ifeq ($(TARGET_HAS_VPP),true)
123LOCAL_SRC_FILES += \
124    vsp_VPP.c \
125    vsp_vp8.c \
126    vsp_cmdbuf.c \
127    vsp_compose.c
128endif
129
130ifeq ($(TARGET_HAS_VPP),true)
131LOCAL_C_INCLUDES += \
132    $(TARGET_OUT_HEADERS)/libmedia_utils_vpp
133endif
134
135
136ifeq ($(TARGET_HAS_VPP),true)
137LOCAL_SHARED_LIBRARIES += libvpp_setting
138LOCAL_CFLAGS += DPSBVIDEO_MRFL_VPP_SETTING
139endif
140
141ifeq ($(TARGET_HAS_VPP),true)
142LOCAL_CFLAGS += \
143    -DPSBVIDEO_MRFL_VPP -DPSBVIDEO_MRFL \
144    -DPSBVIDEO_VPP_TILING -DSLICE_HEADER_PARSING
145else
146LOCAL_CFLAGS += \
147    -DPSBVIDEO_MRFL_VPP \
148    -DPSBVIDEO_MRFL \
149    -DSLICE_HEADER_PARSING
150endif
151
152ifeq ($(TARGET_BOARD_PLATFORM),merrifield)
153ifeq ($(TARGET_HAS_VPP),true)
154LOCAL_CFLAGS += -DPSBVIDEO_MRFL_VPP_ROTATE
155endif
156endif
157
158else
159LOCAL_CFLAGS += \
160    -DPSBVIDEO_VXD392 -DBAYTRAIL \
161    -DPSBVIDEO_MSVDX_DEC_TILING -DPSBVIDEO_MSVDX_EC
162endif
163
164ifeq ($(TARGET_HAS_MULTIPLE_DISPLAY),true)
165LOCAL_SRC_FILES += android/psb_mds.cpp
166LOCAL_CFLAGS += -DTARGET_HAS_MULTIPLE_DISPLAY
167LOCAL_SHARED_LIBRARIES += libmultidisplay
168endif
169LOCAL_CFLAGS += -Werror
170
171LOCAL_MODULE_TAGS := optional
172LOCAL_MODULE := pvr_drv_video
173
174include $(BUILD_SHARED_LIBRARY)
175