Avstream format change, which way is correct for a video capture device?

Hi,

I want to change the resolution during playback. There are two documents that seem related to this purpose:

I have tried generating KSEVENT_DYNAMIC_FORMAT_CHANGE from both the pin and the filter, but neither caused the renderer to stop or intersect again.
I tested with graphedit and OBS, but I still cannot determine whether my driver is generating the event correctly, or if the applications simply do not support it.

I have also tried adding KSSTREAM_HEADER_OPTIONSF_TYPECHANGED in StreamHeader->OptionsFlags, and copying a KS_DATAFORMAT_VIDEOINFOHEADER data into StreamHeader->Data.
However, in both graphedit and OBS, I still cannot observe any changes, such as connection properties being changed.

Could anyone give me some suggestions?
Or is there any application that is suitable for testing dynamic format changes?

This is a very unusual thing to want to do. The application is expected to be in charge of all of the formatting. This event would need to be captured by the application, which would then rebuild the graph at the new resolution. I am not aware of any mainstream applications that actually look for this event, because they don’t expect the format to be changed from the one they selected.

It wouldn’t be hard to build an application to test this, but I wouldn’t expect it to be used very much in the wild.

Thank you.

So if I want to build a test application, would it act like the HW MFT described in the dynamic-format-changes-in-avstream-codecs, handle KSEVENT_DYNAMIC_FORMAT_CHANGE and then follow steps 5–9?