audio chan pos rework, batchrender deadlock, titler/crikey grab_event tweak, thread...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / asset.C
index af87bdbb91750ed1f2dd9cac55d714c3ca9a21b1..0993b12fc1c47ff65e8c36da313f18dad53acbc2 100644 (file)
@@ -87,6 +87,7 @@ int Asset::init_values()
        ff_audio_options[0] = 0;
        ff_video_options[0] = 0;
        ff_audio_bitrate = 0;
+       ff_audio_quality = -1;
        ff_video_bitrate = 0;
        ff_video_quality = -1;
 
@@ -134,6 +135,8 @@ int Asset::init_values()
 
        tiff_cmodel = 0;
        tiff_compression = 0;
+       mov_sphere = 0;
+       jpeg_sphere = 0;
 
        use_header = 1;
        id = EDL::next_id();
@@ -222,6 +225,7 @@ void Asset::copy_format(Asset *asset, int do_index)
        strcpy(ff_audio_options, asset->ff_audio_options);
        strcpy(ff_video_options, asset->ff_video_options);
        ff_audio_bitrate = asset->ff_audio_bitrate;
+       ff_audio_quality = asset->ff_audio_quality;
        ff_video_bitrate = asset->ff_video_bitrate;
        ff_video_quality = asset->ff_video_quality;
 
@@ -271,6 +275,10 @@ void Asset::copy_format(Asset *asset, int do_index)
 
        tiff_cmodel = asset->tiff_cmodel;
        tiff_compression = asset->tiff_compression;
+       
+       
+       mov_sphere = asset->mov_sphere;
+       jpeg_sphere = asset->jpeg_sphere;
 }
 
 int64_t Asset::get_index_offset(int channel)
@@ -345,8 +353,8 @@ int Asset::equivalent(Asset &asset, int test_audio, int test_video, EDL *edl)
                        !strcmp(acodec, asset.acodec));
                if(result && format == FILE_FFMPEG)
                        result = !strcmp(ff_audio_options, asset.ff_audio_options) &&
-                               ff_audio_bitrate == asset.ff_audio_bitrate;
-
+                               ff_audio_bitrate == asset.ff_audio_bitrate &&
+                               ff_audio_quality == asset.ff_audio_quality;
        }
 
 
@@ -360,7 +368,9 @@ int Asset::equivalent(Asset &asset, int test_audio, int test_video, EDL *edl)
                        interlace_fixmethod     == asset.interlace_fixmethod &&
                        width == asset.width &&
                        height == asset.height &&
-                       !strcmp(vcodec, asset.vcodec));
+                       !strcmp(vcodec, asset.vcodec) &&
+                       mov_sphere == asset.mov_sphere &&
+                       jpeg_sphere == asset.jpeg_sphere);
                if(result && format == FILE_FFMPEG)
                        result = !strcmp(ff_video_options, asset.ff_video_options) &&
                                ff_video_bitrate == asset.ff_video_bitrate &&
@@ -506,6 +516,8 @@ int Asset::read_video(FileXML *file)
        file->tag.get_property("VCODEC", vcodec);
 
        video_length = file->tag.get_property("VIDEO_LENGTH", (int64_t)0);
+       mov_sphere = file->tag.get_property("MOV_SPHERE", 0);
+       jpeg_sphere = file->tag.get_property("JPEG_SPHERE", 0);
        single_frame = file->tag.get_property("SINGLE_FRAME", (int64_t)0);
 
        interlace_autofixoption = file->tag.get_property("INTERLACE_AUTOFIX",0);
@@ -661,6 +673,8 @@ int Asset::write_video(FileXML *file)
                file->tag.set_property("VCODEC", vcodec);
 
        file->tag.set_property("VIDEO_LENGTH", video_length);
