Skip to content

Commit bc67662

Browse files
committed
fix early returns not releasing lock
1 parent 332fadd commit bc67662

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

src/modules/movit/filter_movit_convert.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -631,6 +631,7 @@ static int convert_image(mlt_frame frame,
631631
mlt_image_format_name(*format));
632632
if (mlt_frame_next_convert_image(frame, image, format, mlt_image_rgba)) {
633633
mlt_log_error(NULL, "filter movit.convert: failed to convert frame to RGBA\n");
634+
GlslManager::get_instance()->unlock_service(frame);
634635
return 1;
635636
}
636637
}
@@ -642,6 +643,7 @@ static int convert_image(mlt_frame frame,
642643

643644
if (!input) {
644645
mlt_log_error(nullptr, "filter movit.convert: create_input failed\n");
646+
GlslManager::get_instance()->unlock_service(frame);
645647
return 1;
646648
}
647649

@@ -651,6 +653,7 @@ static int convert_image(mlt_frame frame,
651653
if (!img_copy) {
652654
mlt_log_error(nullptr, "filter movit.convert: make_input_copy failed\n");
653655
delete input;
656+
GlslManager::get_instance()->unlock_service(frame);
654657
return 1;
655658
}
656659

@@ -721,6 +724,7 @@ static int convert_image(mlt_frame frame,
721724

722725
if (!input) {
723726
delete chain;
727+
GlslManager::get_instance()->unlock_service(frame);
724728
return 1;
725729
}
726730

@@ -744,6 +748,7 @@ static int convert_image(mlt_frame frame,
744748
uint8_t *planar = make_input_copy(*format, *image, width, height);
745749

746750
if (!planar) {
751+
GlslManager::get_instance()->unlock_service(frame);
747752
return 1;
748753
}
749754

0 commit comments

Comments
 (0)