View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000577 | Cinelerra-GG | [All Projects] Bug | public | 2021-06-11 21:09 | 2021-06-20 12:25 |
Reporter | PhyllisSmith | Assigned To | PhyllisSmith | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | feedback | Resolution | open | ||
Product Version | |||||
Target Version | Fixed in Version | ||||
Summary | 0000577: Gand Channels and Gang Media are not doing Armed tracks correctly | ||||
Description | @Scossu has discovered that as stated in the manual when using gang channels and gang media, disarmed tracks are supposed to be ignored (meaning that they should be treated as armed) if not the first in the set. This makes it difficult to see that things are getting unaligned because you can not see which tracks are disarmed in those modes. | ||||
Tags | No tags attached. | ||||
I would like to be clear. You, @PhyllisSmith, have found the right place where to look. The right code was already there, I just commented on some lines after testing two release of Cinelerra-GG. I wouldn't be able to make the right adjustments to the code. Thanks PhyllisSmith! Thanks @Andrea_Paz for testing. |
|
From my (few) tests everything seems to work as indicated. I tried cutting out a region and adding a plugin and everything is OK. I haven't tried multicam. | |
@Andrea_Paz Yes, it is difficult to keep track of it !! Before, with the bug, if you were in either Gang Channels or Gang Media mode and you had a track that was not the first track of the set DISARMED, changes such as deleting a section or adding a plugin would not be propagated to the disarmed track an it should have been (because you can not see it -- that was the intended design). Now, with the fix it is working properly again and changes are properly made to the disarmed track. Also, as IgornBeg pointed out for when the "Play" patchbay button is disabled the following holds (I will add this to the manual today as I see it is missing.) - Gang flags in the patchbay specifically when in Gang Channels or Gang Media modes will operate as set in the Master Track. For example, if when in Gang Channels mode, you turn off “Play track” on the visible audio track, none of the associated channels (i.e. the other stereo or other 5 channels will play). And if in Gang Media mode, if you turn on “Play track” for the Master Track, all associated video and audio tracks will play unless you turned off “Play track” for some of the associated audio/video slave tracks which will not play. I had to read the section in the manual several times before I could remember how to use it. |
|
I'm sorry but I can't follow the thread well: how did it work before in ganged and how does it work now? I tried playing with the play track and arm buttons in the 3 modes of ganged. Turning the buttons on/off does not affect the other tracks, whether master or slave. | |
@IgorBeg All testing good. I checked in the mod to GIT. (No, YOU are great!) @Andrea_Paz Please test also after rebuilding if you have some extra time. |
|
@IgorBeg Oh, thank you! I will test today. |
|
@PhyllisSmith, I meant the code below. I also tried with Multi Camera (Open Camera) and it seems to work right. When/if you have a few of time, could you test it, please? int Track::is_armed() { // return armed && gang_master()->armed; return gang_master()->armed; } int Track::is_ganged() { // return ganged && gang_master()->ganged; return gang_master()->ganged; } int Track::armed_gang(Track *track) { // if( !track->ganged ) return 0; if( edl->local_session->gang_tracks == GANG_NONE ) return ganged; Track *current = gang_master(); // if( !current->ganged ) return 0; for(;;) { if( track == current ) return 1; current = current->next; if( !current || current->master ) return 0; } return 1; } int Track::plays() { return play && gang_master()->play; } |
|
@IgorBeg Thanks for your input -- it seemed like "play" was the issue but when I removed only that mod, it still failed. I found the exact line and it has to do with the "Master Gang" flag in the patchbay. (around line 1836 in track.C). - return gang_master()->armed; + return armed && gang_master()->armed; When I revert to the - line above, the disarmed works correctly. I am continuing to understand more today by using gdb to see the values. |
|
By my first test with both Cin_20200930 and Cin_20201031 releases it seems that the change was for the Play for the Slave tracks. The discussion was in Mailing List (start 2020-10-09, YYYY-mm-dd) for "Can 'play track' status propagate to ganged tracks?" by Oon-Ee_Ng (and Pierre). Could @Andrea_Paz confirm or less, please?. Thanks. If it were so, I think, you could restore the old code except for the "int Track::plays()" function. But, I have to try the two releases with Multi camera (Open camera) feature. I need more days to test. |
|
You are great @PhyllisSmith ! THANKS! Undfortunately, I don't understand that code by "diff" in track.C. I am afraid there was a reason for that change. Unfortunately I don't remember. Maybe it was in https://www.cinelerra-gg.org/bugtracker/view.php?id=529 https://www.cinelerra-gg.org/bugtracker/view.php?id=433 I should do some tests on Cin_20200930 release (... or to build a Cin release before Cin_20201024, but I am not able). |
|
@IgorBeg I found what created the error but not sure how to fix it. It is dated October 24, 2020 for the GIT checkin of "change track gang_master patchbay flag use to allow disabled slaves"/ Commit: a718f58e6d8061f83bd0c0b10848ac415cd21fcd (not sure how to fix it though -- still checking) @Andrew_R Changed file that causes the problem is track.C -- diff --git a/cinelerra-5.1/cinelerra/track.C b/cinelerra-5.1/cinelerra/track.C index 030348302fe3c7e6212c100e9d9dfb56f8cc7808..5c07480e249799bbc242512d11764591a357cc6e 100644 (file) --- a/cinelerra-5.1/cinelerra/track.C +++ b/cinelerra-5.1/cinelerra/track.C @@ -1836,18 +1836,20 @@ int Track::in_gang(Track *track) int Track::is_armed() { - return gang_master()->armed; + return armed && gang_master()->armed; } int Track::is_ganged() { - return gang_master()->ganged; + return ganged && gang_master()->ganged; } int Track::armed_gang(Track *track) { + if( !track->ganged ) return 0; if( edl->local_session->gang_tracks == GANG_NONE ) return ganged; Track *current = gang_master(); + if( !current->ganged ) return 0; for(;;) { if( track == current ) return 1; current = current->next; @@ -1858,7 +1860,7 @@ int Track::armed_gang(Track *track) int Track::plays() { - return gang_master()->play; + return play && gang_master()->play; } int Track::index_in(Mixer *mixer) |
|
Bug cropped up in the 10/31/2020 release when changes to Gang Mode were made as were needed. | |
Date Modified | Username | Field | Change |
---|---|---|---|
2021-06-11 21:09 | PhyllisSmith | New Issue | |
2021-06-11 21:31 | PhyllisSmith | Note Added: 0004807 | |
2021-06-14 03:38 | PhyllisSmith | Assigned To | => PhyllisSmith |
2021-06-14 03:38 | PhyllisSmith | Status | new => confirmed |
2021-06-14 03:38 | PhyllisSmith | Note Added: 0004808 | |
2021-06-14 07:38 | IgorBeg | Note Added: 0004809 | |
2021-06-15 07:12 | IgorBeg | Note Added: 0004810 | |
2021-06-15 12:53 | PhyllisSmith | Note Added: 0004811 | |
2021-06-15 12:56 | PhyllisSmith | Note Edited: 0004811 | View Revisions |
2021-06-15 12:57 | PhyllisSmith | Note Edited: 0004811 | View Revisions |
2021-06-17 08:43 | IgorBeg | Note Added: 0004825 | |
2021-06-17 13:39 | PhyllisSmith | Note Added: 0004826 | |
2021-06-17 23:52 | PhyllisSmith | Note Added: 0004827 | |
2021-06-17 23:52 | PhyllisSmith | Status | confirmed => feedback |
2021-06-18 09:00 | Andrea_Paz | Note Added: 0004828 | |
2021-06-18 15:35 | PhyllisSmith | Note Added: 0004829 | |
2021-06-19 09:08 | Andrea_Paz | Note Added: 0004830 | |
2021-06-20 12:25 | IgorBeg | Note Added: 0004840 |