OMX_ERRORTYPE
graph::httpservops::switch_tunnel (const int tunnel_id,
    const OMX_COMMANDTYPE to_disabled_or_enabled)
{
  OMX_ERRORTYPE rc = OMX_ErrorNone;

  assert (to_disabled_or_enabled == OMX_CommandPortDisable
          || to_disabled_or_enabled == OMX_CommandPortEnable);

  if (to_disabled_or_enabled == OMX_CommandPortDisable)
  {
    rc = tiz::graph::util::disable_tunnel (handles_, tunnel_id);
  }
  else
  {
    rc = tiz::graph::util::enable_tunnel (handles_, tunnel_id);
  }

  if (OMX_ErrorNone == rc)
  {
    clear_expected_port_transitions ();
    const int file_reader_index = 0;
    const int file_reader_input_port = 0;
    add_expected_port_transition (handles_[file_reader_index],
                                  file_reader_input_port,
                                  to_disabled_or_enabled);
    const int http_renderer_index = 1;
    const int http_renderer_input_port = 0;
    add_expected_port_transition (handles_[http_renderer_index],
                                  http_renderer_input_port,
                                  to_disabled_or_enabled);
  }
  return rc;
}
void graph::youtubeops::do_disable_comp_ports (const int comp_id,
                                               const int port_id)
{
  if (comp_id == 0)
  {
    // Disable the http source's input port
    OMX_U32 youtube_source_port = 0;
    G_OPS_BAIL_IF_ERROR (
        util::disable_port (handles_[comp_id], youtube_source_port),
        "Unable to disable youtube source's output port.");
    clear_expected_port_transitions ();
    add_expected_port_transition (handles_[comp_id], youtube_source_port,
                                  OMX_CommandPortDisable);
  }
  else if (comp_id == 1 && port_id == 0)
  {
    // Disable the demuxer's input port
    OMX_U32 demuxer_input_port = 0;
    G_OPS_BAIL_IF_ERROR (
        util::disable_port (handles_[comp_id], demuxer_input_port),
        "Unable to disable demuxer's audio port.");

    add_expected_port_transition (handles_[comp_id], demuxer_input_port,
                                  OMX_CommandPortDisable);
  }

  else if (comp_id == 1 && port_id == 1)
  {
    // Disable the demuxer's input port
    OMX_U32 demuxer_input_port = 0;
    G_OPS_BAIL_IF_ERROR (
        util::disable_port (handles_[comp_id], demuxer_input_port),
        "Unable to disable demuxer's audio port.");
    // Disable the demuxer's output ports (both of them)
    OMX_U32 demuxer_audio_port = 1;
    G_OPS_BAIL_IF_ERROR (
        util::disable_port (handles_[comp_id], demuxer_audio_port),
        "Unable to disable demuxer's audio port.");
    OMX_U32 demuxer_video_port = 2;
    G_OPS_BAIL_IF_ERROR (
        util::disable_port (handles_[comp_id], demuxer_video_port),
        "Unable to disable demuxer's video port.");
    clear_expected_port_transitions ();
    add_expected_port_transition (handles_[comp_id], demuxer_input_port,
                                  OMX_CommandPortDisable);
    add_expected_port_transition (handles_[comp_id], demuxer_audio_port,
                                  OMX_CommandPortDisable);
    add_expected_port_transition (handles_[comp_id], demuxer_video_port,
                                  OMX_CommandPortDisable);
  }
}
// TODO: Move this implementation to the base class (and remove also from
// httpservops)
OMX_ERRORTYPE
graph::httpclntops::transition_tunnel (
    const int tunnel_id, const OMX_COMMANDTYPE to_disabled_or_enabled)
{
  OMX_ERRORTYPE rc = OMX_ErrorNone;

  assert (to_disabled_or_enabled == OMX_CommandPortDisable
          || to_disabled_or_enabled == OMX_CommandPortEnable);

  if (to_disabled_or_enabled == OMX_CommandPortDisable)
  {
    rc = tiz::graph::util::disable_tunnel (handles_, tunnel_id);
  }
  else
  {
    rc = tiz::graph::util::enable_tunnel (handles_, tunnel_id);
  }

  if (OMX_ErrorNone == rc && 0 == tunnel_id)
  {
    clear_expected_port_transitions ();
    const int http_source_index = 0;
    const int http_source_output_port = 0;
    add_expected_port_transition (handles_[http_source_index],
                                  http_source_output_port,
                                  to_disabled_or_enabled);
    const int decoder_index = 1;
    const int decoder_input_port = 0;
    add_expected_port_transition (handles_[decoder_index], decoder_input_port,
                                  to_disabled_or_enabled);
  }
  else if (OMX_ErrorNone == rc && 1 == tunnel_id)
  {
    clear_expected_port_transitions ();
    const int decoder_index = 1;
    const int decoder_output_port = 1;
    add_expected_port_transition (handles_[decoder_index], decoder_output_port,
                                  to_disabled_or_enabled);
    const int renderer_index = 2;
    const int renderer_input_port = 0;
    add_expected_port_transition (handles_[renderer_index], renderer_input_port,
                                  to_disabled_or_enabled);
  }
  return rc;
}
void graph::httpclntops::do_disable_ports ()
{
  OMX_U32 http_source_port = 0;
  G_OPS_BAIL_IF_ERROR (util::disable_port (handles_[0], http_source_port),
                       "Unable to disable http source's output port.");
  clear_expected_port_transitions ();
  add_expected_port_transition (handles_[0], http_source_port,
                                OMX_CommandPortDisable);
}
Exemplo n.º 5
0
void graph::vorbisdecops::do_disable_comp_ports (const int comp_id, const int port_id)
{
  OMX_U32 demuxers_video_port = 1;
  G_OPS_BAIL_IF_ERROR (util::disable_port (handles_[0], demuxers_video_port),
                       "Unable to disable demuxer's video port.");
  clear_expected_port_transitions ();
  add_expected_port_transition (handles_[0], demuxers_video_port,
                                OMX_CommandPortDisable);
}
void graph::gmusicops::do_disable_comp_ports (const int comp_id, const int port_id)
{
  OMX_U32 gmusic_source_port = port_id;
  G_OPS_BAIL_IF_ERROR (util::disable_port (handles_[comp_id], gmusic_source_port),
                       "Unable to disable gmusic source's output port.");
  clear_expected_port_transitions ();
  add_expected_port_transition (handles_[comp_id], gmusic_source_port,
                                OMX_CommandPortDisable);
}
// TODO: Move this implementation to the base class (and remove also from
// httpservops)
OMX_ERRORTYPE
graph::youtubeops::switch_tunnel (const int tunnel_id,
                                  const OMX_COMMANDTYPE to_disabled_or_enabled)
{
  OMX_ERRORTYPE rc = OMX_ErrorNone;

  assert (0 == tunnel_id || 1 == tunnel_id || 2 == tunnel_id);
  assert (to_disabled_or_enabled == OMX_CommandPortDisable
          || to_disabled_or_enabled == OMX_CommandPortEnable);

  if (to_disabled_or_enabled == OMX_CommandPortDisable)
  {
    rc = tiz::graph::util::disable_tunnel (handles_, tunnel_id);
  }
  else
  {
    rc = tiz::graph::util::enable_tunnel (handles_, tunnel_id);
  }

  if (OMX_ErrorNone == rc && 0 == tunnel_id)
  {
    const int youtube_source_index = 0;
    const int youtube_source_output_port = 0;
    add_expected_port_transition (handles_[youtube_source_index],
                                  youtube_source_output_port,
                                  to_disabled_or_enabled);
    const int demuxer_index = 1;
    const int demuxer_input_port = 0;
    add_expected_port_transition (handles_[demuxer_index], demuxer_input_port,
                                  to_disabled_or_enabled);
  }
  else if (OMX_ErrorNone == rc && 1 == tunnel_id)
  {
    const int demuxer_index = 1;
    const int demuxer_output_port = 1;
    add_expected_port_transition (handles_[demuxer_index], demuxer_output_port,
                                  to_disabled_or_enabled);
    const int decoder_index = 2;
    const int decoder_input_port = 0;
    add_expected_port_transition (handles_[decoder_index], decoder_input_port,
                                  to_disabled_or_enabled);
  }
  else if (OMX_ErrorNone == rc && 2 == tunnel_id)
  {
    const int decoder_index = 2;
    const int decoder_output_port = 1;
    add_expected_port_transition (handles_[decoder_index], decoder_output_port,
                                  to_disabled_or_enabled);
    const int renderer_index = 3;
    const int renderer_input_port = 0;
    add_expected_port_transition (handles_[renderer_index], renderer_input_port,
                                  to_disabled_or_enabled);
  }
  return rc;
}