vdin_vf.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /*
  2. * VDIN vframe support
  3. *
  4. * Author: Bobby Yang <bo.yang@amlogic.com>
  5. *
  6. * Copyright (C) 2010 Amlogic Inc.
  7. *
  8. * This program is free software; you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License version 2 as
  10. * published by the Free Software Foundation.
  11. *
  12. */
  13. #ifndef __AML_TVIN_VDIN_VF_H
  14. #define __AML_TVIN_VDIN_VF_H
  15. #include <linux/amports/vframe.h>
  16. #include "tvin_global.h"
  17. typedef struct vfq_s{
  18. struct vframe_s *pool[BT656IN_VF_POOL_SIZE];
  19. u32 rd_index;
  20. u32 wr_index;
  21. } vfq_t;
  22. bool vfq_empty(vfq_t *q);
  23. bool vfq_empty_newframe(void);
  24. bool vfq_empty_display(void);
  25. bool vfq_empty_recycle(void);
  26. void vfq_push(vfq_t *q, vframe_t *vf);
  27. void vfq_push_newframe(vframe_t *vf);
  28. void vfq_push_display(vframe_t *vf);
  29. void vfq_push_recycle(vframe_t *vf);
  30. vframe_t *vfq_pop(vfq_t *q);
  31. vframe_t *vfq_pop_newframe(void);
  32. vframe_t *vfq_pop_display(void);
  33. vframe_t *vfq_pop_recycle(void);
  34. void vdin_vf_init(void);
  35. void vdin_reg_vf_provider(void);
  36. void vdin_unreg_vf_provider(void);
  37. void vdin_notify_receiver(int type, void* data, void* private_data);
  38. #endif