summaryrefslogtreecommitdiffstats
path: root/libmpdemux/stheader.h
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-10-20 18:49:08 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-10-20 18:49:08 +0000
commit881e5d0783d66de0d3efe4b633aa413a277c5b18 (patch)
tree998f3cdd340f82a73f54b1cdc4e22c19dabff4ad /libmpdemux/stheader.h
parentdaab5f2480c62bbe684e09e0ae979958b447124b (diff)
downloadmpv-881e5d0783d66de0d3efe4b633aa413a277c5b18.tar.bz2
mpv-881e5d0783d66de0d3efe4b633aa413a277c5b18.tar.xz
libdemuxer...
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2311 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/stheader.h')
-rw-r--r--libmpdemux/stheader.h94
1 files changed, 94 insertions, 0 deletions
diff --git a/libmpdemux/stheader.h b/libmpdemux/stheader.h
new file mode 100644
index 0000000000..0e83c53d84
--- /dev/null
+++ b/libmpdemux/stheader.h
@@ -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);
+