projects
/
goodguy
/
cinelerra.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix errs created by changes in inkscape
[goodguy/cinelerra.git]
/
cinelerra-5.1
/
cinelerra
/
packagedispatcher.C
diff --git
a/cinelerra-5.1/cinelerra/packagedispatcher.C
b/cinelerra-5.1/cinelerra/packagedispatcher.C
index f6d69734d3738741e51108abbf817f569aea8ed7..17d02c0d3bad198b0e60f228f5403689ad93f3bc 100644
(file)
--- a/
cinelerra-5.1/cinelerra/packagedispatcher.C
+++ b/
cinelerra-5.1/cinelerra/packagedispatcher.C
@@
-25,6
+25,7
@@
#include "edl.h"
#include "edlsession.h"
#include "labels.h"
#include "edl.h"
#include "edlsession.h"
#include "labels.h"
+#include "mainerror.h"
#include "mutex.h"
#include "mwindow.h"
#include "packagedispatcher.h"
#include "mutex.h"
#include "mwindow.h"
#include "packagedispatcher.h"
@@
-101,7
+102,7
@@
int PackageDispatcher::create_packages(MWindow *mwindow, EDL *edl,
strcpy(packages[0]->path, default_asset->path);
break;
case SINGLE_PASS_FARM:
strcpy(packages[0]->path, default_asset->path);
break;
case SINGLE_PASS_FARM:
- packaging_engine =
File::new_packaging_engine(default_asset
);
+ packaging_engine =
(PackagingEngine*)new PackagingEngineDefault(
);
packaging_engine->create_packages_single_farm(edl, preferences,
default_asset, total_start, total_end);
break;
packaging_engine->create_packages_single_farm(edl, preferences,
default_asset, total_start, total_end);
break;
@@
-110,6
+111,11
@@
int PackageDispatcher::create_packages(MWindow *mwindow, EDL *edl,
label = edl->labels->first;
total_packages = 0;
packages = new RenderPackage*[edl->labels->total() + 2];
label = edl->labels->first;
total_packages = 0;
packages = new RenderPackage*[edl->labels->total() + 2];
+ if( !label ) {
+ eprintf(_("Render file per label and no labels\n"));
+ result = 1;
+ break;
+ }
Render::get_starting_number(default_asset->path,
current_number, number_start, total_digits, 3);
Render::get_starting_number(default_asset->path,
current_number, number_start, total_digits, 3);
@@
-183,6
+189,7
@@
int PackageDispatcher::create_packages(MWindow *mwindow, EDL *edl,
// Only if this isn't a background render or non interactive.
if( strategy != BRENDER_FARM && test_overwrite && mwindow ) {
ArrayList<char*> paths;
// Only if this isn't a background render or non interactive.
if( strategy != BRENDER_FARM && test_overwrite && mwindow ) {
ArrayList<char*> paths;
+ paths.set_array_delete();
get_package_paths(&paths);
result = ConfirmSave::test_files(mwindow, &paths);
paths.remove_all_objects();
get_package_paths(&paths);
result = ConfirmSave::test_files(mwindow, &paths);
paths.remove_all_objects();
@@
-197,8
+204,7
@@
void PackageDispatcher::get_package_paths(ArrayList<char*> *path_list)
packaging_engine->get_package_paths(path_list);
else {
for( int i=0; i<total_allocated; ++i )
packaging_engine->get_package_paths(path_list);
else {
for( int i=0; i<total_allocated; ++i )
- path_list->append(strdup(packages[i]->path));
- path_list->set_free();
+ path_list->append(cstrdup(packages[i]->path));
}
}
}
}
@@
-273,9
+279,11
@@
RenderPackage* PackageDispatcher::get_package(double frames_per_second,
result->video_start = video_position;
result->audio_end = result->audio_start +
Units::to_int64(scaled_len * default_asset->sample_rate);
result->video_start = video_position;
result->audio_end = result->audio_start +
Units::to_int64(scaled_len * default_asset->sample_rate);
+ if( result->audio_end > audio_end ) result->audio_end = audio_end;
result->video_end = result->video_start +
Units::to_int64(scaled_len * default_asset->frame_rate);
result->video_end = result->video_start +
Units::to_int64(scaled_len * default_asset->frame_rate);
- if(result->video_end == result->video_start) result->video_end++;
+ if( result->video_end > video_end ) result->video_end = video_end;
+ if( result->video_end == result->video_start ) result->video_end++;
audio_position = result->audio_end;
video_position = result->video_end;
result->audio_do = default_asset->audio_data;
audio_position = result->audio_end;
video_position = result->video_end;
result->audio_do = default_asset->audio_data;
@@
-322,6
+330,11
@@
int64_t PackageDispatcher::get_progress_max()
total_allocated * default_asset->sample_rate);
}
total_allocated * default_asset->sample_rate);
}
+RenderPackage *PackageDispatcher::get_package(int number)
+{
+ return packages[number];
+}
+
int PackageDispatcher::get_total_packages()
{
return total_allocated;
int PackageDispatcher::get_total_packages()
{
return total_allocated;