fix mask vframe setup, add unshared vframe constructor
[goodguy/history.git] / cinelerra-5.1 / cinelerra / filelist.C
index 9f24e67a06c9579a1b3818d1e7e9a4af4105c4cd..f44d11a8711f196a4eb554b60f6262e99167bacb 100644 (file)
@@ -296,7 +296,7 @@ int FileList::read_frame(VFrame *frame)
 
                FILE *in;
 
-// Fix path for VFS
+// Fix path for VFS.  Not used anymore.
                if(!strncmp(asset->path, RENDERFARM_FS_PREFIX, strlen(RENDERFARM_FS_PREFIX)))
                        sprintf(string, "%s%s", RENDERFARM_FS_PREFIX, path);
                else
@@ -368,12 +368,8 @@ int FileList::read_frame(VFrame *frame)
                                                        data->allocate_compressed_data(ostat.st_size);
                                                        data->set_compressed_size(ostat.st_size);
                                                        (void)fread(data->get_data(), ostat.st_size, 1, fd);
-                                                       temp = new VFrame(0,
-                                                               -1,
-                                                               asset->width,
-                                                               asset->height,
-                                                               frame->get_color_model(),
-                                                               -1);
+                                                       temp = new VFrame(asset->width, asset->height,
+                                                                       frame->get_color_model(), 0);
                                                        read_frame(temp, data);
                                                        break;
                                        }
@@ -388,50 +384,16 @@ int FileList::read_frame(VFrame *frame)
                        }
                        else
                        {
-                               temp = new VFrame(0,
-                                       -1,
-                                       asset->width,
-                                       asset->height,
-                                       frame->get_color_model(),
-                                       -1);
+                               temp = new VFrame(asset->width, asset->height, frame->get_color_model(), 0);
                                read_frame(temp, asset->path);
                        }
                }
 
                if(!temp) return result;
 
-// printf("FileList::read_frame frame=%d temp=%d\n",
-// frame->get_color_model(),
-// temp->get_color_model());
-               if(frame->get_color_model() == temp->get_color_model())
-               {
-                       frame->copy_from(temp);
-               }
-               else
-               {
-// Never happens
-                       BC_CModels::transfer(frame->get_rows(), /* Leave NULL if non existent */
-                               temp->get_rows(),
-                               frame->get_y(), /* Leave NULL if non existent */
-                               frame->get_u(),
-                               frame->get_v(),
-                               temp->get_y(), /* Leave NULL if non existent */
-                               temp->get_u(),
-                               temp->get_v(),
-                               0,        /* Dimensions to capture from input frame */
-                               0,
-                               asset->width,
-                               asset->height,
-                               0,       /* Dimensions to project on output frame */
-                               0,
-                               asset->width,
-                               asset->height,
-                               temp->get_color_model(),
-                               frame->get_color_model(),
-                               0,         /* When transfering BC_RGBA8888 to non-alpha this is the background color in 0xRRGGBB hex */
-                               temp->get_w(),       /* For planar use the luma rowspan */
-                               frame->get_w());
-               }
+//printf("FileList::read_frame frame=%d temp=%d\n",
+// frame->get_color_model(), // temp->get_color_model());
+               frame->transfer_from(temp);
        }