From 48aca93ffeb5a9884ea4ccbb1f0710c1bae05b6a Mon Sep 17 00:00:00 2001
From: Andrew Randrianasulu <randrianasulu@gmail.com>
Date: Thu, 2 Feb 2023 14:50:32 +0300
Subject: [PATCH] Fix SIGFPE if openEDL used on viewer clip

---
 cinelerra-5.1/cinelerra/indexfile.C      | 2 +-
 cinelerra-5.1/cinelerra/resourcepixmap.C | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/cinelerra-5.1/cinelerra/indexfile.C b/cinelerra-5.1/cinelerra/indexfile.C
index 885495ed..1ce55cad 100644
--- a/cinelerra-5.1/cinelerra/indexfile.C
+++ b/cinelerra-5.1/cinelerra/indexfile.C
@@ -751,7 +751,7 @@ SET_TRACE
 	int prev_y2 = center_pixel;
 	int first_frame = 1;
 	int zoom_y = mwindow->edl->local_session->zoom_y * data_h /
-			mwindow->edl->local_session->zoom_atrack;
+			(mwindow->edl->local_session->zoom_atrack ? mwindow->edl->local_session->zoom_atrack : 64) ;
 	if( !rect_audio ) zoom_y /= 2;
 	int max_y = center_pixel + zoom_y - 1;
 	edit_position = (x + pixmap->pixmap_x - virtual_edit_x) * project_zoom;
diff --git a/cinelerra-5.1/cinelerra/resourcepixmap.C b/cinelerra-5.1/cinelerra/resourcepixmap.C
index 5b5a12f8..91950400 100644
--- a/cinelerra-5.1/cinelerra/resourcepixmap.C
+++ b/cinelerra-5.1/cinelerra/resourcepixmap.C
@@ -418,7 +418,7 @@ void ResourcePixmap::draw_audio_source(TrackCanvas *canvas, Edit *edit, int x, i
 	int rect_audio = mwindow->preferences->rectify_audio;
 	int data_h = edit->track->data_h;
 	int zoom_y = mwindow->edl->local_session->zoom_y * data_h /
-			mwindow->edl->local_session->zoom_atrack;
+			(mwindow->edl->local_session->zoom_atrack ? mwindow->edl->local_session->zoom_atrack : 64);
 	int64_t scale_y = !rect_audio ? zoom_y : zoom_y*2;
 	int y_max = center_pixel + scale_y / 2 - 1;
 
@@ -595,7 +595,7 @@ void ResourcePixmap::draw_wave(TrackCanvas *canvas,
 		mwindow->theme->get_image("title_bg_data")->get_h();
 	int center_pixel = !rect_audio ? data_h/2 + top_pixel : data_h + top_pixel;
 	int zoom_y = mwindow->edl->local_session->zoom_y * (int64_t)data_h /
-			mwindow->edl->local_session->zoom_atrack;
+			(mwindow->edl->local_session->zoom_atrack ? mwindow->edl->local_session->zoom_atrack : 64) ;
 	int scale_y = !rect_audio ? zoom_y/2 : zoom_y;
 	int bottom_pixel = top_pixel + data_h;
 	int y1 = (int)(center_pixel - low * scale_y);
-- 
2.30.4

