431{
433 IPin *source_out =
NULL, *renderer_in;
436
437 FIXME(
"(%p/%p)->(%s, %s, %p, %p, %p) semi-stub!\n",
This, iface,
439 pSource, pfCompressor, pfRenderer);
440
442 {
443 FIXME(
"Need a capture graph\n");
445 }
446
447 if (pCategory &&
IsEqualIID(pCategory, &PIN_CATEGORY_VBI)) {
448 FIXME(
"Tee/Sink-to-Sink filter not supported\n");
450 }
451
456
457 if (!pfRenderer)
458 {
460 hr = IPin_EnumMediaTypes(source_out, &enumMedia);
463 hr = IEnumMediaTypes_Next(enumMedia, 1, &mediaType,
NULL);
465 if (
IsEqualIID(&mediaType->majortype, &MEDIATYPE_Video)) {
468 }
else if (
IsEqualIID(&mediaType->majortype, &MEDIATYPE_Audio)) {
471 } else {
472 FIXME(
"cannot automatically load renderer for majortype %s\n",
debugstr_guid(&mediaType->majortype));
474 }
476 rendererNeedsRelease =
TRUE;
477 hr = IGraphBuilder_AddFilter(
This->mygraph, pfRenderer,
NULL);
478 }
480 }
481 IEnumMediaTypes_Release(enumMedia);
482 }
484 if (rendererNeedsRelease)
485 IBaseFilter_Release(pfRenderer);
486 IPin_Release(source_out);
488 }
489 }
490
493 {
494 if (rendererNeedsRelease)
495 IBaseFilter_Release(pfRenderer);
496 IPin_Release(source_out);
498 }
499
500 if (!pfCompressor)
501 hr = IGraphBuilder_Connect(
This->mygraph, source_out, renderer_in);
502 else
503 {
504 IPin *compressor_in, *compressor_out;
505
506 hr = ICaptureGraphBuilder2_FindPin(iface, (
IUnknown*)pfCompressor,
509 {
510 hr = IGraphBuilder_Connect(
This->mygraph, source_out, compressor_in);
511 IPin_Release(compressor_in);
512 }
513
515 {
516 hr = ICaptureGraphBuilder2_FindPin(iface, (
IUnknown*)pfCompressor,
519 {
520 hr = IGraphBuilder_Connect(
This->mygraph, compressor_out, renderer_in);
521 IPin_Release(compressor_out);
522 }
523 }
524 }
525
526 IPin_Release(source_out);
527 IPin_Release(renderer_in);
528 if (rendererNeedsRelease)
529 IBaseFilter_Release(pfRenderer);
531 return return_hr;
533}
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
static void DeleteMediaType(AM_MEDIA_TYPE *pMediaType)