Hi.
Sorry. MailTransport broke my mail.
I create video stream restored from picutures.
[code]
static AVRational grabImgTimeBase = {1, 100000};
static AVRational outTimeBase = {1, 25};
....
int pix_fmt;
if (anImg->gim_format == mmioFOURCC('Y', '8', '0', '0'))
pix_fmt = PIX_FMT_GRAY8;
else if (anImg->gim_format == mmioFOURCC('U', 'Y', 'V', 'Y'))
pix_fmt = PIX_FMT_UYVY422;
else if (anImg->gim_format == mmioFOURCC('Y', 'U', 'Y', '2'))
pix_fmt = PIX_FMT_YUYV422;
else {
if (!anImg->gim_format) {
if (anImg->gim_bpp == 32)
pix_fmt = PIX_FMT_RGB32;
else if (anImg->gim_bpp == 32)
pix_fmt = PIX_FMT_RGB24;
else if (anImg->gim_bpp == 16)
pix_fmt = PIX_FMT_RGB555;
else
return VA_ERROR_UNKNOWN;
}
else
return VA_ERROR_UNKNOWN;
}
avpicture_fill((AVPicture *)aChannel->frm_.FF()
, (uint8_t
*)(pix_fmt==PIX_FMT_GRAY8?anImg->gim_image->img_base:anImg->gim_data)
, pix_fmt
, anImg->gim_image->img_width
, anImg->gim_image->img_height);
bo_tm cd;
memset(&cd, 0, sizeof(tm));
cd.c.tm_year = anImg->gim_time.wYear-1900;
cd.c.tm_mon = anImg->gim_time.wMonth-1;
cd.c.tm_mday = anImg->gim_time.wDay;
cd.c.tm_hour = anImg->gim_time.wHour;
cd.c.tm_min = anImg->gim_time.wMinute;
cd.c.tm_sec = anImg->gim_time.wSecond;
cd.tm_usec = anImg->gim_time.wMilliseconds*1000; // tm_usec - в
микросекундах
int64_t curAVTime = av_gettime();
aChannel->frm_.FF()->pts = av_rescale_q(BoMkgmtime(&cd)
, grabImgTimeBase, outTimeBase);
[/code]
Then I encode pictures to mpeg4 and used for write avi muxer.
When by default AVCodecContext filed block_align set to 0 avi muxer begin
endlessness loop.
[code]
while(enc->block_align==0 && pkt->dts != AV_NOPTS_VALUE && pkt->dts >
avi->packet_count[stream_index]){
AVPacket empty_packet;
av_init_packet(&empty_packet);
empty_packet.size= 0;
empty_packet.data= NULL;
empty_packet.stream_index= stream_index;
avi_write_packet(s, &empty_packet);
// av_log(s, AV_LOG_DEBUG, "dup %"PRId64" %d\n", pkt->dts,
avi->packet_count[stream_index]);
}
[/code]
What I do wrong?
Vasiliy.
-- реклама -----------------------------------------------------------
http://FREEhost.com.ua - доступный хостинг, домен в подарок
_______________________________________________
libav-user mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/libav-user