Speicher läuft voll und Programm stürzt ab

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Speicher läuft voll und Programm stürzt ab

    Hallo,

    Ich habe das Problem, dass bei meinem Programm der Speicher vollläuft und es dann abstürzt. Das Programm ließt den Videostream einer Webcam und zeigt das Bild in einem Fenster.
    Ich habe den Problemherd schon etwas eingekreist. Bei jedem Sample, das ich hole, erhöt sich der Speicher.

    Ich denke das Problem liegt in folgenden Zeilen:

    C/C++ Code:

    Quellcode

    1. HRESULT CGetVideo::DoRenderSample(IMediaSample *sample)
    2. {
    3. BYTE* data = 0;
    4. sample->GetPointer( &data );
    5. BITMAPINFO bmi={0};
    6. bmi.bmiHeader=bmih;
    7. RECT r;
    8. GetClientRect( hwnd, &r );
    9. return StretchDIBits(GetDC(hwnd),0,16,r.right,r.bottom-16,0,0,w,h,data,&bmi,DIB_RGB_COLORS,SRCCOPY);
    10. };
    Alles anzeigen


    Ich denke, aber das ist wirklich nur eine Vermutung, dass das Problem in der CBaseRenderer Class in der DoRenderSample Methode liegt.

    Ist es möglich den Speicher immer wieder auf "0" zu setzten?

    Oder ist es ein anderers Problem, dass mein Programm abstürzt?

    Das gesamte Programm ist zu finden unter:

    http://www.codeproject.com/useritems/VideoImageGrabber.asp


    vielen Dank für eure Hilfe!!!



    PS: Wenn ihr das Programm debuggen wollt müsst ihr zusätzliche Bibliotheken einbinden: strmbasd.lib, strmiids.lib und winmm.lib
    Außerdem müsst ihr LIBCD.lib ignorieren.
    Zusätzlich braucht ihr die streams.h Headerdatei. Alles gibt es im Platform SDK. [/quote]