Thanks for reporting your issue. Please make sure these boxes are checked before submitting your issue - thank you!

- [x] I looked for a similar issue and couldn't find any.
- [x] I tried with the latest version of GPAC. Installers available at http://gpac.io/downloads/gpac-nightly-builds/
- [x] I give enough information for contributors to reproduce my issue (meaningful title, github labels, platform and compiler, command-line ...). I can share files anonymously with this dropbox: https://www.mediafire.com/filedrop/filedrop_hosted.php?drop=eec9e058a9486fe4e99c33021481d9e1826ca9dbc242a6cfaab0fe95da5e5d95

Detailed guidelines: http://gpac.io/2013/07/16/how-to-file-a-bug-properly/

Hello,

I follow sample code from this [issue](https://github.com/gpac/gpac/issues/2250), but if `on_rate_adaptation` return -2 for a group, the function `on_rate_adaptation` is not called for that group anymore in subsequent segments.

To demonstrate this point, I inserted a print statement at the beginning of the `on_rate_adaptation` function to print out all groups that were adapted. I returned -2 for the tile in the second row and the second column. The `group_idx` of this tile is 12.

When I run the code, the group 12 is adapted at the first video segment.
![image](https://user-images.githubusercontent.com/10344401/191764204-bc7f62bb-1dec-4e9a-82df-78c5dad67e0b.png)

But from the second segment onward, the `on_rate_adaptation` was never called for the group 12, meaning this tile was disabled for the whole video.
![image](https://user-images.githubusercontent.com/10344401/191764279-a9e2cd1a-4cb3-46c7-bcfa-c7c767a9b811.png)

Here is the [link](https://drive.google.com/file/d/1R3XYIFLFpcKtTn3BgjbNb_IM54W_XKBT/view?usp=sharing) to the mpd file and video tiles.
Here is the code I use to generate the results above:
```import datetime
import types
import sys
import time

import libgpac as gpac


print("Welcome to GPAC Python !\nVersion: " + gpac.version + "\n" + gpac.copyright_cite)

#parse our args
mem_track=0
gpac.init(mem_track)


class MyCustomDASHAlgo:
    def on_period_reset(self, type):
        print('period reset type ' + str(type))

    def on_new_group(self, group):
        print('new group ' + str(group.idx) + ' qualities ' + str(len(group.qualities)) + ' codec ' + group.qualities[0].codec + ' SRD ' + str(group.SRD.x) + 'x' + str(group.SRD.y));
        group.active = True
        if group.qualities[0].codec.startswith("hvt"):
            group.tile = True
        else:
            group.tile = False

    def on_rate_adaptation(self, group, base_group, force_low_complexity, stats):
        print (f'We are checking group_idx:{group.idx} at {(group.SRD.y, group.SRD.x)}')
        if group.tile and group.SRD.x == 384 and group.SRD.y == 384:
            print(f'We are adapting on group_idx:{group.idx},  active quality: {stats.active_quality_idx}')
            if group.active:
                print('deactivate group idx ' + str(group.idx))
                group.active = False
                return -2
            group.active = True
            print('regular quality for group idx ' + str(group.idx))

        return 0


mydash = MyCustomDASHAlgo()

#define a custom filter
class MyFilterSession(gpac.FilterSession):
    def __init__(self, flags=0, blacklist=None, nb_threads=0, sched_type=0):
        gpac.FilterSession.__init__(self, flags, blacklist, nb_threads, sched_type)

    def on_filter_new(self, f):
        if f.name == "dashin":
            print("Binding DASH algo ");
            f.bind(mydash);

#create a session
fs = MyFilterSession(0)
f1 = fs.load_src(f"http://localhost/dash/coaster2/coaster2_10x5.mpd")
f2 = fs.load("dashin")
f3 = fs.load("tileagg")
f4 = fs.load("ffdec:hevc")
#load a sink
f5 = fs.load("inspect:interleave=true:deep=true:dur=5:buffer=2000")

f2.set_source(f1)
f3.set_source(f2)
f4.set_source(f3)
f5.set_source(f4)

#run the session in blocking mode
btime = time.time()
fs.run()

print(f'Done, executing time: {time.time() - btime}')
fs.print_graph()
fs.delete()
gpac.close()
```


 Tile dropping with -2 option does not work, on_rate_adaptation function is not called
This is a GitHub Issue
repo:gpac
owner:gpac
Title :  Tile dropping with -2 option does not work, on_rate_adaptation function is not called
Issue date:

--- start body ---
Thanks for reporting your issue. Please make sure these boxes are checked before submitting your issue - thank you!

- [x] I looked for a similar issue and couldn't find any.
- [x] I tried with the latest version of GPAC. Installers available at http://gpac.io/downloads/gpac-nightly-builds/
- [x] I give enough information for contributors to reproduce my issue (meaningful title, github labels, platform and compiler, command-line ...). I can share files anonymously with this dropbox: https://www.mediafire.com/filedrop/filedrop_hosted.php?drop=eec9e058a9486fe4e99c33021481d9e1826ca9dbc242a6cfaab0fe95da5e5d95

Detailed guidelines: http://gpac.io/2013/07/16/how-to-file-a-bug-properly/

Hello,

I follow sample code from this [issue](https://github.com/gpac/gpac/issues/2250), but if `on_rate_adaptation` return -2 for a group, the function `on_rate_adaptation` is not called for that group anymore in subsequent segments.

To demonstrate this point, I inserted a print statement at the beginning of the `on_rate_adaptation` function to print out all groups that were adapted. I returned -2 for the tile in the second row and the second column. The `group_idx` of this tile is 12.

When I run the code, the group 12 is adapted at the first video segment.
![image](https://user-images.githubusercontent.com/10344401/191764204-bc7f62bb-1dec-4e9a-82df-78c5dad67e0b.png)

But from the second segment onward, the `on_rate_adaptation` was never called for the group 12, meaning this tile was disabled for the whole video.
![image](https://user-images.githubusercontent.com/10344401/191764279-a9e2cd1a-4cb3-46c7-bcfa-c7c767a9b811.png)

Here is the [link](https://drive.google.com/file/d/1R3XYIFLFpcKtTn3BgjbNb_IM54W_XKBT/view?usp=sharing) to the mpd file and video tiles.
Here is the code I use to generate the results above:
```import datetime
import types
import sys
import time

import libgpac as gpac


print("Welcome to GPAC Python !\nVersion: " + gpac.version + "\n" + gpac.copyright_cite)

#parse our args
mem_track=0
gpac.init(mem_track)


class MyCustomDASHAlgo:
    def on_period_reset(self, type):
        print('period reset type ' + str(type))

    def on_new_group(self, group):
        print('new group ' + str(group.idx) + ' qualities ' + str(len(group.qualities)) + ' codec ' + group.qualities[0].codec + ' SRD ' + str(group.SRD.x) + 'x' + str(group.SRD.y));
        group.active = True
        if group.qualities[0].codec.startswith("hvt"):
            group.tile = True
        else:
            group.tile = False

    def on_rate_adaptation(self, group, base_group, force_low_complexity, stats):
        print (f'We are checking group_idx:{group.idx} at {(group.SRD.y, group.SRD.x)}')
        if group.tile and group.SRD.x == 384 and group.SRD.y == 384:
            print(f'We are adapting on group_idx:{group.idx},  active quality: {stats.active_quality_idx}')
            if group.active:
                print('deactivate group idx ' + str(group.idx))
                group.active = False
                return -2
            group.active = True
            print('regular quality for group idx ' + str(group.idx))

        return 0


mydash = MyCustomDASHAlgo()

#define a custom filter
class MyFilterSession(gpac.FilterSession):
    def __init__(self, flags=0, blacklist=None, nb_threads=0, sched_type=0):
        gpac.FilterSession.__init__(self, flags, blacklist, nb_threads, sched_type)

    def on_filter_new(self, f):
        if f.name == "dashin":
            print("Binding DASH algo ");
            f.bind(mydash);

#create a session
fs = MyFilterSession(0)
f1 = fs.load_src(f"http://localhost/dash/coaster2/coaster2_10x5.mpd")
f2 = fs.load("dashin")
f3 = fs.load("tileagg")
f4 = fs.load("ffdec:hevc")
#load a sink
f5 = fs.load("inspect:interleave=true:deep=true:dur=5:buffer=2000")

f2.set_source(f1)
f3.set_source(f2)
f4.set_source(f3)
f5.set_source(f4)

#run the session in blocking mode
btime = time.time()
fs.run()

print(f'Done, executing time: {time.time() - btime}')
fs.print_graph()
fs.delete()
gpac.close()
```


--- end body ---
