1
votes

I simply take RTSP streams with my RTSP Source Filter and write them to file with GDCL MP4 Muxer.[www.gdcl.co.uk]

RTSP Source Filter[H264] --> GDCL MP4 Muxer --> FileWriter

When I changes the resolution GDCL MP4 Muxer MuxInput::Receive methods does not called again.

What I may do wrong?

Update One:

I modify GDCL Muxer so that it writes file itself. So that based on my criteria[time or length] it close old file and writes to new file without starting stopping whole graph

RTSP Source Filter[H264] --> GDCL MP4 Muxer --> NullRenderer [ Do nothing]

1
How do you imagine an MP4 file with a resolution change?Roman R.
I do not imagine.When i got new resolution, i want to write this into new file.But muxer receive method does not called.Novalis

1 Answers

0
votes

In order to start a new file on getting new video resolution you need to stop the graph, reconnect pins with new media type, and then restart the graph. File writer is not supposed to change files without transition through stopped state.

One of the ways you can implement this is to check video resolution by checking/parsing NAL units within your source filter, and in case of resolution change you would send a message to graph owner with request to rebuild the graph. New graph will already use updated media type your source filter is aware of by that time. A restart graph would also be able to start a new MP4 file.