Золотые страницы форума GP2X Community
Новостной форум посвященный консолям GP2X
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   СудокуСудоку    Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

SDL-mixer в тестовой ПС-версии ругается

 
Начать новую тему   Ответить на тему    Список форумов GP2X Community -> Программирование: Консоли GP2X F100 F200 Wiz Caanoo
Предыдущая тема :: Следующая тема  
Автор Сообщение
Hahahoj

Site Admin


Пол: Пол:Мужской
Возраст: 44
Зарегистрирован: 08.10.2008
Сообщения: 1848

Группы: 
[ Команда сайта ]
[Модераторы Модераторы ]


СообщениеДобавлено: Чт Дек 02, 2010 4:18 pm    Заголовок сообщения: SDL-mixer в тестовой ПС-версии ругается Ответить с цитатой

Пытаюсь использовать библиотеку smpeg. Компилируется нормально, но тестовая виндовая версия на старте даёт ошибку: Точка входа в процедуру SMPEG_actualSpec не найдена в библиотеке DLL SDL_mixer.dll Собственно не видит ни одну из функций SMPEG-а вообще.
Под кену откомпилированный код просто зависает.

Прошу поделится соображениями по этому вопросу.
Нужные длл-ки в последних версиях лежат в систем32 папке, и в дубле в корневой папке проекта.

_________________
Просто Вовк
Вернуться к началу
Посмотреть профильHahahoj сейчас оффлайн  Отправить личное сообщение
ainu

Местный



Возраст: 30
Зарегистрирован: 13.11.2010
Сообщения: 133

Группы: Нет

СообщениеДобавлено: Пт Дек 03, 2010 5:53 pm    Заголовок сообщения: Ответить с цитатой

Такаже трабла в smpeg под windows-версию php (cygwin).
Под кену всё работает.
Можно код (Хотябы тестовый)?
Вернуться к началу
Посмотреть профильainu сейчас оффлайн  Отправить личное сообщение
Hahahoj

Site Admin


Пол: Пол:Мужской
Возраст: 44
Зарегистрирован: 08.10.2008
Сообщения: 1848

Группы: 
[ Команда сайта ]
[Модераторы Модераторы ]


СообщениеДобавлено: Пт Дек 03, 2010 7:42 pm    Заголовок сообщения: Ответить с цитатой

Тестовый пример накатанный на шаблон sdl-а:

Скрыто: 
Код:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <SDL.h>
#include "smpeg\smpeg.h"
#include "SDL_mixer.h"

#define IMG_NAME    "001.bmp"

/* GP2X button mapping */
enum MAP_KEY
{
   VK_UP         , // 0
   VK_UP_LEFT    , // 1
   VK_LEFT       , // 2
   VK_DOWN_LEFT  , // 3
   VK_DOWN       , // 4
   VK_DOWN_RIGHT , // 5
   VK_RIGHT      , // 6
   VK_UP_RIGHT   , // 7
   VK_START      , // 8
   VK_SELECT     , // 9
   VK_FL         , // 10
   VK_FR         , // 11
   VK_FA         , // 12
   VK_FB         , // 13
   VK_FX         , // 14
   VK_FY         , // 15
   VK_VOL_UP     , // 16
   VK_VOL_DOWN   , // 17
   VK_TAT          // 18
};

/* The screen surface, joystick device */
SDL_Surface *screen = NULL;
SDL_Joystick *joy = NULL;

void Terminate(void)
{
   SDL_Quit();
#ifdef GP2X
   chdir("/usr/gp2x");
   execl("/usr/gp2x/gp2xmenu", "/usr/gp2x/gp2xmenu", NULL);
#endif
}

int main (int argc, char *argv[])
{
   int done;
   SDL_Rect rcRect;
   SDL_Surface *bmp;

   /* Initialize SDL */
   if (SDL_Init (SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_JOYSTICK) < 0) {
      fprintf (stderr, "Couldn't initialize SDL: %s\n", SDL_GetError ());
      exit (1);
   }
   atexit (Terminate);

   SDL_ShowCursor(SDL_DISABLE);

   /* Set 320x240 16-bits video mode */
   screen = SDL_SetVideoMode (320, 240, 16, SDL_SWSURFACE);
   if (screen == NULL) {
      fprintf (stderr, "Couldn't set 320x240x16 video mode: %s\n", SDL_GetError ());
      exit (2);
   }

   /* Check and open joystick device */
   if (SDL_NumJoysticks() > 0) {
      joy = SDL_JoystickOpen(0);
      if(!joy) {
         fprintf (stderr, "Couldn't open joystick 0: %s\n", SDL_GetError ());
      }
   }

#ifdef GP2X
   /* Only use GP2X code here */
#endif

#ifdef WIN32
   /* Only use Windows code here */
#endif

    // image loading...
    bmp = SDL_LoadBMP(IMG_NAME);
   if (bmp == NULL) {
      fprintf (stderr, "Not found image. %s\n", SDL_GetError ());
      exit (3);
   }
   rcRect.x = 0;
   rcRect.y = 0;

   done = 0;



    //    .. set up the mixer audio ...
    SMPEG * mpeg;
    SMPEG_Info info;
    bool play_audio = false;

        /* Note the last parameter is zero! */
        mpeg = SMPEG_new("1.mpg", &info, 0);

        /* Play the movie, using SDL_mixer for audio */
       SMPEG_enableaudio(mpeg, 0);
       if ( play_audio ) {
                SDL_AudioSpec audiofmt;
                Uint16 format;
                int freq, channels;

                // Tell SMPEG what the audio format is //
                Mix_QuerySpec(&freq, &format, &channels);
                audiofmt.format = format;
                audiofmt.freq = freq;
                audiofmt.channels = channels;
                SMPEG_actualSpec(mpeg, &audiofmt);

                // Hook in the MPEG music mixer
                Mix_HookMusic(SMPEG_playAudioSDL, mpeg);
                SMPEG_enableaudio(mpeg, 1);
        }
        SMPEG_play(mpeg);

        while (!done)
   {
      SDL_Event event;

      /* Check for events */
      while (SDL_PollEvent (&event))
      {
         switch (event.type)
         {
            case SDL_KEYDOWN:
               /* if press Ctrl + C, terminate program */
               if ( (event.key.keysym.sym == SDLK_c) && (event.key.keysym.mod & (KMOD_LCTRL | KMOD_RCTRL)) )
                  done = 1;
               break;
            case SDL_KEYUP:
               break;
            case SDL_JOYBUTTONDOWN:
               /* if press Start button, terminate program */
               if ( event.jbutton.button == VK_START )
                  done = 1;
               break;
            case SDL_JOYBUTTONUP:
               break;
            case SDL_QUIT:
               done = 1;
               break;
            default:
               break;
         }
      }

      /* Processing */
      SDL_BlitSurface(bmp, NULL, screen, &rcRect);
      SDL_Flip(screen);
      SDL_Delay(100);
   }
   SMPEG_stop(mpeg);
                Mix_HookMusic(NULL, NULL);

   SDL_FreeSurface(bmp);
   SDL_FreeSurface(screen);
   SDL_Quit();

   return 0;
}


Не можешь кинуть кусок тестового видео, возможно на Кену у меня грабли совместимости с плеером?

_________________
Просто Вовк
Вернуться к началу
Посмотреть профильHahahoj сейчас оффлайн  Отправить личное сообщение
ainu

Местный



Возраст: 30
Зарегистрирован: 13.11.2010
Сообщения: 133

Группы: Нет

СообщениеДобавлено: Вс Дек 05, 2010 11:01 am    Заголовок сообщения: Ответить с цитатой

Цугвин версия скомпилилась, и запустилась.
ПРавда, пришлось скинуть ей вот это:
ftp://sourceware.org/pub/cygwinports/release-2/SDL/smpeg/libsmpeg0.4_0/
Отображает картинку, bmp, ни звука ни видео нет.
Вернуться к началу
Посмотреть профильainu сейчас оффлайн  Отправить личное сообщение
ainu

Местный



Возраст: 30
Зарегистрирован: 13.11.2010
Сообщения: 133

Группы: Нет

СообщениеДобавлено: Вс Дек 05, 2010 11:11 am    Заголовок сообщения: Ответить с цитатой

на caanoo тоже самое.
Вернуться к началу
Посмотреть профильainu сейчас оффлайн  Отправить личное сообщение
ainu

Местный



Возраст: 30
Зарегистрирован: 13.11.2010
Сообщения: 133

Группы: Нет

СообщениеДобавлено: Вс Дек 05, 2010 11:23 am    Заголовок сообщения: Ответить с цитатой

Испарвил коечто в коде
Код:

    bool play_audio = true;  // Было false

        /* Note the last parameter is zero! */
        mpeg = SMPEG_new("1.mpg", &info, 1);  // в конце было 0

Итого на caanoo (и на цугвине) запустилось.
На PC играет музыка из клипа (самого клипа не кажет). ПРи этом сообщает, что «Warning: incorrect audio format»
На Caanoo тоже самое, но звук ускоренный, тут уже думаю на кодеки.
Собирал так:
arm-gph-linux-gnueabi-g++ testp.c -lSDL -lSDL_mixer -lsmpeg -L/caanoo/arm-gph-linux-gnueabi/sys-root/usr/lib -I/caanoo/arm-gph-linux-gnueabi/sys-root/usr/inclide -I/caanoo/arm-gph-linux-gnueabi/sys-root/usr/include/SDL -o test.gpe
Вернуться к началу
Посмотреть профильainu сейчас оффлайн  Отправить личное сообщение
Hahahoj

Site Admin


Пол: Пол:Мужской
Возраст: 44
Зарегистрирован: 08.10.2008
Сообщения: 1848

Группы: 
[ Команда сайта ]
[Модераторы Модераторы ]


СообщениеДобавлено: Вс Дек 05, 2010 3:02 pm    Заголовок сообщения: Ответить с цитатой

Попробовал с твоими настройками компиляции - та же самая бяка, что была 8/

Код выше просто включает звук в мове

По хорошему - надо закоментить

Код:
      SDL_BlitSurface(bmp, NULL, screen, &rcRect);
      SDL_Flip(screen);
      SDL_Delay(100);


Тогда возможно что-то на экране и появится - сейчас поверху скрин умолчанческий рисует.

_________________
Просто Вовк
Вернуться к началу
Посмотреть профильHahahoj сейчас оффлайн  Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов GP2X Community -> Программирование: Консоли GP2X F100 F200 Wiz Caanoo Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы




Powered by phpBB © 2001, 2005 phpBB Group

Locations of visitors to this page