Re: Hardware Overlay with Push Source



I've just solvied the problem.
It was because of the size of the source images.
When I used small images such as 176*144, the Video Renderer did not load
the hardware overlay.
Now I am doing with 352*288 and it's working good.

But I don't know why the Video Renderer does not use hardware overlay for
the small size iamges.

If I want to use small size images for the source input, how can I create
hardware overlay?

Thank you.


"Alessandro Angeli [MVP::DigitalMedia]"님이 작성한 내용:

> Augie at NHN wrote:
>
> > Is it just because XVID decode filter uses the Video
> > Transform instead of the Source Stream?
>
> There is no difference between filters: an upstream filter
> is an upstream filter whether it has an input pin
> (transform) or not (source).
>
> This is quoted from the VR docs (my idea is after the
> quote):
>
> <<<
> The Video Renderer accepts YUV formats if the video graphics
> card supports YUV overlay surfaces. When it first connects
> to the upstream filter, however, the Video Renderer requires
> an RGB format that matches the color depth of the current
> monitor settings. For example, if the current display
> setting is 24-bit color, the upstream filter must be able to
> provide 24-bit RGB video. When the filter graph switches to
> a runing state, the Video Renderer negotiates a dynamic
> format change to the appropriate YUV color space.
>
> By connecting with an RGB type, the Video Renderer ensures
> that it can use GDI in case DirectDraw is not available. It
> will switch to GDI if another application is using the video
> memory, if the video rectangle straddles two monitors on a
> multi-monitor system, or if the video rectangle is
> completely obscured by another window.
>
> Note The Video Mixing Renderer does not perform this type
> of dynamic format change, and does not require an RGB media
> type, because it never uses GDI for rendering.
>
> To negotiate a format change, the Video Renderer calls
> IPin::QueryAccept with the new media type. If the upstream
> filter returns S_OK, the Video Renderer attaches the new
> media to the next sample. The upstream filter should call
> IMediaSample::GetMediaType on each sample. If GetMediaType
> returns a non-NULL value, it indicates a format change, and
> the upstream filter should respond by switching output
> types. (Do not switch types in the QueryAccept method.) The
> upstream filter should accept at least the major RGB types,
> and ideally should support the common YUV types. During
> streaming, the Video Renderer might switch back and forth
> between YUV and RGB types any number of times. The Video
> Renderer does not accept dynamic format changes initiated by
> the upstream filter.
>
> When the Video Renderer draws to a DirectDraw overlay
> surface, it allocates a single buffer for its input pin. If
> the upstream filter attempts to force a connection using
> multiple buffers, the Video Renderer will be unable to use
> the overlay surface.
> >>>
>
> So, there may be 2 issues: if the source filter does not use
> a single buffer or does not support the format change, the
> VR will not be able to use the overlay.
>
>
> --
>
> // Alessandro Angeli
> // MVP :: Digital Media
> // a dot angeli at psynet dot net
>
>
>
>
.



Relevant Pages

  • Re: DirectDraw YUV display
    ... DirectShow does not use the same type of color key as Mosquito. ... uses Source Color Keys (which use colors in the overlay to determine overlay ... whereas the video renderer in DirectShow uses Destination ... The overlay surface must support the appropriate ...
    (microsoft.public.windowsce.platbuilder)
  • Re: Comic problem using IVideoWindow and CDialogBar
    ... something related the first instance of the Filter Graph ... Why if I open a video in Media Player, ... Video Renderer instance works perfectly in my ... support only 1 overlay surface and the DirectDraw-based ...
    (microsoft.public.win32.programmer.directx.video)
  • Re: dynamic format change in transform filter
    ... but result is not reflected in video renderer. ... QueryAccepton a downstream pin asks whether the pin ... attach the new media type to the ... The format change I need to do may or may not use bigger buffer. ...
    (microsoft.public.win32.programmer.directx.video)
  • Re: How to display a VMR9 output on a analog output
    ... > Video Renderer (windowless mode) because I put overlayed graphics ... DirectDraw's overlay. ...
    (microsoft.public.win32.programmer.directx.video)
  • Re: How to disable videp acceleration programically?
    ... WMP calls the necessary methods on the video renderer: ... OM: always uses overlay ... VMR9: does not apply ... EVR: does not apply ...
    (microsoft.public.win32.programmer.directx.video)