projects
/
goodguy
/
cinelerra.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Upgrade x265 base as provided by Andrew
[goodguy/cinelerra.git]
/
cinelerra-5.1
/
cinelerra
/
packagerenderer.C
diff --git
a/cinelerra-5.1/cinelerra/packagerenderer.C
b/cinelerra-5.1/cinelerra/packagerenderer.C
index d60a5be0ae17acc5c7aa3102aea5128251c97586..1c86af68d02b5bb2d050cfa2b5a52a463c4514fb 100644
(file)
--- a/
cinelerra-5.1/cinelerra/packagerenderer.C
+++ b/
cinelerra-5.1/cinelerra/packagerenderer.C
@@
-80,10
+80,20
@@
RenderPackage::~RenderPackage()
}
}
+PackageFile::PackageFile(PackageRenderer *package_renderer)
+{
+ this->package_renderer = package_renderer;
+}
+PackageFile::~PackageFile()
+{
+}
-
-
+int PackageFile::write_frame_done(int64_t position)
+{
+ if( !package_renderer->package->use_brender ) return 0;
+ return package_renderer->set_video_map(position, BRender::RENDERED);
+}
// Used by RenderFarm and in the future, Render, to do packages.
// Used by RenderFarm and in the future, Render, to do packages.
@@
-101,8
+111,10
@@
PackageRenderer::PackageRenderer()
PackageRenderer::~PackageRenderer()
{
delete command;
PackageRenderer::~PackageRenderer()
{
delete command;
- delete audio_cache;
- delete video_cache;
+ if( audio_cache )
+ audio_cache->remove_user();
+ if( video_cache )
+ video_cache->remove_user();
delete vconfig;
delete aconfig;
delete timer;
delete vconfig;
delete aconfig;
delete timer;
@@
-158,7
+170,7
@@
void PackageRenderer::create_output()
else
strncpy(asset->path, package->path, sizeof(asset->path));
else
strncpy(asset->path, package->path, sizeof(asset->path));
- file = new
File
;
+ file = new
PackageFile(this)
;
file->set_processors(preferences->processors);
result = file->open_file(preferences, asset, 0, 1);
file->set_processors(preferences->processors);
result = file->open_file(preferences, asset, 0, 1);
@@
-394,13
+406,6
@@
void PackageRenderer::do_video()
if( video_write_position >= video_write_length ) {
result = file->write_video_buffer(video_write_position);
if( video_write_position >= video_write_length ) {
result = file->write_video_buffer(video_write_position);
-// Update the brender map after writing the files.
- if( package->use_brender ) {
- for( int i = 0; i < video_write_position && !result; i++ ) {
- result = set_video_map(video_position + 1 - video_write_position + i,
- BRender::RENDERED);
- }
- }
video_write_position = 0;
}
}
video_write_position = 0;
}
}
@@
-436,12
+441,6
@@
void PackageRenderer::stop_output()
delete compressed_output;
if( video_write_position )
file->write_video_buffer(video_write_position);
delete compressed_output;
if( video_write_position )
file->write_video_buffer(video_write_position);
- if( package->use_brender ) {
- for( int i = 0; i < video_write_position && !error; i++ ) {
- error = set_video_map(video_position - video_write_position + i,
- BRender::RENDERED);
- }
- }
video_write_position = 0;
if( !error ) file->stop_video_thread();
if( mwindow ) {
video_write_position = 0;
if( !error ) file->stop_video_thread();
if( mwindow ) {