CreateAppSrc_(kTrackTypeAudio, track->mimetype);
auto caps = caps_builder_.Build(*track, false);
- pipeline_->FactoryMake(Elements::kParseAudio, (GstCaps*)caps.GetCaps_(),
- GST_ELEMENT_FACTORY_TYPE_PARSER, NULL);
+ if (!pipeline_->FactoryMake(Elements::kParseAudio, (GstCaps*)caps.GetCaps_(),
+ GST_ELEMENT_FACTORY_TYPE_PARSER, NULL))
+ TRACKRENDERER_ERROR("fail to make parser");
auto parse_caps =
gstguard::make_guard(pipeline_->GetSrcPadCaps(Elements::kParseAudio));
- if (!pipeline_->FactoryMake(Elements::kDecAudio, (GstCaps*)parse_caps.get(),
+ if (!pipeline_->FactoryMake(Elements::kDecAudio,
+ static_cast<GstCaps*>(parse_caps ? parse_caps.get() : caps.GetCaps_()),
GST_ELEMENT_FACTORY_TYPE_DECODER, NULL)) {
const ErrorType err = ErrorType::kNotSupportedAudioCodec;
+ TRACKRENDERER_ERROR("fail to make decoder");
eventlistener_->OnError(err);
return false;
}
if (track_util::IsValidCodecDataSize(
trackrenderertrack[index].codec_data_len)) {
track.codec_data = std::shared_ptr<char>(
- new char[trackrenderertrack[index].codec_data_len]);
+ new char[trackrenderertrack[index].codec_data_len],
+ std::default_delete<char[]>());
memcpy(track.codec_data.get(), trackrenderertrack[index].codec_data,
trackrenderertrack[index].codec_data_len);
track.codec_data_len = trackrenderertrack[index].codec_data_len;