mem: use heap memory instead OMX_Alloc..
authorHackseung Lee <lhs@dignsys.com>
Wed, 15 Nov 2017 06:32:42 +0000 (15:32 +0900)
committerHackseung Lee <lhs@dignsys.com>
Wed, 15 Nov 2017 06:32:42 +0000 (15:32 +0900)
Change-Id: I147a1f31a7e3e9f42ff6efea3786a69b095c8464

hello_video2_normal.cpp

index 3654342bc6a15deb91aaec76c62bac40acbf28cb..de9ede2955673ae9c2ce7571b59c8de6924d7386 100644 (file)
@@ -843,9 +843,22 @@ OMX_ERRORTYPE hello_video2::prepare_output_buffers(unsigned int num)
                pPrivateData = &output_buffer_number[i];
                *pPrivateData = (1 << i);
                output_buffer_usage |= *pPrivateData;
+#if 0 // Use OMX_AllocateBuffer()
                ErrorCode = OMX_AllocateBuffer(component, &output_buffer_header[i], output_port_def.nPortIndex, pPrivateData, output_port_def.nBufferSize);
-               if (ErrorCode != OMX_ErrorNone) {
-                       printf("Failed to alloc output buffer %u. %s\n", i, OMX_strerror(ErrorCode));
+#else // Use OMX_UseBuffer()
+               OMX_U8 *tmp;
+               tmp = (OMX_U8*)malloc(output_port_def.nBufferSize);
+               if (tmp == NULL) {
+                       fprintf(stderr, "Failed to alloc output buffer %u. %s\n", i, OMX_strerror(ErrorCode));
+                       exit(0);
+               }
+               ErrorCode = OMX_UseBuffer(component, &output_buffer_header[i], output_port_def.nPortIndex, pPrivateData, output_port_def.nBufferSize, tmp);
+#endif
+               if (ErrorCode == OMX_ErrorNone) {
+                       fprintf(stderr, "Okay:prepare_output_buffers:Output buffer %u allocated,%d.\n", i + 1, output_port_def.nBufferSize);
+               }
+               else {
+                       fprintf(stderr, "Err:prepare_output_buffers:%d. %s\n", i, OMX_strerror(ErrorCode));                     
                }
        }