mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
vsrc_buffer: Set output size
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
ad0193bf9c
commit
a38cdfde52
2
ffmpeg.c
2
ffmpeg.c
@ -1638,7 +1638,7 @@ static int output_packet(AVInputStream *ist, int ist_index,
|
|||||||
av_vsrc_buffer_add_frame2(ost->input_video_filter, &picture,
|
av_vsrc_buffer_add_frame2(ost->input_video_filter, &picture,
|
||||||
ist->pts,
|
ist->pts,
|
||||||
sar, ist->st->codec->width, ist->st->codec->height,
|
sar, ist->st->codec->width, ist->st->codec->height,
|
||||||
ist->st->codec->pix_fmt, "0:0"); //TODO user setable params
|
ist->st->codec->pix_fmt, ""); //TODO user setable params
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,7 @@ typedef struct {
|
|||||||
enum PixelFormat pix_fmt;
|
enum PixelFormat pix_fmt;
|
||||||
AVRational time_base; ///< time_base to set in the output link
|
AVRational time_base; ///< time_base to set in the output link
|
||||||
AVRational pixel_aspect;
|
AVRational pixel_aspect;
|
||||||
|
char sws_param[256];
|
||||||
} BufferSourceContext;
|
} BufferSourceContext;
|
||||||
|
|
||||||
int av_vsrc_buffer_add_frame2(AVFilterContext *buffer_filter, AVFrame *frame,
|
int av_vsrc_buffer_add_frame2(AVFilterContext *buffer_filter, AVFrame *frame,
|
||||||
@ -53,6 +54,10 @@ int av_vsrc_buffer_add_frame2(AVFilterContext *buffer_filter, AVFrame *frame,
|
|||||||
//return -1;
|
//return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!c->sws_param[0]){
|
||||||
|
snprintf(c->sws_param, 255, "%d:%d:%s", c->w, c->h, sws_param);
|
||||||
|
}
|
||||||
|
|
||||||
if(width != c->w || height != c->h || pix_fmt != c->pix_fmt){
|
if(width != c->w || height != c->h || pix_fmt != c->pix_fmt){
|
||||||
AVFilterContext *scale= buffer_filter->outputs[0]->dst;
|
AVFilterContext *scale= buffer_filter->outputs[0]->dst;
|
||||||
AVFilterLink *link;
|
AVFilterLink *link;
|
||||||
@ -67,7 +72,7 @@ int av_vsrc_buffer_add_frame2(AVFilterContext *buffer_filter, AVFrame *frame,
|
|||||||
if(avfilter_open(&scale, f, "Input equalizer") < 0)
|
if(avfilter_open(&scale, f, "Input equalizer") < 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if((ret=avfilter_init_filter(scale, sws_param, NULL))<0){
|
if((ret=avfilter_init_filter(scale, c->sws_param, NULL))<0){
|
||||||
avfilter_free(scale);
|
avfilter_free(scale);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user