diff libmpdemux/stheader.h @ 2310:9e059416eea6

libdemuxer...
author arpi
date Sat, 20 Oct 2001 18:49:08 +0000
parents stheader.h@624df8ea0e0e
children 4f3e8c8ea32f
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libmpdemux/stheader.h	Sat Oct 20 18:49:08 2001 +0000
@@ -0,0 +1,94 @@
+// Stream headers:
+
+/*
+typedef struct {
+  int driver;
+    // codec descriptor from codec.conf
+} codecinfo_t;
+*/
+
+#ifdef HAVE_OGGVORBIS
+#include <math.h>
+#include <vorbis/codec.h>
+typedef struct {
+  ogg_sync_state   oy; /* sync and verify incoming physical bitstream */
+  ogg_stream_state os; /* take physical pages, weld into a logical
+			  stream of packets */
+  ogg_page         og; /* one Ogg bitstream page.  Vorbis packets are inside */
+  ogg_packet       op; /* one raw packet of data for decode */
+  
+  vorbis_info      vi; /* struct that stores all the static vorbis bitstream
+			  settings */
+  vorbis_comment   vc; /* struct that stores all the bitstream user comments */
+  vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */
+  vorbis_block     vb; /* local working space for packet->PCM decode */
+} ov_struct_t;
+#endif
+
+typedef struct {
+  demux_stream_t *ds;
+  unsigned int format;
+  struct codecs_st *codec;
+  int inited;
+  // output format:
+  float timer;		   // value of old a_frame
+  int samplerate;
+  int samplesize;
+  int channels;
+  int o_bps; // == samplerate*samplesize*channels   (uncompr. bytes/sec)
+  int i_bps; // == bitrate  (compressed bytes/sec)
+  // in buffers:
+  char* a_in_buffer;
+  int a_in_buffer_len;
+  int a_in_buffer_size;
+  // out buffers:
+  char* a_buffer;
+  int a_buffer_len;
+  int a_buffer_size;
+  int sample_format;
+  // win32 codec stuff:
+  AVIStreamHeader audio;
+  WAVEFORMATEX *wf;
+//  char wf_ext[64];     // in format
+  WAVEFORMATEX o_wf;   // out format
+  HACMSTREAM srcstream;  // handle
+  int audio_in_minsize;
+  int audio_out_minsize;
+  // other codecs:
+//  ac3_frame_t *ac3_frame;
+  void* ac3_frame;
+  int pcm_bswap;
+#ifdef HAVE_OGGVORBIS
+  ov_struct_t *ov; // should be assigned on init
+#endif
+} sh_audio_t;
+
+typedef struct {
+  demux_stream_t *ds;
+  unsigned int format;
+  struct codecs_st *codec;
+  int inited;
+  // output format:
+  float timer;		   // value of old v_frame
+  float fps;
+  float frametime;  // 1/fps
+  int i_bps; // == bitrate  (compressed bytes/sec)
+  int disp_w,disp_h;   // display size (filled by fileformat parser)
+//  int coded_w,coded_h; // coded size (filled by video codec)
+  float aspect;
+  unsigned int outfmtidx;
+//  unsigned int bitrate;
+  // buffers:
+  float num_frames;       // number of frames played
+  int num_frames_decoded;       // number of frames decoded
+  char *our_out_buffer;
+  // win32 codec stuff:
+  AVIStreamHeader video;
+  BITMAPINFOHEADER *bih;   // in format
+  BITMAPINFOHEADER o_bih; // out format
+  HIC hic;  // handle
+} sh_video_t;
+
+sh_audio_t* new_sh_audio(demuxer_t *demuxer,int id);
+sh_video_t* new_sh_video(demuxer_t *demuxer,int id);
+