Mercurial > mplayer.hg
annotate libmpdemux/stheader.h @ 27319:09cf111f68b8
Revert to previous dependency checking behavior.
Take included header files into account when generating dependency files.
This has problems when header files are removed or renamed, but does not
silently miscompile files.
author | diego |
---|---|
date | Sat, 26 Jul 2008 18:36:48 +0000 |
parents | 65ad20416dd7 |
children | e7c989f7a7c9 |
rev | line source |
---|---|
26029 | 1 #ifndef MPLAYER_STHEADER_H |
2 #define MPLAYER_STHEADER_H | |
4933 | 3 |
26143
268ecf0e1ba4
Add missing header #includes to fix 'make checkheaders'.
diego
parents:
26082
diff
changeset
|
4 #include "demuxer.h" |
12341
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
8965
diff
changeset
|
5 #include "aviheader.h" |
0db4a3a5b01d
removed loader/ dependancy, imported some files from g2, also used patches from Dominik Mierzejewski
alex
parents:
8965
diff
changeset
|
6 #include "ms_hdr.h" |
7471 | 7 |
8 // Stream headers: | |
4196 | 9 |
291 | 10 typedef struct { |
19540 | 11 int aid; |
291 | 12 demux_stream_t *ds; |
7467 | 13 struct codecs_st *codec; |
303 | 14 unsigned int format; |
25962 | 15 int initialized; |
17643 | 16 float stream_delay; // number of seconds stream should be delayed (according to dwStart or similar) |
291 | 17 // output format: |
7467 | 18 int sample_format; |
291 | 19 int samplerate; |
20 int samplesize; | |
21 int channels; | |
746 | 22 int o_bps; // == samplerate*samplesize*channels (uncompr. bytes/sec) |
23 int i_bps; // == bitrate (compressed bytes/sec) | |
296 | 24 // in buffers: |
7604
32efb806436e
aufio filter layer (libaf) integration to libmpcodecs, mplayer and mencoder
arpi
parents:
7471
diff
changeset
|
25 int audio_in_minsize; // max. compressed packet size (== min. in buffer size) |
291 | 26 char* a_in_buffer; |
27 int a_in_buffer_len; | |
28 int a_in_buffer_size; | |
7604
32efb806436e
aufio filter layer (libaf) integration to libmpcodecs, mplayer and mencoder
arpi
parents:
7471
diff
changeset
|
29 // decoder buffers: |
32efb806436e
aufio filter layer (libaf) integration to libmpcodecs, mplayer and mencoder
arpi
parents:
7471
diff
changeset
|
30 int audio_out_minsize; // max. uncompressed packet size (==min. out buffsize) |
296 | 31 char* a_buffer; |
32 int a_buffer_len; | |
33 int a_buffer_size; | |
7604
32efb806436e
aufio filter layer (libaf) integration to libmpcodecs, mplayer and mencoder
arpi
parents:
7471
diff
changeset
|
34 // output buffers: |
32efb806436e
aufio filter layer (libaf) integration to libmpcodecs, mplayer and mencoder
arpi
parents:
7471
diff
changeset
|
35 char* a_out_buffer; |
32efb806436e
aufio filter layer (libaf) integration to libmpcodecs, mplayer and mencoder
arpi
parents:
7471
diff
changeset
|
36 int a_out_buffer_len; |
32efb806436e
aufio filter layer (libaf) integration to libmpcodecs, mplayer and mencoder
arpi
parents:
7471
diff
changeset
|
37 int a_out_buffer_size; |
32efb806436e
aufio filter layer (libaf) integration to libmpcodecs, mplayer and mencoder
arpi
parents:
7471
diff
changeset
|
38 // void* audio_out; // the audio_out handle, used for this audio stream |
24891 | 39 struct af_stream_s *afilter; // the audio filter stream |
14819
601e2c8a2922
Remove file-global mpadec, add ad_driver member to sh_audio_t instead.
hzoli
parents:
12341
diff
changeset
|
40 struct ad_functions_s* ad_driver; |
8152 | 41 #ifdef DYNAMIC_PLUGINS |
42 void *dec_handle; | |
43 #endif | |
7467 | 44 // win32-compatible codec parameters: |
291 | 45 AVIStreamHeader audio; |
7467 | 46 WAVEFORMATEX* wf; |
47 // codec-specific: | |
3642
2cef9d562af0
void* context added - it should keep the codec-specific stuff (struct ptr or HANDLE)
arpi
parents:
2567
diff
changeset
|
48 void* context; // codec-specific stuff (usually HANDLE or struct pointer) |
7467 | 49 unsigned char* codecdata; // extra header data passed from demuxer to codec |
5301 | 50 int codecdata_len; |
18242
caac2ca98168
4 - Implement a better way to calculate current audio pts and use it for
rtognimp
parents:
17643
diff
changeset
|
51 double pts; // last known pts value in output from decoder |
caac2ca98168
4 - Implement a better way to calculate current audio pts and use it for
rtognimp
parents:
17643
diff
changeset
|
52 int pts_bytes; // bytes output by decoder after last known pts |
26082 | 53 char* lang; // track language |
26269
65ad20416dd7
Support 'default' attribute for audio and subtitle tracks.
eugeni
parents:
26143
diff
changeset
|
54 int default_track; |
291 | 55 } sh_audio_t; |
56 | |
57 typedef struct { | |
19540 | 58 int vid; |
291 | 59 demux_stream_t *ds; |
7467 | 60 struct codecs_st *codec; |
303 | 61 unsigned int format; |
25962 | 62 int initialized; |
8057 | 63 float timer; // absolute time in video stream, since last start/seek |
17643 | 64 float stream_delay; // number of seconds stream should be delayed (according to dwStart or similar) |
7467 | 65 // frame counters: |
66 float num_frames; // number of frames played | |
67 int num_frames_decoded; // number of frames decoded | |
8965 | 68 // timing (mostly for mpeg): |
18309
87161f96fa66
Change common pts variables from floats to doubles. Individual demuxers
uau
parents:
18242
diff
changeset
|
69 double pts; // predicted/interpolated PTS of the current frame |
87161f96fa66
Change common pts variables from floats to doubles. Individual demuxers
uau
parents:
18242
diff
changeset
|
70 double i_pts; // PTS for the _next_ I/P frame |
21077 | 71 float next_frame_time; |
72 double last_pts; | |
18917
d9a75b26da6c
Add a new video pts tracking mode, enabled by option -correct-pts.
uau
parents:
18708
diff
changeset
|
73 double buffered_pts[20]; |
d9a75b26da6c
Add a new video pts tracking mode, enabled by option -correct-pts.
uau
parents:
18708
diff
changeset
|
74 int num_buffered_pts; |
7467 | 75 // output format: (set by demuxer) |
76 float fps; // frames per second (set only if constant fps) | |
77 float frametime; // 1/fps | |
78 float aspect; // aspect ratio stored in the file (for prescaling) | |
24299
725638f690bb
added .stream_aspect to st_video_t: if non-zero and if not specified otherwise
nicodvb
parents:
23689
diff
changeset
|
79 float stream_aspect; // aspect ratio stored in the media headers (e.g. in DVD IFO files) |
7467 | 80 int i_bps; // == bitrate (compressed bytes/sec) |
81 int disp_w,disp_h; // display size (filled by fileformat parser) | |
82 // output driver/filters: (set by libmpcodecs core) | |
303 | 83 unsigned int outfmtidx; |
24891 | 84 struct vf_instance_s *vfilter; // the video filter chain, used for this video stream |
25962 | 85 int vf_initialized; |
8152 | 86 #ifdef DYNAMIC_PLUGINS |
87 void *dec_handle; | |
88 #endif | |
7467 | 89 // win32-compatible codec parameters: |
291 | 90 AVIStreamHeader video; |
7467 | 91 BITMAPINFOHEADER* bih; |
8158 | 92 void* ImageDesc; // for quicktime codecs |
7467 | 93 // codec-specific: |
94 void* context; // codec-specific stuff (usually HANDLE or struct pointer) | |
291 | 95 } sh_video_t; |
96 | |
20876
0587328d9392
Move sh_sub_t to stheader.h, where all the other sh structs are defined
reimar
parents:
20873
diff
changeset
|
97 typedef struct { |
0587328d9392
Move sh_sub_t to stheader.h, where all the other sh structs are defined
reimar
parents:
20873
diff
changeset
|
98 int sid; |
0587328d9392
Move sh_sub_t to stheader.h, where all the other sh structs are defined
reimar
parents:
20873
diff
changeset
|
99 char type; // t = text, v = VobSub, a = SSA/ASS |
0587328d9392
Move sh_sub_t to stheader.h, where all the other sh structs are defined
reimar
parents:
20873
diff
changeset
|
100 int has_palette; // If we have a valid palette |
0587328d9392
Move sh_sub_t to stheader.h, where all the other sh structs are defined
reimar
parents:
20873
diff
changeset
|
101 unsigned int palette[16]; // for VobSubs |
0587328d9392
Move sh_sub_t to stheader.h, where all the other sh structs are defined
reimar
parents:
20873
diff
changeset
|
102 int width, height; // for VobSubs |
0587328d9392
Move sh_sub_t to stheader.h, where all the other sh structs are defined
reimar
parents:
20873
diff
changeset
|
103 int custom_colors; |
0587328d9392
Move sh_sub_t to stheader.h, where all the other sh structs are defined
reimar
parents:
20873
diff
changeset
|
104 unsigned int colors[4]; |
0587328d9392
Move sh_sub_t to stheader.h, where all the other sh structs are defined
reimar
parents:
20873
diff
changeset
|
105 int forced_subs_only; |
25652 | 106 unsigned char* extradata; // extra header data passed from demuxer |
107 int extradata_len; | |
20876
0587328d9392
Move sh_sub_t to stheader.h, where all the other sh structs are defined
reimar
parents:
20873
diff
changeset
|
108 #ifdef USE_ASS |
0587328d9392
Move sh_sub_t to stheader.h, where all the other sh structs are defined
reimar
parents:
20873
diff
changeset
|
109 ass_track_t* ass_track; // for SSA/ASS streams (type == 'a') |
0587328d9392
Move sh_sub_t to stheader.h, where all the other sh structs are defined
reimar
parents:
20873
diff
changeset
|
110 #endif |
26082 | 111 char* lang; // track language |
26269
65ad20416dd7
Support 'default' attribute for audio and subtitle tracks.
eugeni
parents:
26143
diff
changeset
|
112 int default_track; |
20876
0587328d9392
Move sh_sub_t to stheader.h, where all the other sh structs are defined
reimar
parents:
20873
diff
changeset
|
113 } sh_sub_t; |
0587328d9392
Move sh_sub_t to stheader.h, where all the other sh structs are defined
reimar
parents:
20873
diff
changeset
|
114 |
7467 | 115 // demuxer.c: |
19540 | 116 #define new_sh_audio(d, i) new_sh_audio_aid(d, i, i) |
117 sh_audio_t* new_sh_audio_aid(demuxer_t *demuxer,int id,int aid); | |
118 #define new_sh_video(d, i) new_sh_video_vid(d, i, i) | |
119 sh_video_t* new_sh_video_vid(demuxer_t *demuxer,int id,int vid); | |
20873 | 120 #define new_sh_sub(d, i) new_sh_sub_sid(d, i, i) |
121 sh_sub_t *new_sh_sub_sid(demuxer_t *demuxer, int id, int sid); | |
18708
9e2b300db17b
Change free_sh_audio() to take demuxer and stream id as parameters
uau
parents:
18309
diff
changeset
|
122 void free_sh_audio(demuxer_t *demuxer, int id); |
5084 | 123 void free_sh_video(sh_video_t *sh); |
426 | 124 |
7467 | 125 // video.c: |
2567 | 126 int video_read_properties(sh_video_t *sh_video); |
127 int video_read_frame(sh_video_t* sh_video,float* frame_time_ptr,unsigned char** start,int force_fps); | |
4933 | 128 |
26029 | 129 #endif /* MPLAYER_STHEADER_H */ |