mpegenc.h
上传用户:jxp0626
上传日期:2007-01-08
资源大小:102k
文件大小:4k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Unix_Linux

  1. #include "avcodec.h"
  2. #define FFMPEG_VERSION "0.3.4"
  3. /* byte stream handling */
  4. typedef struct {
  5.     unsigned char *buffer;
  6.     unsigned char *buf_ptr, *buf_end;
  7.     void *opaque;
  8.     void (*write_packet)(void *opaque, UINT8 *buf, int buf_size);
  9.     int (*write_seek)(void *opaque, long long offset, int whence);
  10.     long long pos; /* position in the file of the current buffer */
  11.     int must_flush; /* true if the next seek should flush */
  12. } PutByteContext;
  13. int init_put_byte(PutByteContext *s,
  14.                   unsigned char *buffer,
  15.                   int buffer_size,
  16.                   void *opaque,
  17.                   void (*write_packet)(void *opaque, UINT8 *buf, int buf_size),
  18.                   int (*write_seek)(void *opaque, long long offset, int whence));
  19. void put_byte(PutByteContext *s, int b);
  20. void put_buffer(PutByteContext *s, unsigned char *buf, int size);
  21. void put_le32(PutByteContext *s, unsigned int val);
  22. void put_le64(PutByteContext *s, unsigned long long val);
  23. void put_le16(PutByteContext *s, unsigned int val);
  24. void put_tag(PutByteContext *s, char *tag);
  25. long long put_seek(PutByteContext *s, long long offset, int whence);
  26. long long put_pos(PutByteContext *s);
  27. void put_flush_packet(PutByteContext *s);
  28. /* utilities */
  29. void put_bmp_header(PutByteContext *pb, AVEncodeContext *enc);
  30. void put_wav_header(PutByteContext *pb, AVEncodeContext *enc);
  31. /* udp.c */
  32. typedef struct {
  33.     int udp_socket;
  34.     int max_payload_size; /* in bytes */
  35. } UDPContext;
  36. int udp_tx_open(UDPContext *s,
  37.                 const char *uri,
  38.                 int local_port);
  39. void udp_tx_close(UDPContext *s);
  40. void udp_write_data(void *opaque, UINT8 *buf, int size);
  41. /* generic functions */
  42. struct AVFormatContext;
  43. typedef struct AVFormat {
  44.     char *name;
  45.     char *long_name;
  46.     char *mime_type;
  47.     char *extensions; /* comma separated extensions */
  48.     enum CodecID audio_codec;
  49.     enum CodecID video_codec;
  50.     int (*write_header)(struct AVFormatContext *);
  51.     int (*write_audio_frame)(struct AVFormatContext *, 
  52.                              unsigned char *buf, int size);
  53.     int (*write_video_picture)(struct AVFormatContext *, 
  54.                                unsigned char *buf, int size);
  55.     int (*write_trailer)(struct AVFormatContext *);
  56.     struct AVFormat *next;
  57. } AVFormat;
  58. typedef struct AVFormatContext {
  59.     struct AVFormat *format;
  60.     void *priv_data;
  61.     PutByteContext pb;
  62.     AVEncodeContext *video_enc;
  63.     AVEncodeContext *audio_enc;
  64.     int is_streamed; /* true if the stream is generated as being streamed */
  65. } AVFormatContext;
  66. extern AVFormat *first_format;
  67. extern int data_out_size;
  68. extern const char *comment_string;
  69. /* rv10enc.c */
  70. extern AVFormat rm_format;
  71. extern AVFormat ra_format;
  72. /* mpegmux.c */
  73. extern AVFormat mpeg_mux_format;
  74. /* asfenc.c */
  75. extern AVFormat asf_format;
  76. /* avienc.c */
  77. extern AVFormat avi_format;
  78. /* jpegenc.c */
  79. extern AVFormat mpjpeg_format;
  80. extern AVFormat jpeg_format;
  81. /* swfenc.c */
  82. extern AVFormat swf_format;
  83. /* formats.c */
  84. void register_avformat(AVFormat *format);
  85. AVFormat *guess_format(const char *short_name, const char *filename, const char *mime_type);
  86. void register_avencoder(AVEncoder *format);
  87. AVEncoder *avencoder_find(enum CodecID id);
  88. void avencoder_string(char *buf, int buf_size, AVEncodeContext *enc);
  89. int avencoder_open(AVEncodeContext *avctx, AVEncoder *codec);
  90. int avencoder_encode(AVEncodeContext *avctx, UINT8 *buf, int buf_size, void *data);
  91. int avencoder_close(AVEncodeContext *avctx);
  92. extern AVFormat mp2_format;
  93. extern AVFormat ac3_format;
  94. extern AVFormat h263_format;
  95. extern AVFormat mpeg1video_format;
  96. int strstart(const char *str, const char *val, const char **ptr);
  97. /* grab.c */
  98. extern const char *v4l_device;
  99. extern const char *audio_device;
  100. long long gettime(void);
  101. int v4l_init(int rate, int width, int height);
  102. int v4l_read_picture(UINT8 *picture[3],
  103.                      int width, int height,
  104.                      int picture_number);
  105. int audio_open(int freq, int channels);