summaryrefslogtreecommitdiffstats
path: root/libmpdemux/stheader.h
diff options
context:
space:
mode:
Diffstat (limited to 'libmpdemux/stheader.h')
-rw-r--r--libmpdemux/stheader.h195
1 files changed, 0 insertions, 195 deletions
diff --git a/libmpdemux/stheader.h b/libmpdemux/stheader.h
deleted file mode 100644
index b5f11c0ecc..0000000000
--- a/libmpdemux/stheader.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * This file is part of MPlayer.
- *
- * MPlayer is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * MPlayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with MPlayer; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- */
-
-#ifndef MPLAYER_STHEADER_H
-#define MPLAYER_STHEADER_H
-
-#include <stdbool.h>
-
-#include "aviheader.h"
-#include "ms_hdr.h"
-struct MPOpts;
-struct demuxer;
-
-enum stream_type {
- STREAM_VIDEO,
- STREAM_AUDIO,
- STREAM_SUB,
- STREAM_TYPE_COUNT,
-};
-
-// Stream headers:
-
-struct sh_stream {
- enum stream_type type;
- struct demuxer *demuxer;
- // Index into demuxer->streams.
- int index;
- // The (possibly) type specific id, e.g. aid or sid.
- int tid;
- // Index into stream array (currently one array per type, e.g. a_streams).
- int stream_index;
- // Demuxer specific ID (always set, defaults to tid).
- int demuxer_id;
- // Abomination.
- struct sh_common *common_header;
- // One of these is non-NULL, the others are NULL, depending on the stream
- // type.
- struct sh_audio *audio;
- struct sh_video *video;
- struct sh_sub *sub;
-
- // Work around other hacks.
- int lavf_codec_tag;
-
- char *title;
- bool default_track;
-
- // shouldn't exist type of stuff
- struct MPOpts *opts;
-};
-
-
-#define SH_COMMON \
- struct sh_stream *gsh; \
- const char *demuxer_codecname; \
- struct MPOpts *opts; \
- struct demux_stream *ds; \
- struct codecs *codec; \
- unsigned int format; \
- int libav_codec_id; \
- int initialized; \
- /* number of seconds stream should be delayed \
- * (according to dwStart or similar) */ \
- float stream_delay; \
- /* things needed for parsing */ \
- bool needs_parsing; \
- struct AVCodecContext *avctx; \
- struct AVCodecParserContext *parser; \
- /* audio: last known pts value in output from decoder \
- * video: predicted/interpolated PTS of the current frame */ \
- double pts; \
- /* decoder context */ \
- void *context; \
- const char *codecname; \
- char *lang; /* track language */ \
-
-typedef struct sh_common {
- SH_COMMON
-} sh_common_t;
-
-typedef struct sh_audio {
- SH_COMMON
- int aid;
- // output format:
- int sample_format;
- int samplerate;
- int container_out_samplerate;
- int samplesize;
- int channels;
- int o_bps; // == samplerate*samplesize*channels (uncompr. bytes/sec)
- int i_bps; // == bitrate (compressed bytes/sec)
- // in buffers:
- int audio_in_minsize; // initial size to allocate for a_in_buffer if any
- char *a_in_buffer; // input buffer used by some decoders
- int a_in_buffer_len;
- int a_in_buffer_size;
- // decoder buffers:
- int audio_out_minsize; // minimal output from decoder may be this much
- char *a_buffer; // buffer for decoder output
- int a_buffer_len;
- int a_buffer_size;
- struct af_stream *afilter; // the audio filter stream
- const struct ad_functions *ad_driver;
- // win32-compatible codec parameters:
- AVIStreamHeader audio;
- WAVEFORMATEX *wf;
- // note codec extradata may be either under "wf" or "codecdata"
- unsigned char *codecdata;
- int codecdata_len;
- int pts_bytes; // bytes output by decoder after last known pts
-} sh_audio_t;
-
-typedef struct sh_video {
- SH_COMMON
- int vid;
- float timer; // absolute time in video stream, since last start/seek
- // frame counters:
- float num_frames; // number of frames played
- int num_frames_decoded; // number of frames decoded
- double i_pts; // PTS for the _next_ I/P frame (internal mpeg demuxing)
- float next_frame_time;
- double last_pts;
- double buffered_pts[32];
- 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
- float aspect; // aspect ratio stored in the file (for prescaling)
- float stream_aspect; // aspect ratio in media headers (DVD IFO files)
- int i_bps; // == bitrate (compressed bytes/sec)
- int disp_w, disp_h; // display size (filled by demuxer)
- int colorspace; // mp_csp
- int color_range; // mp_csp_levels
- // output driver/filters: (set by libmpcodecs core)
- unsigned int outfmt;
- unsigned int outfmtidx;
- struct vf_instance *vfilter; // video filter chain
- int output_flags; // query_format() results for output filters+vo
- const struct vd_functions *vd_driver;
- int vf_initialized; // -1 failed, 0 not done, 1 done
- // win32-compatible codec parameters:
- AVIStreamHeader video;
- BITMAPINFOHEADER *bih;
-} sh_video_t;
-
-typedef struct sh_sub {
- SH_COMMON
- int sid;
- char type; // t = text, v = VobSub, a = SSA/ASS, m, x, b, d, p
- bool active; // after track switch decoder may stay initialized, not active
- unsigned char *extradata; // extra header data passed from demuxer
- int extradata_len;
- const struct sd_functions *sd_driver;
-} sh_sub_t;
-
-// demuxer.c:
-#define new_sh_audio(d, i) new_sh_audio_aid(d, i, i)
-struct sh_audio *new_sh_audio_aid(struct demuxer *demuxer, int id, int aid);
-#define new_sh_video(d, i) new_sh_video_vid(d, i, i)
-struct sh_video *new_sh_video_vid(struct demuxer *demuxer, int id, int vid);
-#define new_sh_sub(d, i) new_sh_sub_sid(d, i, i)
-struct sh_sub *new_sh_sub_sid(struct demuxer *demuxer, int id, int sid);
-struct sh_sub *new_sh_sub_sid_lang(struct demuxer *demuxer, int id, int sid,
- const char *lang);
-
-const char *sh_sub_type2str(int type);
-
-// video.c:
-int video_read_properties(struct sh_video *sh_video);
-int video_read_frame(struct sh_video *sh_video, float *frame_time_ptr,
- unsigned char **start, int force_fps);
-
-#endif /* MPLAYER_STHEADER_H */