video1394.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  * video1394.h - driver for OHCI 1394 boards
  3.  * Copyright (C)1999,2000 Sebastien Rougeaux <sebastien.rougeaux@anu.edu.au>
  4.  *                        Peter Schlaile <udbz@rz.uni-karlsruhe.de>
  5.  *
  6.  * This program is free software; you can redistribute it and/or modify
  7.  * it under the terms of the GNU General Public License as published by
  8.  * the Free Software Foundation; either version 2 of the License, or
  9.  * (at your option) any later version.
  10.  *
  11.  * This program is distributed in the hope that it will be useful,
  12.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  * GNU General Public License for more details.
  15.  *
  16.  * You should have received a copy of the GNU General Public License
  17.  * along with this program; if not, write to the Free Software Foundation,
  18.  * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  19.  */
  20. #ifndef _VIDEO_1394_H
  21. #define _VIDEO_1394_H
  22. #define VIDEO1394_DRIVER_NAME "video1394"
  23. #define VIDEO1394_MAX_SIZE 0x4000000
  24. enum {
  25. VIDEO1394_BUFFER_FREE = 0,
  26. VIDEO1394_BUFFER_QUEUED,
  27. VIDEO1394_BUFFER_READY
  28. };
  29. enum {
  30. VIDEO1394_LISTEN_CHANNEL = 0,
  31. VIDEO1394_UNLISTEN_CHANNEL,
  32. VIDEO1394_LISTEN_QUEUE_BUFFER,
  33. VIDEO1394_LISTEN_WAIT_BUFFER,  // wait until buffer is ready
  34. VIDEO1394_TALK_CHANNEL,
  35. VIDEO1394_UNTALK_CHANNEL,
  36. VIDEO1394_TALK_QUEUE_BUFFER,
  37. VIDEO1394_TALK_WAIT_BUFFER,
  38. VIDEO1394_LISTEN_POLL_BUFFER   // return immediately with -EINTR if not ready
  39. };
  40. #define VIDEO1394_SYNC_FRAMES          0x00000001
  41. #define VIDEO1394_INCLUDE_ISO_HEADERS  0x00000002
  42. #define VIDEO1394_VARIABLE_PACKET_SIZE 0x00000004
  43. struct video1394_mmap {
  44. int channel; /* -1 to find an open channel in LISTEN/TALK */
  45. unsigned int sync_tag;
  46. unsigned int nb_buffers;
  47. unsigned int buf_size;
  48. unsigned int packet_size; /* For VARIABLE_PACKET_SIZE: 
  49.      Maximum packet size */
  50. unsigned int fps;
  51. unsigned int syt_offset;
  52. unsigned int flags;
  53. };
  54. /* For TALK_QUEUE_BUFFER with VIDEO1394_VARIABLE_PACKET_SIZE use */
  55. struct video1394_queue_variable {
  56. unsigned int channel;
  57. unsigned int buffer;
  58. unsigned int* packet_sizes; /* Buffer of size:  
  59.        buf_size / packet_size  */
  60. };
  61. struct video1394_wait {
  62. unsigned int channel;
  63. unsigned int buffer;
  64. struct timeval filltime; /* time of buffer full */
  65. };
  66. #endif