rework proxy scaler, fix crop-gui coord, video_data tweak for proxy_format
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / asset.C
index eebc6f2739f96ceeec6ce8ccb49de3c6bc3ffe3a..48dfca3ca66934d7379e30570f3bd115773dbd42 100644 (file)
@@ -147,6 +147,7 @@ void Asset::reset_video()
        layers = 0;
        actual_width = width = 0;
        actual_height = height = 0;
+       proxy_scale = 0; // not a proxy
        video_length = 0;
        single_frame = 0;
        vmpeg_cmodel = BC_YUV420P;
@@ -206,6 +207,7 @@ void Asset::copy_format(Asset *asset, int do_index)
        height = asset->height;
        actual_width = asset->actual_width;
        actual_height = asset->actual_height;
+       proxy_scale = asset->proxy_scale;
        strcpy(vcodec, asset->vcodec);
        strcpy(acodec, asset->acodec);
 
@@ -479,6 +481,7 @@ int Asset::read_video(FileXML *file)
        actual_width = file->tag.get_property("ACTUAL_WIDTH", actual_width);
        height = file->tag.get_property("HEIGHT", height);
        width = file->tag.get_property("WIDTH", width);
+       proxy_scale = file->tag.get_property("PROXY_SCALE", 0);
        layers = file->tag.get_property("LAYERS", layers);
        program = file->tag.get_property("PROGRAM", program);
 // This is loaded from the index file after the EDL but this
@@ -626,6 +629,7 @@ int Asset::write_video(FileXML *file)
        file->tag.set_property("ACTUAL_WIDTH", actual_width);
        file->tag.set_property("HEIGHT", height);
        file->tag.set_property("WIDTH", width);
+       file->tag.set_property("PROXY_SCALE", proxy_scale);
        file->tag.set_property("LAYERS", layers);
        file->tag.set_property("PROGRAM", program);
        file->tag.set_property("FRAMERATE", frame_rate);
@@ -727,6 +731,7 @@ void Asset::load_defaults(BC_Hash *defaults,
                width = GET_DEFAULT("WIDTH", width);
                actual_height = GET_DEFAULT("ACTUAL_HEIGHT", actual_height);
                actual_width = GET_DEFAULT("ACTUAL_WIDTH", actual_width);
+               proxy_scale = GET_DEFAULT("PROXY_SCALE", proxy_scale);
                program = GET_DEFAULT("PROGRAM", program);
                layers = GET_DEFAULT("LAYERS", layers);
                if(EQUIV(frame_rate, 0)) frame_rate = GET_DEFAULT("FRAMERATE", frame_rate);
@@ -885,6 +890,7 @@ void Asset::save_defaults(BC_Hash *defaults,
                UPDATE_DEFAULT("WIDTH", width);
                UPDATE_DEFAULT("ACTUAL_HEIGHT", actual_height);
                UPDATE_DEFAULT("ACTUAL_WIDTH", actual_width);
+               UPDATE_DEFAULT("PROXY_SCALE", proxy_scale);
                UPDATE_DEFAULT("PROGRAM", program);
                UPDATE_DEFAULT("LAYERS", layers);
                UPDATE_DEFAULT("FRAMERATE", frame_rate);
@@ -925,9 +931,13 @@ int Asset::dump(FILE *fp)
        char string[BCTEXTLEN];
        ilacemode_to_xmltext(string, interlace_mode);
        fprintf(fp,"   video_data %d program %d layers %d framerate %f width %d"
-               " height %d vcodec %4.4s aspect_ratio %f ilace_mode %s\n",
+               " height %d vcodec %s aspect_ratio %f ilace_mode %s\n",
                video_data, layers, program, frame_rate, width, height,
                vcodec, aspect_ratio,string);
+       fprintf(fp,"   actual_width %d actual_height %d proxy_scale %d"
+               " video_length %jd repeat %d\n",
+               actual_width, actual_height, proxy_scale, video_length,
+               single_frame);
        fprintf(fp,"   video_length %jd repeat %d\n", video_length, single_frame);
        fprintf(fp,"   mov_sphere=%d jpeg_sphere=%d\n", mov_sphere, jpeg_sphere);
        return 0;