summaryrefslogtreecommitdiff
path: root/libavformat/mpeg.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat/mpeg.c')
-rw-r--r--libavformat/mpeg.c38
1 files changed, 18 insertions, 20 deletions
diff --git a/libavformat/mpeg.c b/libavformat/mpeg.c
index 46c59163fd..80983f8a81 100644
--- a/libavformat/mpeg.c
+++ b/libavformat/mpeg.c
@@ -24,14 +24,6 @@
#include "internal.h"
#include "mpeg.h"
-#if CONFIG_VOBSUB_DEMUXER
-# include "subtitles.h"
-# include "libavutil/bprint.h"
-# include "libavutil/opt.h"
-#endif
-
-#include "libavutil/avassert.h"
-
/*********************************************/
/* demux code */
@@ -123,18 +115,12 @@ static int mpegps_probe(const AVProbeData *p)
}
typedef struct MpegDemuxContext {
- AVClass *class;
int32_t header_state;
unsigned char psm_es_type[256];
int sofdec;
int dvd;
int imkh_cctv;
int raw_ac3;
-#if CONFIG_VOBSUB_DEMUXER
- AVFormatContext *sub_ctx;
- FFDemuxSubtitlesQueue q[32];
- char *sub_name;
-#endif
} MpegDemuxContext;
static int mpegps_read_header(AVFormatContext *s)
@@ -705,9 +691,21 @@ AVInputFormat ff_mpegps_demuxer = {
#if CONFIG_VOBSUB_DEMUXER
+#include "subtitles.h"
+#include "libavutil/avassert.h"
+#include "libavutil/bprint.h"
+#include "libavutil/opt.h"
+
#define REF_STRING "# VobSub index file,"
#define MAX_LINE_SIZE 2048
+typedef struct VobSubDemuxContext {
+ const AVClass *class;
+ AVFormatContext *sub_ctx;
+ FFDemuxSubtitlesQueue q[32];
+ char *sub_name;
+} VobSubDemuxContext;
+
static int vobsub_probe(const AVProbeData *p)
{
if (!strncmp(p->buf, REF_STRING, sizeof(REF_STRING) - 1))
@@ -718,7 +716,7 @@ static int vobsub_probe(const AVProbeData *p)
static int vobsub_read_header(AVFormatContext *s)
{
int i, ret = 0, header_parsed = 0, langidx = 0;
- MpegDemuxContext *vobsub = s->priv_data;
+ VobSubDemuxContext *vobsub = s->priv_data;
size_t fname_len;
char *header_str = NULL;
AVBPrint header;
@@ -911,7 +909,7 @@ end:
static int vobsub_read_packet(AVFormatContext *s, AVPacket *pkt)
{
- MpegDemuxContext *vobsub = s->priv_data;
+ VobSubDemuxContext *vobsub = s->priv_data;
FFDemuxSubtitlesQueue *q;
AVIOContext *pb = vobsub->sub_ctx->pb;
int ret, psize, total_read = 0, i;
@@ -999,7 +997,7 @@ fail:
static int vobsub_read_seek(AVFormatContext *s, int stream_index,
int64_t min_ts, int64_t ts, int64_t max_ts, int flags)
{
- MpegDemuxContext *vobsub = s->priv_data;
+ VobSubDemuxContext *vobsub = s->priv_data;
/* Rescale requested timestamps based on the first stream (timebase is the
* same for all subtitles stream within a .idx/.sub). Rescaling is done just
@@ -1031,8 +1029,8 @@ static int vobsub_read_seek(AVFormatContext *s, int stream_index,
static int vobsub_read_close(AVFormatContext *s)
{
+ VobSubDemuxContext *vobsub = s->priv_data;
int i;
- MpegDemuxContext *vobsub = s->priv_data;
for (i = 0; i < s->nb_streams; i++)
ff_subtitles_queue_clean(&vobsub->q[i]);
@@ -1042,7 +1040,7 @@ static int vobsub_read_close(AVFormatContext *s)
}
static const AVOption options[] = {
- { "sub_name", "URI for .sub file", offsetof(MpegDemuxContext, sub_name), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, AV_OPT_FLAG_DECODING_PARAM },
+ { "sub_name", "URI for .sub file", offsetof(VobSubDemuxContext, sub_name), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, AV_OPT_FLAG_DECODING_PARAM },
{ NULL }
};
@@ -1056,7 +1054,7 @@ static const AVClass vobsub_demuxer_class = {
AVInputFormat ff_vobsub_demuxer = {
.name = "vobsub",
.long_name = NULL_IF_CONFIG_SMALL("VobSub subtitle format"),
- .priv_data_size = sizeof(MpegDemuxContext),
+ .priv_data_size = sizeof(VobSubDemuxContext),
.read_probe = vobsub_probe,
.read_header = vobsub_read_header,
.read_packet = vobsub_read_packet,