Модераторы: Snowy, Alexeis, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Lame, Передача параметров в Lame 
V
    Опции темы
Toboom
Дата 4.10.2007, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 16.12.2005

Репутация: нет
Всего: нет



Народы!
Ни фига не понимаю. Вопрос, конечно, может и не мультимедийный,
но речь идет о Lame компрессоре.
Когда-то я уже им пользовался и все было в порядке, а сечас пишу новый проект
и получается фигня: я хочу писать 32 кбита, а реально пишется нечто с переменным
битрейтом и звоном каким-то.
Т.е. я так понимаю DLL-ка неправильно понимает передаваемые мной параметры.
А что не так не могу въехать. 

Объявления:

 
Код

 PMp3Rec = ^TMp3Rec;
  {$A-}
  TMp3Rec = Record
  case dwConfig: Cardinal of
  BE_CONFIG_MP3:(
       dwSampleRate: Cardinal;
       byMode: Byte;
       wBitrate: Word;
       bPrivate, bCRC, bCopyright, bOriginal: boolean);
  End;
  {$A+}

Function beInitStream(Config: Pmp3Rec; dwSamples: Pointer;
   dwBufferSize: Pointer; PStream: PHBE_Stream): Cardinal; CDecl ;
Function beEncodeChunk1(PStream: HBE_Stream; nSamples: Cardinal;
   pSamples: Pointer; pOutput: Pointer; pdwOutput: Pointer): Cardinal; CDecl;
и т.д.


Implementation

  Function beInitStream; external 'lame_enc.dll';
  Function beEncodeChunk; external 'lame_enc.dll';

И собственно использование:

Var Mp3: TMP3Rec;
...

  With Mp3 Do
  begin
    dwConfig:=BE_CONFIG_MP3;   {BE_CONFIG_MP3 = 0}
    dwSampleRate:=BaseRec.FDiscr; {44100}
    If BaseRec.StereoMode Then byMode:=BE_MP3_MODE_STEREO{0}
                          Else byMode:=BE_MP3_MODE_MONO;{3}
    wBitrate:=BaseRec.BitRate {32};
    bPrivate:=False; bCRC:=False; bCopyright:=False;  bOriginal:=False;
  end;

  Res:=beInitStream(@Mp3, @dwSamples, @dwBufferSize, @MStream[CurEncBuf^.Left]);

  Res:=beEncodeChunk(MStream[CurEncBuf^.Left], dwSamples, A, M, @Z);


Т.е. штука-то работает, тока непонятно как её заставить делать то, что нужно.
Впечатление, что неправильно передается эта самая TMP3Rec. Но чего тут не так
я не пойму. 
Заранее благодарен.

Это сообщение отредактировал(а) Alexeis - 4.10.2007, 17:15
PM MAIL   Вверх
Alix
Дата 5.10.2007, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

Репутация: 1
Всего: 23



Я нашел такое определение 
Код
TMP3 = packed record
  dwSampleRate     : LongWord;
  byMode           : Byte;
  wBitRate         : Word;
  bPrivate         : LongWord;
  bCRC             : LongWord;
  bCopyright       : LongWord;
  bOriginal        : LongWord;
end;

MP3export.pas
Попробуй поставить в определение записи packed и последние 4 элемента - типа longword.

Это сообщение отредактировал(а) Alix - 5.10.2007, 15:05


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
Toboom
Дата 5.10.2007, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 16.12.2005

Репутация: нет
Всего: нет



Спасибо!
Я тут уже переконопатил кучу проектов и таки добился своего.
Принципиальной разницы с моими определениями я не вижу, но работает.
Слава Богу!
smile)

Успехов!
PM MAIL   Вверх
Alix
Дата 5.10.2007, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

Репутация: 1
Всего: 23



Цитата
Принципиальной разницы с моими определениями я не вижу, но работает.

Как это, не вижу? Запись является пакованой, и во-вторых, как я говорил, типы последних четырех элементов - 4х байтовые, а не однобайтвые как было у тебя


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
Toboom
Дата 8.10.2007, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 16.12.2005

Репутация: нет
Всего: нет



Не понятно мне как оно у меня раньше работало. smile
Сейчас объявления такие:
 
Код

 TMP3 = packed record
           dwSampleRate     : LongWord;
           byMode           : Byte;
           wBitRate         : Word;
           bPrivate         : LongWord;
           bCRC             : LongWord;
           bCopyright       : LongWord;
           bOriginal        : LongWord;
         end;

  TFormat = packed record
            case byte of
              1 : (mp3           : TMP3);
              2 : (lhv1          : TLHV1);
              3 : (aac           : TAAC);
            end;

  TBE_CONFIG = packed record
                 dwConfig   : LongWord; // BE_CONFIG_MP3 or BE_CONFIG_LAME
                 format     : TFormat;
               end;


Ещё раз спасибо.

Успехов!


M
Alexeis
Модератор: используйте подсветку кода http://forum.vingrad.ru/index.php?show_typ...howtopic=126445

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Звук, графика и видео"
Girder
Snowy
Alexeis

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • По вопросам разработки игр стоит заглянуть сюда

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.