Ejemplo n.º 1
0
static OMX_ERRORTYPE
sdlivr_prc_buffers_ready (const void * ap_obj)
{
  sdlivr_prc_t * p_prc = (sdlivr_prc_t *) ap_obj;
  OMX_BUFFERHEADERTYPE * p_hdr = NULL;
  void * p_krn = tiz_get_krn (handleOf (ap_obj));

  assert (p_prc);

  if (!p_prc->port_disabled_)
    {
      tiz_check_omx (tiz_krn_claim_buffer (
        p_krn, ARATELIA_YUV_RENDERER_PORT_INDEX, 0, &p_hdr));

      while (!p_prc->port_disabled_ && p_hdr)
        {
          if (p_hdr)
            {
              tiz_check_omx (sdlivr_prc_render_buffer (ap_obj, p_hdr));
              if (p_hdr->nFlags & OMX_BUFFERFLAG_EOS)
                {
                  TIZ_TRACE (handleOf (ap_obj),
                             "OMX_BUFFERFLAG_EOS in HEADER [%p]", p_hdr);
                  tiz_srv_issue_event ((OMX_PTR) ap_obj, OMX_EventBufferFlag, 0,
                                       p_hdr->nFlags, NULL);
                }
              tiz_check_omx (tiz_krn_release_buffer (
                p_krn, ARATELIA_YUV_RENDERER_PORT_INDEX, p_hdr));
              tiz_check_omx (tiz_krn_claim_buffer (
                p_krn, ARATELIA_YUV_RENDERER_PORT_INDEX, 0, &p_hdr));
            }
        }
    }
  return OMX_ErrorNone;
}
Ejemplo n.º 2
0
static bool
claim_output (const void *ap_obj)
{
  const tiz_srv_t *p_parent = ap_obj;
  struct webpdprc *p_obj = (struct webpdprc *) ap_obj;
  tiz_pd_set_t ports;
  void *p_krn = tiz_get_krn (p_parent->p_hdl_);

  TIZ_PD_ZERO (&ports);
  tiz_check_omx_err (tiz_krn_select (p_krn, 2, &ports));

  /* We need one output buffers */
  if (TIZ_PD_ISSET (1, &ports))
    {
      tiz_check_omx_err (tiz_krn_claim_buffer
                         (p_krn, 1, 0, &p_obj->pouthdr_));
      TIZ_LOG_CNAME (TIZ_TRACE, TIZ_CNAME (p_parent->p_hdl_),
                     TIZ_CBUF (p_parent->p_hdl_),
                     "Claimed OUTPUT HEADER [%p] BUFFER [%p] "
                     "nFilledLen [%d]...", p_obj->pouthdr_,
                     p_obj->pouthdr_->pBuffer, p_obj->pouthdr_->nFilledLen);
      return true;
    }

  return false;
}
Ejemplo n.º 3
0
static bool
claim_input (const void *ap_obj)
{
  const tiz_srv_t *p_parent = ap_obj;
  struct webpdprc *p_obj = (struct webpdprc *) ap_obj;
  tiz_pd_set_t ports;
  void *p_krn = tiz_get_krn (p_parent->p_hdl_);

  TIZ_PD_ZERO (&ports);
  tiz_check_omx_err (tiz_krn_select (p_krn, 2, &ports));

  /* We need one input buffers */
  if (TIZ_PD_ISSET (0, &ports))
    {
      tiz_check_omx_err (tiz_krn_claim_buffer
                         (p_krn, 0, 0, &p_obj->pinhdr_));
      TIZ_LOG_CNAME (TIZ_TRACE, TIZ_CNAME (p_parent->p_hdl_),
                     TIZ_CBUF (p_parent->p_hdl_),
                     "Claimed INPUT HEADER [%p]...", p_obj->pinhdr_);
      return true;
    }

  TIZ_LOG_CNAME (TIZ_TRACE,
                 TIZ_CNAME (p_parent->p_hdl_),
                 TIZ_CBUF (p_parent->p_hdl_),
                 "COULD NOT CLAIM AN INPUT HEADER...");

  return false;
}
Ejemplo n.º 4
0
static bool
claim_output_buffer (mp3d_prc_t * ap_prc)
{
  bool rc = false;
  assert (ap_prc);

  if (!ap_prc->out_port_disabled_)
    {
      if (OMX_ErrorNone
          == tiz_krn_claim_buffer (tiz_get_krn (handleOf (ap_prc)), 1, 0,
                                   &ap_prc->p_outhdr_))
        {
          if (ap_prc->p_outhdr_)
            {
              TIZ_TRACE (handleOf (ap_prc),
                         "Claimed OUTPUT HEADER [%p] BUFFER [%p] "
                         "nFilledLen [%d]...",
                         ap_prc->p_outhdr_, ap_prc->p_outhdr_->pBuffer,
                         ap_prc->p_outhdr_->nFilledLen);
              rc = true;
            }
          else
            {
              TIZ_TRACE (handleOf (ap_prc), "No OUTPUT headers available");
            }
        }
    }
  return rc;
}
Ejemplo n.º 5
0
static OMX_ERRORTYPE
sdlivr_proc_buffers_ready (const void *ap_obj)
{
  OMX_BUFFERHEADERTYPE *p_hdr = NULL;

  if (OMX_ErrorNone == tiz_krn_claim_buffer
      (tiz_get_krn (handleOf (ap_obj)), 0, 0, &p_hdr))
    {
      if (NULL != p_hdr)
        {
          tiz_check_omx_err (sdlivr_proc_render_buffer (ap_obj, p_hdr));
          if (p_hdr->nFlags & OMX_BUFFERFLAG_EOS)
            {
              TIZ_TRACE (handleOf (ap_obj),
                         "OMX_BUFFERFLAG_EOS in HEADER [%p]", p_hdr);
              tiz_srv_issue_event ((OMX_PTR) ap_obj,
                                   OMX_EventBufferFlag,
                                   0, p_hdr->nFlags, NULL);
            }
          tiz_check_omx_err
            (tiz_krn_release_buffer (tiz_get_krn (handleOf (ap_obj)), 0, p_hdr));
        }
    }

  return OMX_ErrorNone;
}
Ejemplo n.º 6
0
static bool
claim_input_buffer (mp3d_prc_t * ap_prc)
{
  bool rc = false;
  assert (ap_prc);

  if (!ap_prc->in_port_disabled_)
    {
      if (OMX_ErrorNone
          == tiz_krn_claim_buffer (tiz_get_krn (handleOf (ap_prc)), 0, 0,
                                   &ap_prc->p_inhdr_))
        {
          if (ap_prc->p_inhdr_)
            {
              TIZ_TRACE (handleOf (ap_prc),
                         "Claimed INPUT HEADER [%p]...nFilledLen [%d] "
                         "OUTPUT HEADER [%p]...nFilledLen [%d]",
                         ap_prc->p_inhdr_, ap_prc->p_inhdr_->nFilledLen,
                         ap_prc->p_outhdr_,
                         ap_prc->p_outhdr_ ? ap_prc->p_outhdr_->nFilledLen : 0);
              rc = true;
            }
          else
            {
              TIZ_TRACE (handleOf (ap_prc), "No INPUT headers available");
            }
        }
    }

  return rc;
}
Ejemplo n.º 7
0
static OMX_ERRORTYPE
fr_proc_buffers_ready (const void *ap_obj)
{
  const fr_prc_t *p_obj = ap_obj;
  const tiz_srv_t *p_parent = ap_obj;
  tiz_pd_set_t ports;
  void *p_krn = tiz_get_krn (p_parent->p_hdl_);
  OMX_BUFFERHEADERTYPE *p_hdr = NULL;

  if (p_obj->eos_ == false)
    {
      TIZ_PD_ZERO (&ports);

      tiz_check_omx_err (tiz_krn_select (p_krn, 1, &ports));

      if (TIZ_PD_ISSET (0, &ports))
        {
          tiz_check_omx_err (tiz_krn_claim_buffer (p_krn, 0, 0, &p_hdr));
          TIZ_LOG (TIZ_TRACE, "Claimed HEADER [%p]...", p_hdr);
          tiz_check_omx_err (fr_proc_read_buffer (ap_obj, p_hdr));
          tiz_krn_release_buffer (p_krn, 0, p_hdr);
        }
    }

  return OMX_ErrorNone;
}
Ejemplo n.º 8
0
static OMX_BUFFERHEADERTYPE *
get_header (oggdmux_prc_t * ap_prc, const OMX_U32 a_pid)
{
  OMX_BUFFERHEADERTYPE * p_hdr = NULL;
  bool port_disabled = *(get_port_disabled_ptr (ap_prc, a_pid));

  if (!port_disabled)
    {
      OMX_BUFFERHEADERTYPE ** pp_hdr = get_header_ptr (ap_prc, a_pid);
      p_hdr = *pp_hdr;
      if (!p_hdr)
        {
          if (OMX_ErrorNone
              == tiz_krn_claim_buffer (tiz_get_krn (handleOf (ap_prc)), a_pid,
                                       0, pp_hdr))
            {
              p_hdr = *pp_hdr;
              if (p_hdr)
                {
                  TIZ_TRACE (handleOf (ap_prc),
                             "Claimed HEADER [%p] pid [%d] nFilledLen [%d]",
                             p_hdr, a_pid, p_hdr->nFilledLen);
                }
            }
        }
      if (!p_hdr)
        {
          ap_prc->awaiting_buffers_ = true;
        }
    }

  return p_hdr;
}
Ejemplo n.º 9
0
static OMX_BUFFERHEADERTYPE *
buffer_needed (void * ap_arg)
{
  httpr_prc_t * p_prc = ap_arg;
  OMX_BUFFERHEADERTYPE * p_hdr = NULL;
  assert (p_prc);

  if (!p_prc->port_disabled_)
    {
      if (!p_prc->p_inhdr_)
        {
          (void) tiz_krn_claim_buffer (tiz_get_krn (handleOf (p_prc)),
                                       ARATELIA_HTTP_RENDERER_PORT_INDEX, 0,
                                       &p_prc->p_inhdr_);
          if (p_prc->p_inhdr_)
            {
              TIZ_TRACE (handleOf (p_prc),
                         "Claimed HEADER [%p]...nFilledLen [%d]",
                         p_prc->p_inhdr_, p_prc->p_inhdr_->nFilledLen);
            }
        }
      p_hdr = p_prc->p_inhdr_;
    }

  /*   p_prc->awaiting_buffers_ = p_hdr ? false : true; */
  return p_hdr;
}
Ejemplo n.º 10
0
static OMX_BUFFERHEADERTYPE * get_output_buffer(vid_dec_PrivateType* priv) {
   assert (priv);

   if (priv->out_port_disabled_) {
      return NULL;
   }

   if (!priv->p_outhdr_) {
      if (OMX_ErrorNone
          == tiz_krn_claim_buffer(tiz_get_krn (handleOf (priv)),
                                  OMX_VID_DEC_AVC_OUTPUT_PORT_INDEX, 0,
                                  &priv->p_outhdr_)) {
         if (priv->p_outhdr_) {
            /* Check pBuffer nullity to know if an eglimage has been registered. */
            if (!priv->p_outhdr_->pBuffer) {
               get_eglimage(priv);
            }
         }
      }
   }
   return priv->p_outhdr_;
}
Ejemplo n.º 11
0
static OMX_ERRORTYPE
tiztc_proc_buffers_ready (const void *ap_obj)
{
  const tiz_srv_t *p_parent = ap_obj;
  tiz_pd_set_t ports;
  void *p_ker = tiz_get_krn (p_parent->p_hdl_);
  OMX_BUFFERHEADERTYPE *p_hdr = NULL;

  TIZ_LOG (TIZ_TRACE, "Buffers ready...");

  TIZ_PD_ZERO (&ports);

  tiz_check_omx_err (tiz_krn_select (p_ker, 1, &ports));

  if (TIZ_PD_ISSET (0, &ports))
    {
      tiz_check_omx_err (tiz_krn_claim_buffer (p_ker, 0, 0, &p_hdr));
      tiz_check_omx_err (tiztc_proc_render_buffer (p_hdr));
      (void) tiz_krn_release_buffer (p_ker, 0, p_hdr);
    }

  return OMX_ErrorNone;
}
Ejemplo n.º 12
0
static OMX_BUFFERHEADERTYPE *
buffer_emptied (OMX_PTR ap_arg)
{
  dirble_prc_t * p_prc = ap_arg;
  OMX_BUFFERHEADERTYPE * p_hdr = NULL;
  assert (p_prc);

  if (!p_prc->port_disabled_)
    {
      if (p_prc->p_outhdr_)
        {
          p_hdr = p_prc->p_outhdr_;
        }
      else
        {
          if (OMX_ErrorNone
              == (tiz_krn_claim_buffer (tiz_get_krn (handleOf (p_prc)),
                                        ARATELIA_HTTP_SOURCE_PORT_INDEX, 0,
                                        &p_prc->p_outhdr_)))
            {
              if (p_prc->p_outhdr_)
                {
                  TIZ_TRACE (handleOf (p_prc),
                             "Claimed HEADER [%p]...nFilledLen [%d]",
                             p_prc->p_outhdr_, p_prc->p_outhdr_->nFilledLen);
                  p_hdr = p_prc->p_outhdr_;
                }
              else
                {
                  TIZ_TRACE (handleOf (p_prc), "No more headers available");
                }
            }
        }
    }
  return p_hdr;
}
Ejemplo n.º 13
0
static OMX_BUFFERHEADERTYPE * get_input_buffer(vid_dec_PrivateType* priv) {
   assert(priv);

   if (priv->in_port_disabled_) {
      return NULL;
   }

   if (priv->num_in_buffers > 1) {
      /* The input buffer wasn't cleared last time. */
      h264d_buffer_emptied(priv, priv->in_buffers[0]);
      if (priv->in_buffers[0]) {
         /* Failed to release buffer */
         return NULL;
      }
      h264d_shift_buffers_left(priv);
   }

   /* Decode_frame expects new buffers each time */
   assert(priv->p_inhdr_ || priv->first_buf_in_frame);
   tiz_krn_claim_buffer(tiz_get_krn (handleOf (priv)),
                        OMX_VID_DEC_AVC_INPUT_PORT_INDEX, 0,
                        &priv->p_inhdr_);
   return priv->p_inhdr_;
}