summaryrefslogtreecommitdiffstats
path: root/templates/machine/dra7xx-evm/50_bblayers.conf.inc
blob: c62a1bbb308cb7f9dee02c1ea35abc3305537017 (plain)
1
BBLAYERS =+ "${METADIR}/meta-ti"
dffdd } /* Generic.Inserted */ .highlight .go { color: #888888 } /* Generic.Output */ .highlight .gp { color: #555555 } /* Generic.Prompt */ .highlight .gs { font-weight: bold } /* Generic.Strong */ .highlight .gu { color: #666666 } /* Generic.Subheading */ .highlight .gt { color: #aa0000 } /* Generic.Traceback */ .highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */ .highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */ .highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */ .highlight .kp { color: #008800 } /* Keyword.Pseudo */ .highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */ .highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */ .highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */ .highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */ .highlight .na { color: #336699 } /* Name.Attribute */ .highlight .nb { color: #003388 } /* Name.Builtin */ .highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */ .highlight .no { color: #003366; font-weight: bold } /* Name.Constant */ .highlight .nd { color: #555555 } /* Name.Decorator */ .highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */ .highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */ .highlight .nl { color: #336699; font-style: italic } /* Name.Label */ .highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */ .highlight .py { color: #336699; font-weight: bold } /* Name.Property */ .highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */ .highlight .nv { color: #336699 } /* Name.Variable */ .highlight .ow { color: #008800 } /* Operator.Word */ .highlight .w { color: #bbbbbb } /* Text.Whitespace */ .highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */ .highlight .mf { color: #0000DD; font-weight: bold } /* Literal.Number.Float */ .highlight .mh { color: #0000DD; font-weight: bold } /* Literal.Number.Hex */ .highlight .mi { color: #0000DD; font-weight: bold } /* Literal.Number.Integer */ .highlight .mo { color: #0000DD; font-weight: bold } /* Literal.Number.Oct */ .highlight .sa { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Affix */ .highlight .sb { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Backtick */ .highlight .sc { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Char */ .highlight .dl { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
From 4abd8ac4f18f5baef5a23c7defdb12469192f9c5 Mon Sep 17 00:00:00 2001
From: Andrey Gusakov <andrey.gusakov@cogentembedded.com>
Date: Thu, 1 Sep 2016 17:51:30 +0300
Subject: [PATCH 07/10] gstomxbufferpool: add helper to get omxbuffer from
 gstomxbuffer


Signed-off-by: Andrey Gusakov <andrey.gusakov@cogentembedded.com>
---
 omx/gstomxbufferpool.c |   21 +++++++++++++++------
 omx/gstomxbufferpool.h |    2 ++
 omx/gstomxvideoenc.c   |   26 ++++++++++++++++----------
 3 files changed, 33 insertions(+), 16 deletions(-)

diff --git a/omx/gstomxbufferpool.c b/omx/gstomxbufferpool.c
index d86f9d8..eb2fe9d 100644
--- a/omx/gstomxbufferpool.c
+++ b/omx/gstomxbufferpool.c
@@ -361,6 +361,17 @@ wrong_video_caps:
   }
 }
 
