X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=effect_chain.cpp;h=8a7ea9ac9e3a40900bc903c2a0bdef9b13b7d782;hb=2322070a3dbeb6b46b39cca07a0fbf20e95f5468;hp=9aaa74829041028090079ed8d511abe8e4edd2dd;hpb=682b1da129e2f61109d83463cec344bde7392e9a;p=movit diff --git a/effect_chain.cpp b/effect_chain.cpp index 9aaa748..8a7ea9a 100644 --- a/effect_chain.cpp +++ b/effect_chain.cpp @@ -618,8 +618,8 @@ void EffectChain::inform_input_sizes(Phase *phase) } for (unsigned i = 0; i < phase->inputs.size(); ++i) { Node *input = phase->inputs[i]; - input->output_width = input->phase->output_width; - input->output_height = input->phase->output_height; + input->output_width = input->phase->virtual_output_width; + input->output_height = input->phase->virtual_output_height; assert(input->output_width != 0); assert(input->output_height != 0); } @@ -662,7 +662,8 @@ void EffectChain::find_output_size(Phase *phase) // If the last effect explicitly sets an output size, use that. if (output_node->effect->changes_output_size()) { - output_node->effect->get_output_size(&phase->output_width, &phase->output_height); + output_node->effect->get_output_size(&phase->output_width, &phase->output_height, + &phase->virtual_output_width, &phase->virtual_output_height); return; } @@ -675,10 +676,10 @@ void EffectChain::find_output_size(Phase *phase) assert(input->phase->output_width != 0); assert(input->phase->output_height != 0); if (output_width == 0 && output_height == 0) { - output_width = input->phase->output_width; - output_height = input->phase->output_height; - } else if (output_width != input->phase->output_width || - output_height != input->phase->output_height) { + output_width = input->phase->virtual_output_width; + output_height = input->phase->virtual_output_height; + } else if (output_width != input->phase->virtual_output_width || + output_height != input->phase->virtual_output_height) { all_inputs_same_size = false; } } @@ -701,8 +702,8 @@ void EffectChain::find_output_size(Phase *phase) if (all_inputs_same_size) { assert(output_width != 0); assert(output_height != 0); - phase->output_width = output_width; - phase->output_height = output_height; + phase->virtual_output_width = phase->output_width = output_width; + phase->virtual_output_height = phase->output_height = output_height; return; } @@ -726,8 +727,8 @@ void EffectChain::find_output_size(Phase *phase) } assert(output_width != 0); assert(output_height != 0); - phase->output_width = output_width; - phase->output_height = output_height; + phase->virtual_output_width = phase->output_width = output_width; + phase->virtual_output_height = phase->output_height = output_height; } void EffectChain::sort_all_nodes_topologically()