+       file->tag.set_property("MOV_SPHERE", mov_sphere);
+       file->tag.set_property("JPEG_SPHERE", jpeg_sphere);
        file->tag.set_property("SINGLE_FRAME", single_frame);
 
        file->tag.set_property("INTERLACE_AUTOFIX", interlace_autofixoption);
@@ -782,6 +796,7 @@ void Asset::load_defaults(BC_Hash *defaults,
 
        GET_DEFAULT("FF_AUDIO_OPTIONS", ff_audio_options);
        ff_audio_bitrate = GET_DEFAULT("FF_AUDIO_BITRATE", ff_audio_bitrate);
+       ff_audio_quality = GET_DEFAULT("FF_AUDIO_QUALITY", ff_audio_quality);
        GET_DEFAULT("FF_VIDEO_OPTIONS", ff_video_options);
        ff_video_bitrate = GET_DEFAULT("FF_VIDEO_BITRATE", ff_video_bitrate);
        ff_video_quality = GET_DEFAULT("FF_VIDEO_QUALITY", ff_video_quality);
@@ -825,6 +840,8 @@ void Asset::load_defaults(BC_Hash *defaults,
        tiff_cmodel = GET_DEFAULT("TIFF_CMODEL", tiff_cmodel);
        tiff_compression = GET_DEFAULT("TIFF_COMPRESSION", tiff_compression);
 
+       mov_sphere = GET_DEFAULT("MOV_SPHERE", mov_sphere);
+       jpeg_sphere = GET_DEFAULT("JPEG_SPHERE", jpeg_sphere);
        boundaries();
 }
 
@@ -871,6 +888,7 @@ void Asset::save_defaults(BC_Hash *defaults,
 
                UPDATE_DEFAULT("FF_AUDIO_OPTIONS", ff_audio_options);
                UPDATE_DEFAULT("FF_AUDIO_BITRATE", ff_audio_bitrate);
+               UPDATE_DEFAULT("FF_AUDIO_QUALITY", ff_audio_quality);
                UPDATE_DEFAULT("FF_VIDEO_OPTIONS", ff_video_options);
                UPDATE_DEFAULT("FF_VIDEO_BITRATE", ff_video_bitrate);
                UPDATE_DEFAULT("FF_VIDEO_QUALITY", ff_video_quality);
@@ -912,8 +930,16 @@ void Asset::save_defaults(BC_Hash *defaults,
                UPDATE_DEFAULT("EXR_COMPRESSION", exr_compression);
                UPDATE_DEFAULT("TIFF_CMODEL", tiff_cmodel);
                UPDATE_DEFAULT("TIFF_COMPRESSION", tiff_compression);
+
+
+
+               UPDATE_DEFAULT("MOV_SPHERE", mov_sphere);
+               UPDATE_DEFAULT("JPEG_SPHERE", jpeg_sphere);
        }
 
+
+
+
        if(do_bits)
        {
                UPDATE_DEFAULT("BITS", bits);
@@ -963,6 +989,7 @@ int Asset::dump(FILE *fp)
        fprintf(fp,"   fformat=\"%s\"\n", fformat);
        fprintf(fp,"   ff_audio_options=\"%s\"\n", ff_audio_options);
        fprintf(fp,"   ff_audio_bitrate=%d\n", ff_audio_bitrate);
+       fprintf(fp,"   ff_audio_quality=%d\n", ff_audio_quality);
        fprintf(fp,"   ff_video_options=\"%s\"\n", ff_video_options);
        fprintf(fp,"   ff_video_bitrate=%d\n", ff_video_bitrate);
        fprintf(fp,"   ff_video_quality=%d\n", ff_video_quality);
@@ -978,6 +1005,7 @@ int Asset::dump(FILE *fp)
                video_data, layers, program, frame_rate, width, height,
                vcodec, aspect_ratio,string);
        fprintf(fp,"   video_length %jd repeat %d\n", video_length, single_frame);
+       printf("   mov_sphere=%d jpeg_sphere=%d\n", mov_sphere, jpeg_sphere);
        return 0;
 }