Commit a5f23d8d authored by Michael Niedermayer's avatar Michael Niedermayer

mpegts: factor seek_back() out

Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parent b7c66852
...@@ -1986,6 +1986,15 @@ static int parse_pcr(int64_t *ppcr_high, int *ppcr_low, ...@@ -1986,6 +1986,15 @@ static int parse_pcr(int64_t *ppcr_high, int *ppcr_low,
return 0; return 0;
} }
static void seek_back(AVFormatContext *s, AVIOContext *pb, int64_t pos) {
/* NOTE: We attempt to seek on non-seekable files as well, as the
* probe buffer usually is big enough. Only warn if the seek failed
* on files where the seek should work. */
if (avio_seek(pb, pos, SEEK_SET) < 0)
av_log(s, pb->seekable ? AV_LOG_ERROR : AV_LOG_INFO, "Unable to seek back to the start\n");
}
static int mpegts_read_header(AVFormatContext *s) static int mpegts_read_header(AVFormatContext *s)
{ {
MpegTSContext *ts = s->priv_data; MpegTSContext *ts = s->priv_data;
...@@ -2009,11 +2018,7 @@ static int mpegts_read_header(AVFormatContext *s) ...@@ -2009,11 +2018,7 @@ static int mpegts_read_header(AVFormatContext *s)
/* normal demux */ /* normal demux */
/* first do a scan to get all the services */ /* first do a scan to get all the services */
/* NOTE: We attempt to seek on non-seekable files as well, as the seek_back(s, pb, pos);
* probe buffer usually is big enough. Only warn if the seek failed
* on files where the seek should work. */
if (avio_seek(pb, pos, SEEK_SET) < 0)
av_log(s, pb->seekable ? AV_LOG_ERROR : AV_LOG_INFO, "Unable to seek back to the start\n");
mpegts_open_section_filter(ts, SDT_PID, sdt_cb, ts, 1); mpegts_open_section_filter(ts, SDT_PID, sdt_cb, ts, 1);
......
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