Commit 6fb316d5 authored by Wolfram Gloger's avatar Wolfram Gloger Committed by Michael Niedermayer

Support raw mpegts streams from dvr patch by (wmglo at dent dot med dot uni-muenchen dot de)

Originally committed as revision 2931 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent d7646d7d
......@@ -2344,6 +2344,8 @@ static void check_audio_video_inputs(int *has_video_ptr, int *has_audio_ptr)
case CODEC_TYPE_VIDEO:
has_video = 1;
break;
case CODEC_TYPE_DATA:
break;
default:
av_abort();
}
......
......@@ -378,7 +378,7 @@ static void pmt_cb(void *opaque, const uint8_t *section, int section_len)
#ifdef DEBUG_SI
printf("PMT:\n");
av_hex_dump((uint8_t *)section, section_len);
av_hex_dump(stdout, (uint8_t *)section, section_len);
#endif
p_end = section + section_len - 4;
p = section;
......@@ -453,7 +453,7 @@ static void pat_cb(void *opaque, const uint8_t *section, int section_len)
#ifdef DEBUG_SI
printf("PAT:\n");
av_hex_dump((uint8_t *)section, section_len);
av_hex_dump(stdout, (uint8_t *)section, section_len);
#endif
p_end = section + section_len - 4;
p = section;
......@@ -502,7 +502,7 @@ static void pat_scan_cb(void *opaque, const uint8_t *section, int section_len)
#ifdef DEBUG_SI
printf("PAT:\n");
av_hex_dump((uint8_t *)section, section_len);
av_hex_dump(stdout, (uint8_t *)section, section_len);
#endif
p_end = section + section_len - 4;
p = section;
......@@ -563,7 +563,7 @@ static void sdt_cb(void *opaque, const uint8_t *section, int section_len)
#ifdef DEBUG_SI
printf("SDT:\n");
av_hex_dump((uint8_t *)section, section_len);
av_hex_dump(stdout, (uint8_t *)section, section_len);
#endif
p_end = section + section_len - 4;
......@@ -1126,8 +1126,12 @@ static int mpegts_read_header(AVFormatContext *s,
handle_packets(ts, MAX_SCAN_PACKETS);
}
if (ts->nb_services <= 0)
return -1;
if (ts->nb_services <= 0) {
/* raw transport stream */
ts->auto_guess = 1;
s->ctx_flags |= AVFMTCTX_NOHEADER;
goto do_pcr;
}
/* tune to first service found */
service = ts->services[0];
......@@ -1165,6 +1169,7 @@ static int mpegts_read_header(AVFormatContext *s,
s->pts_num = 1;
s->pts_den = 27000000;
do_pcr:
st = av_new_stream(s, 0);
if (!st)
goto fail;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment