У меня очень странная проблема , и поскольку я не могу отправить код, я попытаюсь объяснить.
Это больше похоже на философскую проблему - я надеюсь, что у кого-то есть время/ знание, чтобы думать об этом.
1) У меня project.cpp выглядит примерно так:
#include <pthread.h>
#include <unistd.h>
pthread_t pplayer_thread;
void *play(void*);
int main(int argc, char **argv) {
pthread_create(&pplayer_thread, NULL, play_cb, NULL);
usleep(5000000);
return 0;
}
2) pplayer.cpp выглядит примерно так:
...
void *play_cb(void *arg) {
// this starts movie using gstreamer and exits thread
}
...
3) not_executed _from_main.cpp выглядит примерно так:
...
extern MyClass *myObj; // this is included from .h file
...
MyClass *myObj = NULL;
...
some_function() {
...
myObj = MyClass::createNew(args);
...
}
...
Все это связано с различными другими библиотеками и кучей мусора, но это в основном то, что важно.
-> Задача :
При запуске этого окна я должен увидеть окно воспроизведения видеоклипа с использованием gstreamer в течение 5 секунд -> НО я слышу толькозвук!
-> Странная вещь :
Когда я комментирую строку:
myObj = MyClass::createNew(args);
и запускаю снова ->Я также вижу окно gstreamer (все в порядке)
-> Примечания :
это может быть как-то связано с:
- процесс связывания и природа MyClass и его родительского класса (мои лучшие предположения)
- "статическое" ключевое слово
- "внешнее" ключевое слово
- C и C ++ смешивание
-> Еще раз спрашиваю :
Какможет ли небольшое изменение в коде, который никогда не выполняется, иметь значение?
(пожалуйста, помогите)