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: https://github.com/jadarve/gpac_experiments/blob/main/code_experiments/create_session.c

When using the C-api, there is a small inconsistency in the `gf_fs_load_filter` when passing an empty string as filter name.

```c
#include <stdio.h>
#include <gpac/filters.h>

int main(int argc, const char** argv) {

    GF_FilterSession *session = gf_fs_new_defaults(0u);
    if (session == NULL)
    {
        fprintf(stderr, "Failed to create GPAC session\n");
        return EXIT_FAILURE;
    }

    GF_Err gf_err = GF_OK;
    GF_Filter *filter_ptr = gf_fs_load_filter(session, "", &gf_err);

    const char* err_str = gf_error_to_string(gf_err);
    printf("Error code %d: %s\n", gf_err, err_str);


    if (filter_ptr == NULL) {
        printf("Filter ptr NULL\n");
    } else {
        printf("Filter loaded\n");
    }

    return EXIT_SUCCESS;
}
```

The code above prints:

``` 
Error code 0: No Error
Filter ptr NULL
```

With an extra log line `Missing filter name in` produced by gpac logs.

Instead, if I run the code above with `GF_Filter *filter_ptr = gf_fs_load_filter(session, "some_unknown_filter", &gf_err);`, the output is:

```
Error code -11: Filter not found for the desired type
Filter ptr NULL
```
Inconsistent error code on gf_fs_load_filter()
This is a GitHub Issue
repo:gpac
owner:gpac
Title : Inconsistent error code on gf_fs_load_filter()
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: https://github.com/jadarve/gpac_experiments/blob/main/code_experiments/create_session.c

When using the C-api, there is a small inconsistency in the `gf_fs_load_filter` when passing an empty string as filter name.

```c
#include <stdio.h>
#include <gpac/filters.h>

int main(int argc, const char** argv) {

    GF_FilterSession *session = gf_fs_new_defaults(0u);
    if (session == NULL)
    {
        fprintf(stderr, "Failed to create GPAC session\n");
        return EXIT_FAILURE;
    }

    GF_Err gf_err = GF_OK;
    GF_Filter *filter_ptr = gf_fs_load_filter(session, "", &gf_err);

    const char* err_str = gf_error_to_string(gf_err);
    printf("Error code %d: %s\n", gf_err, err_str);


    if (filter_ptr == NULL) {
        printf("Filter ptr NULL\n");
    } else {
        printf("Filter loaded\n");
    }

    return EXIT_SUCCESS;
}
```

The code above prints:

``` 
Error code 0: No Error
Filter ptr NULL
```

With an extra log line `Missing filter name in` produced by gpac logs.

Instead, if I run the code above with `GF_Filter *filter_ptr = gf_fs_load_filter(session, "some_unknown_filter", &gf_err);`, the output is:

```
Error code -11: Filter not found for the desired type
Filter ptr NULL
```
--- end body ---

The issue describes an inconsistency in error handling within the `gf_fs_load_filter` function of the GPAC library. When an empty string is passed as the filter name, the function returns a success code (0) instead of an error code, despite the fact that the filter cannot be loaded. This could lead to confusion for developers using the API, as they may assume that a successful return code indicates that the filter was loaded correctly, when in fact it was not. This inconsistency does not represent a security vulnerability but rather a bug in error handling.