How does DirectShow manage default filters? - directshow

When I render a media file with DirectShow (allowing DirectShow to build the graph automatically) I see that DirectShow has a set of default filters it uses. I also observed that installing 3rd party filters may change some default filters (usually 3rd parties set their own filters as default).
I was wondering how the default filters are managed (registry?) and how can I change them? How to cause a certain filter to be used by default?
Thanks,
Aliza

There is no such exactly thing as "default" filters in DirectShow. There is a merit system instead: each filter registration is provided with a merit for a filter. When fitler graph renders pins and streams, it starts with trying filters with higher merits.
See more at MSDN:
Intelligent Connect
Guidelines for Registering Filters

Related

Best way to use Spartacus built-in Events to capture data into GTM?

I’m using the TagManagementFeatureModule in version 3.2.2. I was wondering if there is a recommended/documented OOTB way to use Spartacus events (CartAddEntrySuccessEvent, CartRemoveEntrySuccessEvent, CartUpdateEntrySuccessEvent) for GTM.
I don’t think I see that the dataLayer pushed entry contains the event key, which is used by GTM triggers. Same case for the NavigationEvent, is there an OOTB way to use it to capture Page Views?
Edit: Currently I created my own module and extending the GtmCollectorService, where I implement the map function to add this event key based on event.constructor.name, but I was assuming there was a default way to do it with the GtmModule.
Yes, you're right, there is no OOTB way to do this. The reason is simple - it all depends on the TMS solution being used, and on the specific clients needs.
That being said, your approach to override the GtmCollectorService and implement map is correct. However, instead of event.constructor.name I suggest to use the static type property that's present on each of the event classes.

Is there any built-in feature in firebase dynamic links to make it valid for a single use

I want my generated Firebase dynamic links be usable just for one time.
After the first person used the link, we need to prevent the second use of that specific dynamic link.
Is there such a feature build in Firebase dynamic link ? or I should implement it manually inside my app
No, Dynamics Links are designed to be useful to anyone who has the link. There is no way to limit their usage. That would be something you'd have to implement yourself with your own backend.

Recommendations for DirectShow filters to test against that generate dynamic media types (other than standard video renderers)

I'm trying to make my filters robust against dynamic media type changes but I haven't found any suitable filters to test against.
I've already implemented support for dynamic format changes in the video renderer but I'm looking for filters (and supporting media files if needed) which generate the following dynamic media type changes (in order of priority). Standard Microsoft filters included in Windows would be ideal but I'm happy to consider others, especially if open source.
QueryAccept (Downstream)
QueryAccept (Upstream)
ReceiveConnection
Just to clarify I'm not looking for video renderer filters as I already test against these (Handling Format Changes from the Video Renderer

Drupal views: Allowing users to choose sort criteria on node display

I have some nodes I am displaying in a view. They are displayed as nodes, unformatted. I would like the user to be able to choose from some predefined sort criteria ( via drop down list or similar).
So they could pick recently active, most commented, newest, etc., and re-query for new results.
Its easy with tables because you can make the labels clickable, but I do not know how to have similar functionality with a raw node preview display.
Just a thought, from me to me, and for anyone else who may be trying to do this.
An easy, sleezy option would be to just add another page view for each of the required sorts, and provide a link to these other views in the header of each of the pages.
This could also allow for (easier) linking to the individual sorts, so say if you have a sidebar block displaying recently commented nodes, you could adjust the .tpl.php of the block to have the title link to the view displaying the full set of recently commented nodes.
also im pretty sure there should be a way to do this with arguments, but i dont know how
Views 3 supports exposing sort order (just like you can expose filters)
Select the sort order (e.g. add sort by node creation date, then click on the settings for that), you should be able to expose the sort order to the end user. This is just like clicking on the settings for a filter and then choosing to expose it.
Standard views isn't going to support this, so IMO you're best off implementing a custom solution using just a plain old view and this jQuery plugin. You can either do this at the theme layer (the same way as any other JS in a theme) or a custom module (via drupal_add_js() to add the plugin and your bit of custom code). Either way will work, although the custom module has the obvious benefit of being theme independent (and thus more portable).
If you go the custom module route, please consider releasing it as a contrib module on http://drupal.org.

How to mute entire flex application?

I'm playing several video streams in my flex application. Plus there are sounds of application UI. Is there possibility to mute entire application or I should silence each of potential sound sources?
Have you tried
SoundMixer.soundTransform = new SoundTransform(0, 0);
I'm pretty sure there is no way to do that with ActionScript out of the box. You'll need to have some manager class that keeps track of all the sounds (Sound, SoundChannel, SoundTransform, etc and your video streams) in your application and that has logic for muting.
If you can force your users to use firefox, there is a plugin available to mute swf files. Mute Flash - https://addons.mozilla.org/en-US/firefox/addon/5453
You probably have to re implement your app to centralize the control of audio components within your app. There is a design pattern out there called Inversion of Control that may be useful for this problem.
http://en.wikipedia.org/wiki/Inversion_of_control
Specifically with Flex, you should lookup the Model Locator pattern with Cairngorm.
http://www.adobe.com/devnet/flex/articles/cairngorm_pt2_06.html
You could use this to store all the various audio levels for your application in a single location. And you could add a method called muteAll() that would go in and set all the levels to 0. Anytime you create a new audio component in the app make sure to add a reference to its volume level in the model locator. Bind the audio's volume level to the value set in the model locator. Then elsewhere in the app you can change the value in the model locator and through binding the audio component you build will get updated.
This might also be helpful.
http://livedocs.adobe.com/flex/3/html/help.html?content=Working_with_Sound_23.html#160274

Resources