Hi 2 all.
I creating my DirectShow filter for input video stream compresing. After
receive data to input pin I probaly convert UYVY422 data to YUV420P, but
sws_scale crashed with Access violation bag.
Getting data from input pin:
[code]
IMediaSample *sample
= *((DirectShowParamter *)(ctx->priv_data))->sample_;
ASSERT(sample);
int64_t curtime = av_gettime();
if (av_new_packet(pkt, sample->GetActualDataLength())<0)
return AVERROR_IO;
pkt->pts = curtime;
BYTE *dataPtr;
sample->GetPointer(&dataPtr);
// TODO попробовать не использовать копирование.
memcpy(pkt->data, dataPtr, sample->GetActualDataLength());
//pkt->data = dataPtr;
return sample->GetActualDataLength();
[/code]
Getting context
[code]
swsCtx_ = sws_getContext(384, 272, PIX_FMT_UYVY422
, 384, 272, PIX_FMT_RGB24, SWS_BICUBIC, 0, 0,
0); [/code]
Scaling
[code]
sws_scale(swsCtx_, ((Codecs::FFMPEGFrame
*)pkt)->FF()->data
, ((Codecs::FFMPEGFrame *)pkt)->FF()->linesize
, 0, 272, opkt.FF()->data, opkt.FF()->linesize);
[/code]
-- реклама -----------------------------------------------------------
Поторопись зарегистрировать самый короткий почтовый адрес @i.ua
http://mail.i.ua/reg - и получи 1Gb для хранения писем
_______________________________________________
libav-user mailing list
[email protected]
https://lists.mplayerhq.hu/mailman/listinfo/libav-user