Merge change 24742 into eclair
* changes: Apparently I must not use OMX_UseBuffer on either input or output ports on any of the TI components... or else.
This commit is contained in:
@@ -232,6 +232,16 @@ sp<OMXCodec> OMXCodec::Create(
|
|||||||
quirks |= kRequiresAllocateBufferOnOutputPorts;
|
quirks |= kRequiresAllocateBufferOnOutputPorts;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!strncmp(componentName, "OMX.TI.", 7)) {
|
||||||
|
// Apparently I must not use OMX_UseBuffer on either input or
|
||||||
|
// output ports on any of the TI components or quote:
|
||||||
|
// "(I) may have unexpected problem (sic) which can be timing related
|
||||||
|
// and hard to reproduce."
|
||||||
|
|
||||||
|
quirks |= kRequiresAllocateBufferOnInputPorts;
|
||||||
|
quirks |= kRequiresAllocateBufferOnOutputPorts;
|
||||||
|
}
|
||||||
|
|
||||||
sp<OMXCodec> codec = new OMXCodec(
|
sp<OMXCodec> codec = new OMXCodec(
|
||||||
omx, node, quirks, createEncoder, mime, componentName,
|
omx, node, quirks, createEncoder, mime, componentName,
|
||||||
source);
|
source);
|
||||||
@@ -840,8 +850,8 @@ status_t OMXCodec::allocateBuffersOnPort(OMX_U32 portIndex) {
|
|||||||
mNode, portIndex, mem, &buffer);
|
mNode, portIndex, mem, &buffer);
|
||||||
} else if (portIndex == kPortIndexOutput
|
} else if (portIndex == kPortIndexOutput
|
||||||
&& (mQuirks & kRequiresAllocateBufferOnOutputPorts)) {
|
&& (mQuirks & kRequiresAllocateBufferOnOutputPorts)) {
|
||||||
err = mOMX->allocate_buffer(
|
err = mOMX->allocate_buffer_with_backup(
|
||||||
mNode, portIndex, def.nBufferSize, &buffer);
|
mNode, portIndex, mem, &buffer);
|
||||||
} else {
|
} else {
|
||||||
err = mOMX->use_buffer(mNode, portIndex, mem, &buffer);
|
err = mOMX->use_buffer(mNode, portIndex, mem, &buffer);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user