Commit: 2de34ba31dec8f2f31cf817477087c30ddcbd1b0
Author: Campbell Barton
Date:   Sat Jun 20 14:53:05 2015 +1000
Branches: master
https://developer.blender.org/rB2de34ba31dec8f2f31cf817477087c30ddcbd1b0

Fix T45109: multi-view regression /w screen-cast

===================================================================

M       source/blender/editors/screen/screendump.c

===================================================================

diff --git a/source/blender/editors/screen/screendump.c 
b/source/blender/editors/screen/screendump.c
index 4644f0a..3f66d84 100644
--- a/source/blender/editors/screen/screendump.c
+++ b/source/blender/editors/screen/screendump.c
@@ -303,6 +303,8 @@ typedef struct ScreenshotJob {
        const short *stop;
        const short *do_update;
        ReportList reports;
+
+       bMovieHandle *movie_handle;
        void *movie_ctx;
 } ScreenshotJob;
 
@@ -314,8 +316,11 @@ static void screenshot_freejob(void *sjv)
        if (sj->dumprect)
                MEM_freeN(sj->dumprect);
 
-       if (sj->movie_ctx)
-               MEM_freeN(sj->movie_ctx);
+       if (sj->movie_handle) {
+               bMovieHandle *mh = sj->movie_handle;
+               mh->end_movie(sj->movie_ctx);
+               mh->context_free(sj->movie_ctx);
+       }
 
        MEM_freeN(sj);
 }
@@ -350,6 +355,7 @@ static void screenshot_startjob(void *sjv, short *stop, 
short *do_update, float
        if (BKE_imtype_is_movie(rd.im_format.imtype)) {
                mh = BKE_movie_handle_get(sj->scene->r.im_format.imtype);
                sj->movie_ctx = mh->context_create();
+               sj->movie_handle = mh;
 
                if (!mh->start_movie(sj->movie_ctx, sj->scene, &rd, sj->dumpsx, 
sj->dumpsy, &sj->reports, false, "")) {
                        printf("screencast job stopped\n");
@@ -418,6 +424,7 @@ static void screenshot_startjob(void *sjv, short *stop, 
short *do_update, float
        if (mh) {
                mh->end_movie(sj->movie_ctx);
                mh->context_free(sj->movie_ctx);
+               sj->movie_handle = NULL;
        }
 
        BKE_report(&sj->reports, RPT_INFO, "Screencast job stopped");

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to