From: Jeongyoon Nam Date: Thu, 12 May 2022 00:14:27 +0000 (+0900) Subject: [0.0.9] set the decoder's caps to ones from its srcpad if there is no parser X-Git-Tag: submit/tizen/20220524.092710^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F05%2F274905%2F4;p=platform%2Fcore%2Fmultimedia%2Ftrackrenderer.git [0.0.9] set the decoder's caps to ones from its srcpad if there is no parser Change-Id: Id408ec9d1a2185e3afc1812de42b01de52b56c66 --- diff --git a/packaging/libtrackrenderer.spec b/packaging/libtrackrenderer.spec index e5e63b7..39f9fbc 100644 --- a/packaging/libtrackrenderer.spec +++ b/packaging/libtrackrenderer.spec @@ -1,6 +1,6 @@ Name: libtrackrenderer Summary: new multimedia streaming player trackrenderer -Version: 0.0.8 +Version: 0.0.9 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/trackrenderer.cpp b/src/trackrenderer.cpp index 01cbb63..ede7ff1 100644 --- a/src/trackrenderer.cpp +++ b/src/trackrenderer.cpp @@ -1024,19 +1024,23 @@ bool TrackRenderer::CreateVideoPipeline_(const Track* track) { if (internal::IsDecryptorElementNecessary(drm_property_)) { auto caps_for_parser = caps_builder_.BuildOrgMediaType(*track, internal::IsDrmEmeElementNecessary( drm_property_, track->mimetype)); - pipeline_->FactoryMake(Elements::kParseVideo, (GstCaps*)caps_for_parser.GetCaps_(), - GST_ELEMENT_FACTORY_TYPE_PARSER, NULL); + if (!pipeline_->FactoryMake(Elements::kParseVideo, (GstCaps*)caps_for_parser.GetCaps_(), + GST_ELEMENT_FACTORY_TYPE_PARSER, NULL)) + TRACKRENDERER_ERROR("fail to make parser"); } else { - pipeline_->FactoryMake(Elements::kParseVideo, (GstCaps*)caps.GetCaps_(), - GST_ELEMENT_FACTORY_TYPE_PARSER, NULL); + if (!pipeline_->FactoryMake(Elements::kParseVideo, (GstCaps*)caps.GetCaps_(), + GST_ELEMENT_FACTORY_TYPE_PARSER, NULL)) + TRACKRENDERER_ERROR("fail to make parser"); } auto parse_caps = gstguard::make_guard(pipeline_->GetSrcPadCaps(Elements::kParseVideo)); - if (!pipeline_->FactoryMake(Elements::kDecVideo, (GstCaps*)parse_caps.get(), + if (!pipeline_->FactoryMake(Elements::kDecVideo, + static_cast(parse_caps ? parse_caps.get() : caps.GetCaps_()), GST_ELEMENT_FACTORY_TYPE_DECODER, NULL)) { const ErrorType err = ErrorType::kNotSupportedVideoCodec; + TRACKRENDERER_ERROR("fail to make decoder"); eventlistener_->OnError(err); return false; }