Page 1 of 1

Help for dshow tuner channel changing

Posted: 05 May 2013 02:41
by bernie.zhao
Currently I'm developing an application using LibVLC to play analog TV via a USB tuner.
The TV plays flawlessly with only one issue - channel changing delay.
I tried both directly calling libvlc_media_player_new_from_media(), or utilizing a playlist, both resulting around 5-7 seconds delay.
It is understandable because the LibVLC is closing the dshow graph, rebuild it and doing everything again.
Yet I'm wondering if there is anyway to improve this by caching graph and tuner instance, only do a put_channel to the tuner every time you set a channel.
I read quite some access_demux module doc and the dshow.cpp itself, but couldn't figure out a decent way to do this without breaking the normal VLC logic.
Any hint will be appreciated!

Re: Help for dshow tuner channel changing

Posted: 06 May 2013 02:36
by bernie.zhao
I saw an control object ACCESS_SET_PRIVATE_ID_STATE in access modules.
Any idea what this ID is for? Can I use this to represent some real-time tuner control parameters like frequency?
Thank you.

Re: Help for dshow tuner channel changing

Posted: 06 May 2013 03:51
by Rémi Denis-Courmont
The MPEG-TS demuxer uses to configure the hardware PID demux.

Re: Help for dshow tuner channel changing

Posted: 06 May 2013 17:38
by bernie.zhao
Thank you Rémi!
In other words it is technically possible to 'borrow' this field for dshow tuner frequency?

Re: Help for dshow tuner channel changing

Posted: 07 May 2013 03:17
by Rémi Denis-Courmont
Only if it matches to MPEG-TS PIDs.

Re: Help for dshow tuner channel changing

Posted: 07 May 2013 17:40
by bernie.zhao
Thank you Rémi!!!!

Do you know how can I just compile dshow module without the entire tree? I checked the OutOfTreeCompile guide I was wondering if there is anyway to do it on Windows.

Thanks a lot in advance!