blob: ffead011e3e95f24dcf7d63d87c80e34e8f732fa [file] [log] [blame]
/*
* drivers/amlogic/media/stream_input/amports/amports_priv.h
*
* Copyright (C) 2016 Amlogic, Inc. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
*/
#ifndef AMPORTS_PRIV_HEAD_HH
#define AMPORTS_PRIV_HEAD_HH
#include "../amports/streambuf.h"
#include "../../common/media_clock/switch/amports_gate.h"
#include <linux/amlogic/media/vfm/vframe.h>
#include <linux/amlogic/media/registers/register.h>
#include <linux/amlogic/media/utils/log.h>
struct port_priv_s {
struct vdec_s *vdec;
struct stream_port_s *port;
struct mutex mutex;
};
struct stream_buf_s *get_buf_by_type(u32 type);
/*video.c provide*/
extern u32 trickmode_i;
struct amvideocap_req;
extern u32 set_blackout_policy(int policy);
extern u32 get_blackout_policy(void);
int calculation_stream_ext_delayed_ms(u8 type);
int ext_get_cur_video_frame(struct vframe_s **vf, int *canvas_index);
int ext_put_video_frame(struct vframe_s *vf);
int ext_register_end_frame_callback(struct amvideocap_req *req);
int amstream_request_firmware_from_sys(const char *file_name,
char *buf, int size);
void set_vsync_pts_inc_mode(int inc);
void set_real_audio_info(void *arg);
void amstream_wakeup_userdata_poll(struct vdec_s *vdec);
#define dbg() pr_info("on %s,line %d\n", __func__, __LINE__);
struct device *amports_get_dma_device(void);
struct device *get_codec_cma_device(void);
#endif