使用Size2u代替width,height

This commit is contained in:
2025-03-29 15:35:01 +08:00
parent 5248f60e55
commit f4706aa941
6 changed files with 68 additions and 53 deletions

View File

@@ -4,17 +4,16 @@ extern "C"
#include<libavutil/imgutils.h>
}
FrameConvert::FrameConvert(SwsContext *sc,enum AVPixelFormat dst,enum AVPixelFormat src,const uint32_t w,const uint32_t h)
FrameConvert::FrameConvert(SwsContext *sc,enum AVPixelFormat dst,enum AVPixelFormat src,const Size2u &src_size)
{
ctx=sc;
dst_fmt=dst;
src_fmt=src;
width=w;
height=h;
frame_size=src_size;
av_image_alloc(dst_data,dst_linesize,w,h,dst,1);
av_image_alloc(dst_data,dst_linesize,frame_size.width,frame_size.height,dst,1);
}
FrameConvert::~FrameConvert()
@@ -27,18 +26,18 @@ void FrameConvert::Convert(const FrameData &src_data,const FrameLinesize &src_li
{
sws_scale( ctx,
src_data,src_linesize,
0,height,
0,frame_size.height,
dst_data,dst_linesize);
}
FrameConvert *InitFrameConvert(enum AVPixelFormat dst,enum AVPixelFormat src,const uint32_t w,const uint32_t h)
FrameConvert *InitFrameConvert(enum AVPixelFormat dst,enum AVPixelFormat src,const Size2u &src_size)
{
SwsContext *sc=sws_getContext( w,h,src,
w,h,dst,
SWS_FAST_BILINEAR,
SwsContext *sc=sws_getContext( src_size.width,src_size.height,src,
src_size.width,src_size.height,dst,
SWS_SPLINE,
nullptr,nullptr,nullptr);
if(!sc)return(nullptr);
return(new FrameConvert(sc,dst,src,w,h));
return(new FrameConvert(sc,dst,src,src_size));
}