Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 367679
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 12, 20262026-05-12T13:45:04+00:00 2026-05-12T13:45:04+00:00

I’m trying to use GMFBridge to switch between multiple stream buffer graphs and I

  • 0

I’m trying to use GMFBridge to switch between multiple stream buffer graphs and I seem to have two problems.

Here’s a diagram of the graphs: http://massivefailure.net/dshowgraphsalt.jpg

  1. The VMR on the the bridge source graph that’s connected to the bridge render graph is very choppy — displaying a new frame every 4-5 seconds.

  2. If I seek the bridge source graph that’s connected to the bridge render graph then all output (the VMRs in the connected bridge source and render graphs as well as the output on the external renderer) stops for about a minute. Once it resumes the choppiness from problem #1 is gone.

I’ve tried disconnecting and stopping the bridge render graph before seeking and reconnecting and running it after seeking, but I still have problems with it either freezing up or the VMR on the connected bridge source graph displaying a frame about every 10 seconds.

Sort of unimportant problem:

I did have smart tees where the infinite tees are, with the VMRs connected to the preview pins, but after seeking they’d play back at 1.5-2x the normal rate until they caught up with the live stream. Is there a sane way to fix it so I can go back to a smart tee?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-12T13:45:05+00:00Added an answer on May 12, 2026 at 1:45 pm

    The bridge adjusts the timestamps on the samples going into the render graph, since the stream time is not the same in the two graphs. However, the inftee filter sends the same sample to both of its outputs. So the VMR in the source graph will (sometimes) be asked to render samples whose timestamps have been adjusted in the render graph. The choppy playback you see is a result of the VMR trying unsuccessfully to catch up.

    You need to copy the data, or at least copy the metadata, so that the modified timestamps don’t appear in the source graph. The simplest way to do this with uncompressed video data is to insert a copy transform such as the colour space converter (probably between inftee and bridge sink).

    To help you debug issues like this, you can create an empty file c:\gmfbridge.txt and the bridge code will create a log including timestamp adjustments and latency.

    The GMFBridge sample demonstrates that you can divide a task into multiple separate graphs with very little overhead, and for that reason it avoids copying the data or introducing new threads on a delivery pipeline. However, for some tasks this is overcomplicated and a simpler, more decoupled, solution is more appropriate, such as a pool of buffers with a worker thread downstream.

    On the other issue: the smart tee strips timestamps from the preview output, and so the samples downstream of the tee are rendered as soon as they arrive. In a normal capture graph, the samples are timestamped with their capture time — if you pass these direct to a renderer, they will always be late for rendering. The proper solution is to adjust the timestamps for the latency from capture to rendering, but the crude solution of stripping the timestamps works in most cases. The smart tee does this by duplicating the IMediaSample object, but pointing to the same data buffer (so it copies the metadata but not the data). Note that the smart tee will also discard samples on the preview output if it thinks (according to 1996 heuristics) that the capture output is falling behind.

    G

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 212k
  • Answers 212k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer The try-catch has no effect because the exception is being… May 12, 2026 at 10:25 pm
  • Editorial Team
    Editorial Team added an answer No, GCC does not has such an option. However, you… May 12, 2026 at 10:25 pm
  • Editorial Team
    Editorial Team added an answer Install DDevExtensions from Andreas Hausladen. In its last version: Version… May 12, 2026 at 10:25 pm

Related Questions

I'm trying to decode HTML entries from here NYTimes.com and I cannot figure out
I want use html5's new tag to play a wav file (currently only supported
I ran into a problem. Wrote the following code snippet: teksti = teksti.Trim() teksti
In order to apply a triggered animation to all ToolTip s in my app,
I have a French site that I want to parse, but am running into

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.