A specialization of a DirectShow graph for tuner reception (Windows-specific).
More...
|
| TunerGraph ()=default |
| Default constructor.
|
|
virtual | ~TunerGraph () |
| Destructor.
|
|
bool | addFilter (::IBaseFilter *filter, const wchar_t *name, Report &report) |
| Add a filter in the graph.
|
|
bool | cleanupDownstream (::IBaseFilter *filter, Report &report) |
| In the graph, cleanup everything downstream a specified filter.
|
|
virtual void | clear (Report &report) override |
| Clear the graph back to uninitialized state.
|
|
bool | connectFilters (::IBaseFilter *filter1, ::IBaseFilter *filter2, Report &report) |
| Directly connect two filters using whatever output and input pin.
|
|
void | display (std::ostream &output, Report &report, const UString &margin=UString(), bool verbose=true) |
| Display the description of the graph.
|
|
bool | initialize (const UString &tuner_name, ::IMoniker *tuner_moniker, DeliverySystemSet &delivery_systems, Report &report) |
| Initialize the graph.
|
|
bool | initialize (Report &report) |
| Initialize the graph.
|
|
bool | isValid () const |
| Check if the graph was correctly initialized.
|
|
bool | removeFilter (::IBaseFilter *filter, Report &report) |
| Remove a filter from the graph.
|
|
bool | run (Report &report) |
| Run the graph.
|
|
template<typename VALTYPE , typename IVALTYPE , class FILTER , typename std::enable_if< std::is_base_of<::IBDA_SignalStatistics, FILTER >::value >::type * = nullptr> |
bool | searchProperty (VALTYPE &retvalue, PropSearch searchtype, ::HRESULT(__stdcall FILTER::*getmethod)(IVALTYPE *), const ::GUID &propset, int propid) |
| Search a property, until found, in all interfaces of a given class and then in tuner properties.
|
|
template<typename VALTYPE > |
bool | searchTunerProperty (VALTYPE &retvalue, PropSearch searchtype, const ::GUID &propset, int propid) |
| Search all IKsPropertySet in the tuner until the specified data is found.
|
|
template<typename VALTYPE , typename ARGTYPE , typename IVALTYPE , class FILTER , typename std::enable_if< std::is_same<::IBDA_DigitalDemodulator, FILTER >::value >::type * = nullptr> |
bool | searchVarProperty (VALTYPE unset, std::optional< ARGTYPE > ¶meter, PropSearch searchtype, bool reset_unknown, ::HRESULT(__stdcall FILTER::*getmethod)(IVALTYPE *), const ::GUID &propset, int propid) |
| Search a property, until found, in all interfaces of a given class and then in tuner properties.
|
|
bool | sendTuneRequest (DuckContext &duck, const ModulationArgs ¶ms) |
| Send a tune request.
|
|
void | setReceiverName (const UString &name) |
| Specify a receiver filter name.
|
|
SinkFilter * | sinkFilter () const |
| Get the sink filter of the graph.
|
|
ComPtr<::IBaseFilter > | startingFilter (Report &report) |
| Get the starting filter of the graph.
|
|
bool | stop (Report &report) |
| Stop the graph.
|
|
A specialization of a DirectShow graph for tuner reception (Windows-specific).
A DirectShow graph for TS capture is usually made of the following filters:
- Network provider (typically "Microsoft DVBx Network Provider")
- Tuner (typically provided by tuner hardware vendor as "BDA driver")
- Receiver (optional, also provided by tuner hardware vendor)
- Tee filter, creating two branches:
- Branch A: actual capture of TS packets
- SinkFiler (provided by TSDuck)
- Branch B: MPEG-2 demux, actually unused but required by the graph
- MPEG-2 demultiplexer
- TIF (Transport Information Filter)
template<typename VALTYPE , typename IVALTYPE , class FILTER , typename std::enable_if< std::is_base_of<::IBDA_SignalStatistics, FILTER >::value >::type * = nullptr>
bool ts::TunerGraph::searchProperty |
( |
VALTYPE & |
retvalue, |
|
|
PropSearch |
searchtype, |
|
|
::HRESULT(__stdcall FILTER::*)(IVALTYPE *) |
getmethod, |
|
|
const ::GUID & |
propset, |
|
|
int |
propid |
|
) |
| |
|
inline |
Search a property, until found, in all interfaces of a given class and then in tuner properties.
- Template Parameters
-
VALTYPE | The type of the property to search. |
IVALTYPE | The type of the property in the get_XXX() method of the object. |
FILTER | The interface class through which the property can be found. |
- Parameters
-
[out] | retvalue | Returned property value. |
[in] | searchtype | Selection criteria for the final value. |
[in] | getmethod | The get_XXX() method of the object to retrieve the property. Used to search in ivector. |
[in] | propset | GUID of the property set. Used to search in tuner properties. |
[in] | propid | Id of the property to search. |
- Returns
- True when the property was found, false otherwise.
template<typename VALTYPE , typename ARGTYPE , typename IVALTYPE , class FILTER , typename std::enable_if< std::is_same<::IBDA_DigitalDemodulator, FILTER >::value >::type * = nullptr>
bool ts::TunerGraph::searchVarProperty |
( |
VALTYPE |
unset, |
|
|
std::optional< ARGTYPE > & |
parameter, |
|
|
PropSearch |
searchtype, |
|
|
bool |
reset_unknown, |
|
|
::HRESULT(__stdcall FILTER::*)(IVALTYPE *) |
getmethod, |
|
|
const ::GUID & |
propset, |
|
|
int |
propid |
|
) |
| |
|
inline |
Search a property, until found, in all interfaces of a given class and then in tuner properties.
Same as previous method, with additional handling of unknown return value.
- Template Parameters
-
VALTYPE | The type of the property to search. |
ARGTYPE | |
IVALTYPE | The type of the property in the get_XXX() method of the object. |
FILTER | The interface class through which the property can be found. |
- Parameters
-
[in] | unset | A value which, when returned by the interface, means "value is unset". |
[in,out] | parameter | A variable object containing the result. When the value is considered as "unset", the variable is reset (becomes uninitialized). |
[in] | searchtype | Selection criteria for the final value. |
[in] | reset_unknown | If true and the property cannot be found, reset the variable in parameter. |
[in] | getmethod | The get_XXX() method of the object to retrieve the property. Used to search in ivector. |
[in] | propset | GUID of the property set. Used to search in tuner properties. |
[in] | propid | Id of the property to search. |
- Returns
- True when the property was found, false otherwise.