diff options
Diffstat (limited to 'demux/demux_tv.c')
-rw-r--r-- | demux/demux_tv.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/demux/demux_tv.c b/demux/demux_tv.c index ab584874cb..a2d06591e0 100644 --- a/demux/demux_tv.c +++ b/demux/demux_tv.c @@ -50,7 +50,7 @@ static int demux_open_tv(demuxer_t *demuxer, enum demux_check check) funcs = tvh->functions; demuxer->priv=tvh; - struct sh_stream *sh_v = new_sh_stream(demuxer, STREAM_VIDEO); + struct sh_stream *sh_v = demux_alloc_sh_stream(STREAM_VIDEO); sh_video = sh_v->video; /* get IMAGE FORMAT */ @@ -89,6 +89,8 @@ static int demux_open_tv(demuxer_t *demuxer, enum demux_check check) /* set height */ funcs->control(tvh->priv, TVI_CONTROL_VID_GET_HEIGHT, &sh_video->disp_h); + demux_add_sh_stream(demuxer, sh_v); + demuxer->seekable = 0; /* here comes audio init */ @@ -115,7 +117,7 @@ static int demux_open_tv(demuxer_t *demuxer, enum demux_check check) goto no_audio; } - struct sh_stream *sh_a = new_sh_stream(demuxer, STREAM_AUDIO); + struct sh_stream *sh_a = demux_alloc_sh_stream(STREAM_AUDIO); sh_audio = sh_a->audio; funcs->control(tvh->priv, TVI_CONTROL_AUD_GET_SAMPLERATE, @@ -128,6 +130,8 @@ static int demux_open_tv(demuxer_t *demuxer, enum demux_check check) // s16ne mp_set_pcm_codec(sh_a, true, false, 16, BYTE_ORDER == BIG_ENDIAN); + demux_add_sh_stream(demuxer, sh_a); + MP_VERBOSE(tvh, " TV audio: %d channels, %d bits, %d Hz\n", nchannels, 16, sh_audio->samplerate); } @@ -168,8 +172,9 @@ static int demux_tv_fill_buffer(demuxer_t *demux) unsigned int len=0; struct sh_stream *want_audio = NULL, *want_video = NULL; - for (int n = 0; n < demux->num_streams; n++) { - struct sh_stream *sh = demux->streams[n]; + int num_streams = demux_get_num_stream(demux); + for (int n = 0; n < num_streams; n++) { + struct sh_stream *sh = demux_get_stream(demux, n); if (!demux_has_packet(sh) && demux_stream_is_selected(sh)) { if (sh->type == STREAM_AUDIO) want_audio = sh; |