crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> чтение видео в ffmpeg
Андрей Егорович
  опции профиля:
сообщение 20.8.2013, 16:47
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 26.7.2012
Пользователь №: 3470

Спасибо сказали: 0 раз(а)




Репутация:   0  


Здравствуйте.
Используя ffmpeg в visual studio 2008 пытаюсь прочесть видео используя чуть переделанный пример из http://svn.perian.org/ffmpeg/libavcodec/api-example.c, но после сохранения изображение получается очень сильно искажённым.
Функции вытаскиваю из dll
...
static AVCodec * (*find_decoder) (enum AVCodecID id);
static AVCodecContext *(*alloc_context)(AVCodec *);
static void (*init_packet)(AVPacket *pkt);
static AVFrame* (*alloc_frame)(void);
static int (*codec_open2)(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options);
static int (*codec_decode_video2) (AVCodecContext *avctx, AVFrame *picture, int *got_picture_ptr, const AVPacket *avpkt);
static void (*avcodec_init)(void);
...
HINSTANCE h = LoadLibrary(TEXT("avcodec-55.dll"));
     find_decoder = NULL;
     alloc_context = NULL;
     init_packet = NULL;
     alloc_frame = NULL;
     codec_open2 = NULL;
     codec_decode_video2 = NULL;
     avcodec_init = NULL;

     if (!h) {
         return false;
     }

     find_decoder = (AVCodec *(*)(enum AVCodecID id))GetProcAddress(h, "avcodec_find_decoder");
     alloc_context = (AVCodecContext *(*)(AVCodec *))GetProcAddress(h, "avcodec_alloc_context3");
     alloc_frame = (AVFrame *(*)(void))GetProcAddress(h, "avcodec_alloc_frame");
     init_packet = (void (*)(AVPacket *))GetProcAddress(h, "av_init_packet");
     codec_open2 = (int (*)(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options))GetProcAddress(h, "avcodec_open2");
     codec_decode_video2 = (int (*) (AVCodecContext *avctx, AVFrame *picture, int *got_picture_ptr, const AVPacket *avpkt))GetProcAddress(h, "avcodec_decode_video2");
     avcodec_init = (void (*)(void))GetProcAddress(h, "avcodec_init");


Сообщение отредактировал ViGOur - 20.8.2013, 16:57
Причина редактирования: Учимся использовать тег CODE
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.11.2024, 14:21