w9968cf_vpp.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /***************************************************************************
  2. * Interface for video post-processing functions for the W996[87]CF driver *
  3. * for Linux. *
  4. * *
  5. * Copyright (C) 2002-2004 by Luca Risolia <luca.risolia@studio.unibo.it> *
  6. * *
  7. * This program is free software; you can redistribute it and/or modify *
  8. * it under the terms of the GNU General Public License as published by *
  9. * the Free Software Foundation; either version 2 of the License, or *
  10. * (at your option) any later version. *
  11. * *
  12. * This program is distributed in the hope that it will be useful, *
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of *
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
  15. * GNU General Public License for more details. *
  16. * *
  17. * You should have received a copy of the GNU General Public License *
  18. * along with this program; if not, write to the Free Software *
  19. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
  20. ***************************************************************************/
  21. #ifndef _W9968CF_VPP_H_
  22. #define _W9968CF_VPP_H_
  23. #include <linux/module.h>
  24. #include <asm/types.h>
  25. struct w9968cf_vpp_t {
  26. struct module* owner;
  27. int (*check_headers)(const unsigned char*, const unsigned long);
  28. int (*decode)(const char*, const unsigned long, const unsigned,
  29. const unsigned, char*);
  30. void (*swap_yuvbytes)(void*, unsigned long);
  31. void (*uyvy_to_rgbx)(u8*, unsigned long, u8*, u16, u8);
  32. void (*scale_up)(u8*, u8*, u16, u16, u16, u16, u16);
  33. u8 busy; /* read-only flag: module is/is not in use */
  34. };
  35. extern int w9968cf_vppmod_register(struct w9968cf_vpp_t*);
  36. extern int w9968cf_vppmod_deregister(struct w9968cf_vpp_t*);
  37. #endif /* _W9968CF_VPP_H_ */