Lines Matching refs:tee_slave

82 static inline int parse_slave_failure_policy_option(const char *opt, TeeSlave *tee_slave)
85 tee_slave->on_fail = DEFAULT_SLAVE_FAILURE_POLICY;
88 tee_slave->on_fail = ON_SLAVE_FAILURE_ABORT;
91 tee_slave->on_fail = ON_SLAVE_FAILURE_IGNORE;
95 tee_slave->on_fail = ON_SLAVE_FAILURE_ABORT;
99 static int parse_slave_fifo_policy(const char *use_fifo, TeeSlave *tee_slave)
104 tee_slave->use_fifo = 1;
106 tee_slave->use_fifo = 0;
113 static int parse_slave_fifo_options(const char *fifo_options, TeeSlave *tee_slave)
115 return av_dict_parse_string(&tee_slave->fifo_options, fifo_options, "=", ":", 0);
118 static int close_slave(TeeSlave *tee_slave)
124 av_dict_free(&tee_slave->fifo_options);
125 avf = tee_slave->avf;
129 if (tee_slave->header_written)
132 if (tee_slave->bsfs) {
134 av_bsf_free(&tee_slave->bsfs[i]);
136 av_freep(&tee_slave->stream_map);
137 av_freep(&tee_slave->bsfs);
141 tee_slave->avf = NULL;
156 static int open_slave(AVFormatContext *avf, char *slave, TeeSlave *tee_slave)
189 parse_slave_failure_policy_option(on_fail, tee_slave),
193 parse_slave_fifo_policy(use_fifo, tee_slave),
197 parse_slave_fifo_options(fifo_options_str, tee_slave), ;);
205 if (tee_slave->use_fifo) {
213 ret = av_dict_set(&tee_slave->fifo_options, "format_opts", format_options_str,
220 ret = av_dict_set(&tee_slave->fifo_options, "fifo_format", format,
228 options = tee_slave->fifo_options;
229 tee_slave->fifo_options = NULL;
232 tee_slave->use_fifo ? "fifo" :format, filename);
235 tee_slave->avf = avf2;
245 tee_slave->stream_map = av_calloc(avf->nb_streams, sizeof(*tee_slave->stream_map));
246 if (!tee_slave->stream_map) {
281 tee_slave->stream_map[i] = -1;
285 tee_slave->stream_map[i] = stream_count++;
309 tee_slave->header_written = 1;
311 tee_slave->bsfs = av_calloc(avf2->nb_streams, sizeof(*tee_slave->bsfs));
312 if (!tee_slave->bsfs) {
343 if (tee_slave->bsfs[i]) {
349 ret = av_bsf_list_parse_str(entry->value, &tee_slave->bsfs[i]);
363 int target_stream = tee_slave->stream_map[i];
367 if (!tee_slave->bsfs[target_stream]) {
369 ret = av_bsf_get_null_filter(&tee_slave->bsfs[target_stream]);
378 tee_slave->bsfs[target_stream]->time_base_in = avf->streams[i]->time_base;
379 ret = avcodec_parameters_copy(tee_slave->bsfs[target_stream]->par_in,
384 ret = av_bsf_init(tee_slave->bsfs[target_stream]);
433 TeeSlave *tee_slave = &tee->slaves[slave_idx];
437 close_slave(tee_slave);
442 } else if (tee_slave->on_fail == ON_SLAVE_FAILURE_ABORT) {