18b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol/*
28b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// Copyright (c) 2014 Intel Corporation 
38b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol//
48b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// Licensed under the Apache License, Version 2.0 (the "License");
58b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// you may not use this file except in compliance with the License.
68b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// You may obtain a copy of the License at
78b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol//
88b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol//      http://www.apache.org/licenses/LICENSE-2.0
98b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol//
108b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// Unless required by applicable law or agreed to in writing, software
118b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// distributed under the License is distributed on an "AS IS" BASIS,
128b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
138b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// See the License for the specific language governing permissions and
148b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// limitations under the License.
158b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol*/
168b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#ifndef VIDEO_PAYLOAD_BUFFER_H
178b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#define VIDEO_PAYLOAD_BUFFER_H
188b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol
198b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#include <utils/Timers.h>
208b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolnamespace android {
218b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolnamespace intel {
228b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol
238b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolstruct VideoPayloadBuffer {
248b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    // transform made by clients (clients to hwc)
258b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    int client_transform;
268b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    int metadata_transform;
278b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    int rotated_width;
288b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    int rotated_height;
298b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    int surface_protected;
308b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    int force_output_method;
318b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    buffer_handle_t rotated_buffer_handle;
328b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t renderStatus;
338b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    unsigned int used_by_widi;
348b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    int bob_deinterlace;
358b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    int tiling;
368b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t width;
378b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t height;
388b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t luma_stride;
398b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t chroma_u_stride;
408b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t chroma_v_stride;
418b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t format;
428b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    buffer_handle_t khandle;
438b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    int64_t  timestamp;
448b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol
458b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t rotate_luma_stride;
468b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t rotate_chroma_u_stride;
478b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t rotate_chroma_v_stride;
488b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol
498b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    nsecs_t hwc_timestamp;
508b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t layer_transform;
518b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol
528b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    void *native_window;
538b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    buffer_handle_t scaling_khandle;
548b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t scaling_width;
558b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t scaling_height;
568b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol
578b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t scaling_luma_stride;
588b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t scaling_chroma_u_stride;
598b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t scaling_chroma_v_stride;
608b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol
618b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t crop_width;
628b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t crop_height;
638b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol
648b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t coded_width;
658b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t coded_height;
668b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t csc_mode;
678b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t video_range;
688b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    uint32_t initialized;
698b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol};
708b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol
718b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol
728b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol// force output method values
738b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujolenum {
748b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    FORCE_OUTPUT_INVALID = 0,
758b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    FORCE_OUTPUT_GPU,
768b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    FORCE_OUTPUT_OVERLAY,
778b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol    FORCE_OUTPUT_SW_DECODE,
788b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol};
798b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol
808b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol
818b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol} // namespace intel
828b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol} // namespace android
838b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol
848b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol
858b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol#endif // VIDEO_PAYLOAD_BUFFER_H
868b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol
878b0063f7f46289983bd1bf9ca61662b4a2ddf5b6Benjamin Pujol
88