|
|
|
@ -896,7 +896,7 @@ static int new_stream_subtitle(Muxer *mux, const OptionsContext *o, |
|
|
|
|
|
|
|
|
|
static int |
|
|
|
|
ost_bind_filter(const Muxer *mux, MuxStream *ms, OutputFilter *ofilter, |
|
|
|
|
const OptionsContext *o, char *filters, |
|
|
|
|
const OptionsContext *o, |
|
|
|
|
AVRational enc_tb, enum VideoSyncMethod vsync_method, |
|
|
|
|
int keep_pix_fmt, int autoscale, int threads_manual, |
|
|
|
|
const ViewSpecifier *vs) |
|
|
|
@ -904,6 +904,7 @@ ost_bind_filter(const Muxer *mux, MuxStream *ms, OutputFilter *ofilter, |
|
|
|
|
OutputStream *ost = &ms->ost; |
|
|
|
|
AVCodecContext *enc_ctx = ost->enc->enc_ctx; |
|
|
|
|
char name[16]; |
|
|
|
|
char *filters = NULL; |
|
|
|
|
int ret; |
|
|
|
|
|
|
|
|
|
OutputFilterOptions opts = { |
|
|
|
@ -985,7 +986,12 @@ ost_bind_filter(const Muxer *mux, MuxStream *ms, OutputFilter *ofilter, |
|
|
|
|
return ret; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
ret = ost_get_filters(o, mux->fc, ost, &filters); |
|
|
|
|
if (ret < 0) |
|
|
|
|
return ret; |
|
|
|
|
|
|
|
|
|
if (ofilter) { |
|
|
|
|
av_assert0(!filters); |
|
|
|
|
ost->filter = ofilter; |
|
|
|
|
ret = ofilter_bind_enc(ofilter, ms->sch_idx_enc, &opts); |
|
|
|
|
} else { |
|
|
|
@ -1188,7 +1194,7 @@ static int ost_add(Muxer *mux, const OptionsContext *o, enum AVMediaType type, |
|
|
|
|
AVRational enc_tb = { 0, 0 }; |
|
|
|
|
enum VideoSyncMethod vsync_method = VSYNC_AUTO; |
|
|
|
|
const char *bsfs = NULL, *time_base = NULL, *codec_tag = NULL; |
|
|
|
|
char *filters = NULL, *next; |
|
|
|
|
char *next; |
|
|
|
|
double qscale = -1; |
|
|
|
|
|
|
|
|
|
st = avformat_new_stream(oc, NULL); |
|
|
|
@ -1526,15 +1532,9 @@ static int ost_add(Muxer *mux, const OptionsContext *o, enum AVMediaType type, |
|
|
|
|
if (ret < 0) |
|
|
|
|
goto fail; |
|
|
|
|
|
|
|
|
|
if (type == AVMEDIA_TYPE_VIDEO || type == AVMEDIA_TYPE_AUDIO) { |
|
|
|
|
ret = ost_get_filters(o, oc, ost, &filters); |
|
|
|
|
if (ret < 0) |
|
|
|
|
goto fail; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (ost->enc && |
|
|
|
|
(type == AVMEDIA_TYPE_VIDEO || type == AVMEDIA_TYPE_AUDIO)) { |
|
|
|
|
ret = ost_bind_filter(mux, ms, ofilter, o, filters, enc_tb, vsync_method, |
|
|
|
|
ret = ost_bind_filter(mux, ms, ofilter, o, enc_tb, vsync_method, |
|
|
|
|
keep_pix_fmt, autoscale, threads_manual, vs); |
|
|
|
|
if (ret < 0) |
|
|
|
|
goto fail; |
|
|
|
|