unsigned char* psshdata,
void* userdata);
static void GstDecodedVideoBufferCb_(GstElement* element,
- GstBuffer* buffer, GstPad* pad,
- void* userdata);
+ GstBuffer* buffer, GstPad* pad,
+ void* userdata);
static AttributesByElement InitAttributeByElementType_();
static GstPadProbeReturn GstSrcPadProbeBlockCb_(GstPad* pad,
GstPadProbeInfo* info,
bool GetActiveTrack(const std::vector<Track>& track_list, const TrackType type,
Track* track) {
if (!track) return false;
- auto find_target = [type](Track item)->bool {
- if (item.type == type && item.active) {
+ for (const auto& item : track_list) {
+ if (item.type == type && item.active == true) {
+ *track = item;
+ // TRACKRENDERER_INFO("tracktype : %d, index : %d", track->type, track->index);
return true;
- } else {
- return false;
}
- };
- auto target = std::find_if(track_list.begin(), track_list.end(), find_target);
- if (target == track_list.end()) return false; // There is no target.
- *track = *target;
- // TRACKRENDERER_INFO("tracktype : %d, index : %d", track->type, track->index);
- return true;
+ }
+ return false;
}
bool GetActiveTrackList(const std::vector<Track>& tracklist,
return kSuccess;
}
+using TrackType = plusplayer::trackrenderer::TrackType;
+
int trackrenderer_deactivate(TrackRendererHandle handle,
TrackRendererTrackType type) {
auto priv = static_cast<TrackRendererPrivPtr>(handle);
if (!priv) return kFailed;
- if (priv->renderer->Deactivate(
- plusplayer::trackrenderer::capi_utils::ConvertToTrackType(type)) ==
- false) {
+
+ TrackType track_type = plusplayer::trackrenderer::capi_utils::ConvertToTrackType(type);
+ if (track_type >= TrackType::kTrackTypeMax)
return kFailed;
- }
+
+ if (priv->renderer->Deactivate(track_type) == false)
+ return kFailed;
+
return kSuccess;
}
+
int trackrenderer_activate(TrackRendererHandle handle,
TrackRendererTrackType type,
TrackRendererTrack* trackinfo) {
auto priv = static_cast<TrackRendererPrivPtr>(handle);
if (!priv) return kFailed;
- // TODO(sy0207.ju):MakeTrack return vector. use magic number.
+
auto tracks = plusplayer::trackrenderer::capi_utils::MakeTrack(trackinfo, 1);
- if (priv->renderer->Activate(
- plusplayer::trackrenderer::capi_utils::ConvertToTrackType(type),
- tracks.front()) == false) {
+ TrackType track_type = plusplayer::trackrenderer::capi_utils::ConvertToTrackType(type);
+ if (track_type >= TrackType::kTrackTypeMax)
return kFailed;
- }
+
+ if (priv->renderer->Activate(track_type, tracks.front()) == false)
+ return kFailed;
+
return kSuccess;
}
data->index, data->buffer, data->caps);
#endif
- SubmitStatus status;
+ SubmitStatus status = SubmitStatus::kSuccess;
if (priv->renderer->SubmitPacket(std::move(inputbuffer), &status) == false) {
return kFailed;
}
data->index, data->buffer, data->caps, false);
#endif
- SubmitStatus status;
+ SubmitStatus status = SubmitStatus::kSuccess;
if (priv->renderer->SubmitPacket(std::move(inputbuffer), &status) == false) {
if (retval) {
*retval = ConvertToTrackRendererSubmitStatus(status);