+GstOMXBuffer *gst_omx_buffer_get_omxbuffer (GstBuffer * buffer)
+{
+  GstOMXBuffer *omx_buf;
+
+  omx_buf =
+      gst_mini_object_get_qdata (GST_MINI_OBJECT_CAST (buffer),
+      gst_omx_buffer_data_quark);
+
+  return omx_buf;
+}
+
 #if defined (HAVE_MMNGRBUF) && defined (HAVE_VIDEODEC_EXT)
 static gboolean
 gst_omx_buffer_pool_export_dmabuf (GstOMXBufferPool * pool,
@@ -697,9 +708,7 @@ gst_omx_buffer_pool_acquire_buffer (GstBufferPool * bpool,
         buf = g_ptr_array_index (pool->buffers, pool->enc_buffer_index);
         g_return_val_if_fail (buf != NULL, GST_FLOW_ERROR);
 
-        omx_buf =
-            gst_mini_object_get_qdata (GST_MINI_OBJECT_CAST (buf),
-            gst_omx_buffer_data_quark);
+        omx_buf = gst_omx_buffer_get_omxbuffer(buf);
         pool->enc_buffer_index++;
         if (pool->enc_buffer_index == pool->port->port_def.nBufferCountActual)
           pool->enc_buffer_index = 0;
@@ -739,11 +748,11 @@ gst_omx_buffer_pool_release_buffer (GstBufferPool * bpool, GstBuffer * buffer)
   g_assert (pool->component && pool->port);
 
   if (!pool->allocating && !pool->deactivated) {
-    omx_buf =
-        gst_mini_object_get_qdata (GST_MINI_OBJECT_CAST (buffer),
-        gst_omx_buffer_data_quark);
+    omx_buf = gst_omx_buffer_get_omxbuffer(buffer);
+
     if (GST_IS_OMX_VIDEO_ENC (pool->element))
       omx_buf->exported = FALSE;
+
     if (pool->port->port_def.eDir == OMX_DirOutput && !omx_buf->used) {
       /* Release back to the port, can be filled again */
       err = gst_omx_port_release_buffer (pool->port, omx_buf);
diff --git a/omx/gstomxbufferpool.h b/omx/gstomxbufferpool.h
index 09cab8d..0c6f18b 100644
--- a/omx/gstomxbufferpool.h
+++ b/omx/gstomxbufferpool.h
@@ -101,6 +101,8 @@ GType gst_omx_buffer_pool_get_type (void);
 
 GstBufferPool *gst_omx_buffer_pool_new (GstElement * element, GstOMXComponent * component, GstOMXPort * port);
 
+GstOMXBuffer *gst_omx_buffer_get_omxbuffer (GstBuffer * buffer);
+
 G_END_DECLS
 
 #endif /* __GST_OMX_BUFFER_POOL_H__ */
diff --git a/omx/gstomxvideoenc.c b/omx/gstomxvideoenc.c
index b36c46e..e96ff28 100644
--- a/omx/gstomxvideoenc.c
+++ b/omx/gstomxvideoenc.c
@@ -1786,7 +1786,8 @@ gst_omx_video_enc_handle_frame (GstVideoEncoder * encoder,
             gst_omx_error_to_string (err), err);
     }
 
-    if (self->in_port_pool) {
+    if ((self->in_port_pool) &&
+        (frame->input_buffer->pool == self->in_port_pool)) {
       GstMapInfo in_info;
       gint count = 0;
       GstOMXBufferPool *pool = GST_OMX_BUFFER_POOL (self->in_port_pool);
@@ -1795,13 +1796,15 @@ gst_omx_video_enc_handle_frame (GstVideoEncoder * encoder,
        * encoder
        */
       if (!pool->deactivated) {
-        if (!gst_buffer_map (frame->input_buffer, &in_info, GST_MAP_READ)) {
-          GST_ERROR_OBJECT (self, "Can not map input buffer");
-          gst_omx_port_release_buffer (port, buf);
-          goto flow_error;
+        GstOMXBuffer *omx_buf;
+
+        omx_buf = gst_omx_buffer_get_omxbuffer(frame->input_buffer);
+        if (!omx_buf) {
+          GST_ERROR_OBJECT (self, "Can not get OMXBuffer from GstBuffer");
+          return GST_FLOW_ERROR;
         }
 
-        if (buf->omx_buf->pBuffer != in_info.data) {
+        if (buf != omx_buf) {
           gst_omx_port_release_buffer (port, buf);
           do {
             acq_ret = gst_omx_port_acquire_buffer (port, &buf);
@@ -1809,10 +1812,10 @@ gst_omx_video_enc_handle_frame (GstVideoEncoder * encoder,
               GST_ERROR_OBJECT (self, "Can acquire buffer from input port");
               return GST_FLOW_ERROR;
             }
-            if (buf->omx_buf->pBuffer != in_info.data)
+            if (buf != omx_buf)
               gst_omx_port_release_buffer (port, buf);
             count += 1;
-          } while (buf->omx_buf->pBuffer != in_info.data
+          } while (buf != omx_buf
               && count < port->port_def.nBufferCountActual * 3);
         }
         if (count == port->port_def.nBufferCountActual * 3) {
@@ -1820,8 +1823,11 @@ gst_omx_video_enc_handle_frame (GstVideoEncoder * encoder,
               "Can not get target OMXBuffer after 3 times searching");
           goto flow_error;
         }
-        buf->omx_buf->nFilledLen = in_info.size;
-        gst_buffer_unmap (frame->input_buffer, &in_info);
+        GST_DEBUG_OBJECT (self, "found target OMXBuffer %p", buf);
+        //buf->omx_buf->nFilledLen = gst_buffer_get_size (frame->input_buffer);
+        buf->omx_buf->nFilledLen = buf->omx_buf->nAllocLen - buf->omx_buf->nOffset;
+        GST_DEBUG_OBJECT (self, "set nFilledLen = %d", buf->omx_buf->nFilledLen);
+
       }
     } else {
       /* Copy the buffer content in chunks of size as requested
-- 
1.7.10.4