[gst-devel] gst-openmax 0.10.0.5 pre-release
Felipe Contreras
felipe.contreras at gmail.com
Mon Apr 27 01:17:39 CEST 2009
Hi,
gst-openmax is a GStreamer plug-in that allows communication with
OpenMAX IL components.
OpenMAX IL is an industry standard that provides an abstraction layer
for computer graphics, video, and sound routines. It has been pushed
specially by key industry players in embedded systems.
After almost one year of development it's time for another pre-release
(hopefully the last before the first release). The list of changes is
huge, but I'll try to summarize them:
* Massive stability improvements, specially while seeking and
init/deinitalizing
* Speech elements now actually work in real RTP calls
* H.264 and AAC extradata handled properly
* Error handling and safety checks implemented
* A lot of code refactoring and cleanups
* Improved unit tests
* Many bug fixes
Part of the old 'tunneling' branch has been merged, and another part
has been rebased on top of the new master, however more work needs to
be done. After the branch has been rebased, work on the code-style
update can start, if GStreamer developers still wish to do that.
A new official 'omap' (long-lived) branch has been created for Texas
Intruments' OpenMAX IL implementation. The patches are distributed in
the tarball.
Also, there are patches to use gst-openmax on Android's OpenMAX IL
implementation[1]. Work has been started to merge them into the master
branch.
[1] http://groups.google.com/group/prajnashi
AFAIK the only thing missing for the first release is documentation,
so I'll try to work on that, but maybe it can wait for 0.10.2, let's
see.
Thanks to all the people that contributed to the release.
Tarballs can be found here:
http://gstreamer.freedesktop.org/src/gst-openmax/pre/
Bugs resolved:
* 548776: gstomx mpe4dec can not work with qtdemux
* 569014: Dependency for check should be optional
* 576114: omx_vorbisdec trumps oggdemux while accepting all applica...
* 576499: build scripts use -Werror option, and build fails because...
Changes since 0.10.0.4:
Edward Hervey (2):
autogen.sh : Use git submodule
Install and use pre-commit indentation hook from common
Felipe Contreras (335):
Initial commit.
Use GStreamer's common autotools macros.
Add GNU standard files.
Add some error handling.
Generate proper capabilities for the output buffer in the vorbis decoder.
Add some sample gst-launch pipelines.
Set version to 1.1 for now.
Remove base "set_caps" and use "settings_changed_cb".
New MPEG4v decoder.
Now the ports are extensible.
Set omx parameters from gst caps.
Rename Base to BaseFilter.
Add missing files.
Add ALSA sink.
Improve logging.
Fix a small memory leak.
Fix zerocopy.
Implement zerocopy on the base sink.
This looks better.
More readable.
Add timestamp information.
Whitespace fixes.
Add more capabilities for MPEG-4 video dec.
Add use-timestamps property.
Add property for the OpenMAX component name.
Add video sink.
More proper autoconf.
Don't hang if not properly initialized.
Specify the srcpad capabilities of the videosink.
Use timestamps by default on the base filter
Add flush support for seeking on the base filter
Add more debugging stuff to the base filter
Fixes for new Bellagio versions
New H.263 video decoder
Fix description for video decoder elements
Whitespace fixes
Allow multiple OpenMAX IL implementations at the same time.
Update README.
Make some elements primary by default.
Update the README.
Include common release make commands.
Update to first pre-release version.
Add missing files to the tarball.
Add more missing files.
Bump version.
Add more missing files.
Make logging level 4(DEBUG) more verbose.
Add comment about wring to a read-only parameter.
Add multiple new component wrappers.
Add AMR-NB decoder wrapper.
Add compilation time flag for zero-copy.
Small cleanups for AAC decoder.
Add omx_setup to set some component configurations early.
Modify AAC decoder temporarily to allow decoding without a parser.
Don't crash if the GStreamer input buffer are owned by the
previous element.
Modify the MP3 decoder to use parsed input stream.
Upgrade the rank of AAC and AMR-NB decoders.
Fixes for non-zero-copy behavior.
Generate ChangeLog.
Fix wrong H.264 decoder and MPEG-4 encoder element initialization.
Add videosink rotation.
Fix MPEG-4 video encoder, and cleanups.
Copy H.264 decoder changes to MPEG-4.
Reorganize parameters' setup.
More verbose debugging.
Whitespace fixes for video decoders.
Update ChangeLog.
Reorganize parameters's setup for H.263 decoder.
New videodec base element.
Add missing files from last commit.
Update copyright.
Don't use reserved prefix on header definitions.
Rename alsasink to audiosink.
Dumb fixes.
Don't try to set wrong color format on base videodec.
More zero-copy flexibility and fixes on base filter.
Add GLib misc macros for base filter.
Enforce OpenMAX components to call the settings changed event.
Remove unneeded stuff on util, and use inline.
Use proper inline keywords.
Fix vorbisdec.
Improve timestamp handling on base filter.
Use "libomx.so.0" by default.
Whitespace fixes.
Set OpenMAX parameters more properly for video elements.
New base videoenc class.
Free pBuffer data.
Properly allocate memory that would eventually be freed.
Allow fake settings changed notification for now.
Update audiosink and other cleanups.
Fix amrnbdec default component name.
Update ChangeLog.
Update README.
Add Khronos headers to the distribution.
Update ChangeLog.
Fix screwed up ChangeLog.
Bump version number, we are in development again.
Use right caps for amrnbdec (not contained).
Add new AMR-WB decoder element.
Handle video encoder's real codec.
New H.263 encoder.
New WMV decoder wrapper.
Destroy ports when finishing decoding.
Properly set the coloformat in the base videoenc.
Random cleanups for base video stuff.
New H.264/AVC encoder wrapper.
Fix stupid segmentation fault when doing play->stop->play.
Propagate gst_pad_push return value.
Fix seeking.
Random fixes and cleanups.
Cleanup videodecoders.
Remember to fetch colorformat properly.
Properly pause/resume the omx component in basesink when flushing.
Add bitrate property to base videoenc.
New pause util function that properly waits for the state change.
New AAC encoder wrapper.
Random cleanup and fixes for AAC encoder.
New amrnbenc wrapper.
Cleanup audio elements.
Add bitrate parameter for amrnbenc.
Add new amrwbenc wrapper.
Add bitrate property to aacenc.
Cleanup the AMR encoders.
Fix copyright notice.
New ADPCM encoder/decoder.
Add initial unit tests.
Use minimun buffer count.
Upate max framerate for wmvdec.
Add comment regarding non-standard usage.
Fix racing condition.
Misc cleanups.
Build cvs versions with -Werror.
Use fixed number of channels for ADPCM.
Add mpegversion 2 in AAC elements.
Remove duplicated commit.
Add G.711 encoder and decoder.
Proper description.
Add new G.729 encoder and decoder.
Proper description.
Fix wrong G729 commit.
Fix g711dec caps.
Save codec data information from the container.
Cleanup async_queue.
GThread is more proper since we are using mutexes and conditions.
Move async_queue to new util library.
Add simple unit tests.
Add unit tests for dummy libomxil.
Cleanup tests.
Add simple gstomx unit test.
Increase timeout for gstomx tests.
Cleanups in dummy libomxil.
Build util first.
Output omx_buffer from the chain function.
Initial async_queue changes.
Add flush commands.
Add flush unit test.
Skip the normal checks when flushing the queues.
More warnings and cleanups.
Fix flushing.
Use flush command completed event.
Update base sink for async changes.
Update base src for async changes.
Add install target in manual Makefile.
Add iLBC encoder/decoder.
Fix warnings.
Fix more warnings.
Cleanup gstomx_util.
Reorganize header requirements.
Update copyright.
Update FSF address.
Remove unused header inclusions.
Remove unused files.
Build system updates.
Tag 0.10.0.4.
Go back to development.
Cleanup the new volume element.
Update library name to new bellagio library.
Fix warnings.
Check for NULL buffers when sending eos.
Temporary disable buffer flushs.
Use BufferCountActual instead of BufferCountMin.
Allow AllocateBuffer.
Random cleanups.
Use G_UNLIKELY when finding the GType.
Finish processing when receiving omx eos event.
Cleanup pad_event in base_filter.
Cleanup pad_event in base_sink.
Rename port enable/disable to resume/pause.
Add port allocate/free/start buffer functions.
Add option to flush the async_queue.
Store the port_index.
Allow multiple setup_ports calls.
Add port semaphore.
Add port enable/disable functions.
Flush the queue when disabling the port.
Make port_enable more extensible.
New omx interface.
Add omx interface to base_sink.
Add omx interface to base_filter.
Add activate_push in base_sink.
Save omx ports as element data of the gst pads.
Make omx state changes more strict.
Add core_for_each_port helper in util.
Add flushing functions in util.
Improve flushing in base_filter.
More general improvements in flushing.
Add separate mp2dec element.
Free codec_data
Add new jpegenc component wrapper.
Allow child classes to override the share_output_buffer workaround.
Improve message when the shared output buffer workaround is misbehaving.
Improve error message when pusing output buffers.
Properly set the true return reason.
Set right caps for amrwbenc.
Fix speech codecs samplerates.
Fix warnings in jpegenc.
Improve buffer sizes in jpegenc.
Update ADPCM sample rate.
Random cleanups.
Add adpcm layout.
Update G729 media-type.
Use more efficient int scaler.
Fix initialization of buffers for processing.
Release output buffer when there's flushing.
Cleanup flushing mechanism for seeking.
Properly deinitialize when going to READY.
Add new semaphore utility.
Add stress unit tests for async_queue.
Random cleanups.
Improve internal libomxil unit tests.
Improve debug logging for gstomx util.
Fix EOS handling when omx hasn't been initialized.
Improve G711 caps negotiation.
Fix G711 decoder caps.
Rename avcenc to h264enc.
Fix iLBC caps negotiation.
Fix seeking when using zero-copy.
jpegenc: Add quality property.
Allow child classes to override the share_input_buffer workaround.
adpcm: Fix capabilities negotation.
More specific caps for all audio elements.
Random cleanups.
Missing cleanups from old git repo.
util: Fix for allocate buffer.
Send initial codec_data buffer.
sink: Cleanup element details.
aacdec: Store codec-data.
Remove TI-specific stuff.
Fix crash on certain race condition.
util: More debug logging.
util: Make omx errors more verbose.
basefilter: handle codec-data from omx
Create .gitignore file
Make libcheck optional
Update copyright notice for 2009.
Fix libcheck' check
util: detect more unrecoverable errors
check_gstomx: cleanup codes-tyle
util: fix crash when OMX_Init errors
util: cleanup request_imp
Set more proper framerate in the caps templates
video encoders: trivial cleanups
General update to framerate handling
basefilter: fix init race condition
Cleanup global scope
Trivial code-style cleanups
Cleanup enums
Remove automatic pre-commit hook
Remove common submodule
Some cleanups to the 'common' stuff
Rename 'initialized' to 'ready'
Cleanup .gitignore
Even more framerate improvements
videoenc: fix Q.16 framerate calculation
Remove stdbool.h
Use memset instead of calloc
util: handle more errors from omx
Trivial cleanups
basefilter: trivial cleanup
util: fix break statements in event_handler
util: make OMX_AllocateBuffer configurable
basefilter: plug a leak
Add environment variables for testing
util: avoid double-free
jpegenc: fix quality setting
plugin: refactor
Replace dispose with finalize
basesink,basesrc: fix library and component name
basesink: chain up activatepush
Add ignore files for 'tests' dir
plugin: trivial whitespace fix
g729enc: trivial cleanup for default DTX
basefilter: appropriately return wrong state
Revert "Do not hang in state change when flushing."
Improve error handling
util: add timeout to wait_for_state
util: cleanup timeout stuff
basefilter: trivial cleanup
util: display error message sooner
Remove unused variables
Trivial cleanups
test: fix gcc warnings
util: remove g_omx_sem and use shared g_sem
Cleanups
Add shave build option
Use 'git describe' for automatic version
Move common stuff to build-aux
configure.ac: cleanup
.gitignore: cleanup
Fix distribution
git-version-gen: fix for old versions of git
basesink: don't hang on downward state change
basesink: move omx initalization to pad link
basesink: add empty change_state function
basesink: align gst and omx states in base_sink
basesink: initalize omx when changing to READY
Always check the omx state
util: don't set artificial omx errors
util: handle all errors
base_filter: cleanup PAUSED_TO_READY
util: nicer error messages
Trivial cleanup; rename client_data field
util: improve logging
plugin: trivial cleanup
plugin: trivial cleanup
Add 'update-common' script
build: improve version generation
basefilter: cleanup
Add core_stop function to split core_finish
util: trivial rearrange
Remove core_finish, use core_unload
plugin: decrease priority of vorbisdec
build: add enable-experimental option
Remove ChangeLog
autogen.sh: fix build and cleanups
Add 'patches' directory to the dist
Update README
Frederik Vernelen (3):
Allow null buffers.
Add new volume element.
basesink: add NXP copyright
Jan Schmidt (1):
configure.ac: trivial cleanup
Marco Ballesio (1):
Properly calculate timestamps when input buffers are split
Mark Nauwelaerts (8):
Do not hang in state change when flushing.
Fix mt issue when loading/unloading omxil.
Serialize EOS sending.
Handle unrecoverable errors.
Fix format specifier in debug statement.
Fix race in test.
g729enc: set caps on srcpad
basefilter: don't start task when omx is not ready
Olivier Crête (1):
g711enc: Only try to fetch structure from caps if it exists.
René Stadler (16):
Forward pad event properly.
amrnbenc: Add rate=8000 field to amr caps
amrwbenc: Add rate=16000 field to amr caps
Fix configure failing because of missing m4 directory.
aacdec: Don't set the profile.
Don't limit framerate to 30fps for video decoder pad templates.
Pass on correct sink framerate fraction.
aacenc: Fix src caps by not relying on settings_changed callback.
Fix unused variables breaking the build.
util: Fix crash when dlopen() fails.
aacenc: Propagate bitrate property value to component.
aacenc: Add output-format property, setting eAACStreamFormat.
aacenc: Implement profile property.
jpegenc: Forward upstream framerate in caps.
basefilter: release ready_lock when core_prepare fails
jpegenc: fix classification
Sriram Murthy (1):
audio_sink: Set correct class.
Stefan Kost (1):
Build cvs versions with -Werror.
Tim-Philipp Müller (1):
.gitignore: ignore more
--
Felipe Contreras
More information about the gstreamer-devel
mailing list