Media (Intel® oneAPI Video Processing Library, Intel Media SDK)
Access community support with transcoding, decoding, and encoding in applications using media tools from Intel. This includes Intel® oneAPI Video Processing Library and Intel® Media SDK.
Announcements
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.

Setting IMediaSeeking end position returns E_INVALIDARG

flobadobatwork
Beginner
139 Views

I've also posted this on the Microsoft directshow forum but it might be an Intel specific issue so I'll post here too...

I have a simple graph to save a short video clip from a larger one...

async file source -> intel mp4 demuxer -> intel h264 decoder -> intel h264 encoder -> intel mp4 muxer -> file writer

I can build the graph ok and set the reference clock to null. Checked all hr return values as S_OK.

I call IMediaSeeking::SetPositions(&startpos, AM_SEEKING_AbsolutePositioning, &endpos, AM_SEEKING_AbsolutePositioning) and E_INVALIDARG is returned. The reference time values I am passing in are ok (set to 10000000 and 50000000 for testing). I can seek ok when just setting the start time, it's only when the end time is set that I get the E_INVALIDARG.

I have also tried using the IMediaSeeking interface from the video output pin of the demuxer. I have also tried removing the decoder and encoder from the graph so that the demuxer is connected to the muxer.

I'm at a loss as to why SetPositions doesn't work.

0 Kudos
2 Replies
Nina_K_Intel
Employee
139 Views
Hello,

We will check this issue.

Regards,
Nina
Nina_K_Intel
Employee
139 Views
Hello,

I'm sorry for late reply. I've just checked the Media SDK splitter code - it doesn't support stop position at all. This is intentional limitation and likely won't be fixed in nearest future as splitters are provided as side binaries to enable basic compatibility of decoder and encoder filters with container media.

Best regards,
Nina
Reply