summaryrefslogtreecommitdiffstats
path: root/libmpdemux/stheader.h
diff options
context:
space:
mode:
Diffstat (limited to 'libmpdemux/stheader.h')
-rw-r--r--libmpdemux/stheader.h43
1 files changed, 26 insertions, 17 deletions
diff --git a/libmpdemux/stheader.h b/libmpdemux/stheader.h
index 99ae63ad0d..b11b886ce1 100644
--- a/libmpdemux/stheader.h
+++ b/libmpdemux/stheader.h
@@ -19,15 +19,17 @@
#ifndef MPLAYER_STHEADER_H
#define MPLAYER_STHEADER_H
-#include "demuxer.h"
#include "aviheader.h"
#include "ms_hdr.h"
+struct MPOpts;
+struct demuxer;
// Stream headers:
#define SH_COMMON \
- demux_stream_t *ds; \
- struct codecs_st *codec; \
+ struct MPOpts *opts; \
+ struct demux_stream *ds; \
+ struct codecs *codec; \
unsigned int format; \
int initialized; \
float stream_delay; /* number of seconds stream should be delayed (according to dwStart or similar) */ \
@@ -43,11 +45,11 @@
char* lang; /* track language */ \
int default_track; \
-typedef struct {
+typedef struct sh_common {
SH_COMMON
} sh_common_t;
-typedef struct {
+typedef struct sh_audio {
SH_COMMON
int aid;
// output format:
@@ -72,8 +74,8 @@ typedef struct {
int a_out_buffer_len;
int a_out_buffer_size;
// void* audio_out; // the audio_out handle, used for this audio stream
- struct af_stream_s *afilter; // the audio filter stream
- struct ad_functions_s* ad_driver;
+ struct af_stream *afilter; // the audio filter stream
+ struct ad_functions *ad_driver;
#ifdef CONFIG_DYNAMIC_PLUGINS
void *dec_handle;
#endif
@@ -86,7 +88,7 @@ typedef struct {
int pts_bytes; // bytes output by decoder after last known pts
} sh_audio_t;
-typedef struct {
+typedef struct sh_video {
SH_COMMON
int vid;
float timer; // absolute time in video stream, since last start/seek
@@ -99,6 +101,13 @@ typedef struct {
double last_pts;
double buffered_pts[20];
int num_buffered_pts;
+ double codec_reordered_pts;
+ double prev_codec_reordered_pts;
+ int num_reordered_pts_problems;
+ double sorted_pts;
+ double prev_sorted_pts;
+ int num_sorted_pts_problems;
+ int pts_assoc_mode;
// output format: (set by demuxer)
float fps; // frames per second (set only if constant fps)
float frametime; // 1/fps
@@ -108,7 +117,9 @@ typedef struct {
int disp_w,disp_h; // display size (filled by fileformat parser)
// output driver/filters: (set by libmpcodecs core)
unsigned int outfmtidx;
- struct vf_instance_s *vfilter; // the video filter chain, used for this video stream
+ struct vf_instance *vfilter; // the video filter chain, used for this video stream
+ int output_flags; // query_format() results for output filters+vo
+ const struct vd_functions *vd_driver;
int vf_initialized;
#ifdef CONFIG_DYNAMIC_PLUGINS
void *dec_handle;
@@ -119,25 +130,23 @@ typedef struct {
void* ImageDesc; // for quicktime codecs
} sh_video_t;
-typedef struct {
+typedef struct sh_sub {
SH_COMMON
int sid;
char type; // t = text, v = VobSub, a = SSA/ASS
unsigned char* extradata; // extra header data passed from demuxer
int extradata_len;
-#ifdef CONFIG_ASS
- ass_track_t* ass_track; // for SSA/ASS streams (type == 'a')
-#endif
+ struct ass_track *ass_track; // for SSA/ASS streams (type == 'a')
} sh_sub_t;
// demuxer.c:
#define new_sh_audio(d, i) new_sh_audio_aid(d, i, i)
-sh_audio_t* new_sh_audio_aid(demuxer_t *demuxer,int id,int aid);
+sh_audio_t* new_sh_audio_aid(struct demuxer *demuxer,int id,int aid);
#define new_sh_video(d, i) new_sh_video_vid(d, i, i)
-sh_video_t* new_sh_video_vid(demuxer_t *demuxer,int id,int vid);
+sh_video_t* new_sh_video_vid(struct demuxer *demuxer,int id,int vid);
#define new_sh_sub(d, i) new_sh_sub_sid(d, i, i)
-sh_sub_t *new_sh_sub_sid(demuxer_t *demuxer, int id, int sid);
-void free_sh_audio(demuxer_t *demuxer, int id);
+sh_sub_t *new_sh_sub_sid(struct demuxer *demuxer, int id, int sid);
+void free_sh_audio(struct demuxer *demuxer, int id);
void free_sh_video(sh_video_t *sh);
// video.c: