summaryrefslogtreecommitdiff
path: root/libavformat/mpegts.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2007-06-02 20:57:31 +0000
committerMichael Niedermayer <michaelni@gmx.at>2007-06-02 20:57:31 +0000
commit38c48be213b86baa04e64762622afefbba1afa70 (patch)
treed656bf422454758e696f430844726060b3f6850b /libavformat/mpegts.c
parent69ddbd1dada13612582aac97ffe2a3222952d011 (diff)
split mpeg2ts_raw mode into its own demuxer using such a flag is an incredibly dirty hack
Originally committed as revision 9173 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/mpegts.c')
-rw-r--r--libavformat/mpegts.c31
1 files changed, 21 insertions, 10 deletions
diff --git a/libavformat/mpegts.c b/libavformat/mpegts.c
index df75189679..7e09021cc9 100644
--- a/libavformat/mpegts.c
+++ b/libavformat/mpegts.c
@@ -21,6 +21,7 @@
#include "avformat.h"
#include "crc.h"
#include "mpegts.h"
+#include "allformats.h"
//#define DEBUG_SI
//#define DEBUG_SEEK
@@ -89,8 +90,6 @@ struct MpegTSContext {
int auto_guess;
int set_service_ret;
- /** force raw MPEG2 transport stream output, if possible */
- int mpeg2ts_raw;
/** compute exact PCR for each transport stream packet */
int mpeg2ts_compute_pcr;
@@ -1204,8 +1203,11 @@ static int mpegts_read_header(AVFormatContext *s,
MpegTSService *service;
if (ap) {
- ts->mpeg2ts_raw = ap->mpeg2ts_raw;
ts->mpeg2ts_compute_pcr = ap->mpeg2ts_compute_pcr;
+ if(ap->mpeg2ts_raw){
+ av_log(s, AV_LOG_ERROR, "use mpegtsraw_demuxer!\n");
+ return -1;
+ }
}
/* read the first 1024 bytes to get packet size */
@@ -1220,7 +1222,7 @@ static int mpegts_read_header(AVFormatContext *s,
ts->auto_guess = 0;
goto_auto_guess:
- if (!ts->mpeg2ts_raw) {
+ if (s->iformat == &mpegts_demuxer) {
/* normal demux */
if (!ts->auto_guess) {
@@ -1396,12 +1398,8 @@ static int mpegts_read_packet(AVFormatContext *s,
{
MpegTSContext *ts = s->priv_data;
- if (!ts->mpeg2ts_raw) {
- ts->pkt = pkt;
- return handle_packets(ts, 0);
- } else {
- return mpegts_raw_read_packet(s, pkt);
- }
+ ts->pkt = pkt;
+ return handle_packets(ts, 0);
}
static int mpegts_read_close(AVFormatContext *s)
@@ -1550,3 +1548,16 @@ AVInputFormat mpegts_demuxer = {
mpegts_get_pcr,
.flags = AVFMT_SHOW_IDS,
};
+
+AVInputFormat mpegtsraw_demuxer = {
+ "mpegtsraw",
+ "MPEG2 raw transport stream format",
+ sizeof(MpegTSContext),
+ mpegts_probe,
+ mpegts_read_header,
+ mpegts_raw_read_packet,
+ mpegts_read_close,
+ read_seek,
+ mpegts_get_pcr,
+ .flags = AVFMT_SHOW_IDS,
+};