.opts = PO_EXPERT,
.get_opts = codec_profile_class_get_opts,
.off = offsetof(tvh_codec_profile_libvpx_t, cpu_used),
- .intextra = INTEXTRA_RANGE(0, 15, 1),
+ .intextra = INTEXTRA_RANGE(-16, 16, 1),
.def.i = 8,
},
{
if (token == NULL)
break;
if (!strcasecmp(token, txtname))
- return 0; /* copy */
+ return 0; /* do not copy */
}
}
cont:
return -1;
}
self->type = ssc->ssc_type = codec_id2streaming_component_type(ocodec->id);
+ if (ssc->ssc_type == SCT_UNKNOWN) {
+ tvh_stream_log(self, LOG_ERR, "unable to translate AV type %s [%d] to SCT!", ocodec->name, ocodec->id);
+ }
ssc->ssc_gh = NULL;
return 0;
}
TVHAudioCodecProfile *aprofile;
TVHStream *stream = NULL;
int indexes[ss_src->ss_num_components];
- int i, j, count;
+ int i, j, k, count;
int video_index = -1;
int audio_index = -1;
int audio_pindex[3] = { -1, -1, -1 };
ss->ss_pcr_pid = ss_src->ss_pcr_pid;
ss->ss_pmt_pid = ss_src->ss_pmt_pid;
service_source_info_copy(&ss->ss_si, &ss_src->ss_si);
- ss->ss_num_components = count;
- for (j = 0; j < count; j++) {
+ for (j = k = 0; j < count; j++) {
i = indexes[j];
ssc_src = &ss_src->ss_components[i];
- ssc = &ss->ss_components[j];
+ ssc = &ss->ss_components[k];
assert(ssc);
media_type = ssc_get_media_type(ssc_src);
assert(media_type != AVMEDIA_TYPE_UNKNOWN);
tvh_ssc_log(ssc_src, LOG_INFO, "==> Using profile %s", self,
tvh_codec_profile_get_name(profile));
SLIST_INSERT_HEAD(&self->streams, stream, link);
+ k++;
} else {
- memset(ssc, 0, sizeof(*ssc));
indexes[j] = -1;
continue;
}
}
+ ss->ss_num_components = k;
for (i = 0; i < ss_src->ss_num_components; i++) {
for (j = 0; j < count; j++) {
if (i == indexes[j])