* libshcodecs 1.1.0 Release
@ 2010-04-23 4:25 Conrad Parker
0 siblings, 0 replies; only message in thread
From: Conrad Parker @ 2010-04-23 4:25 UTC (permalink / raw)
To: linux-sh
libshcodecs 1.1.0 Release
============
libshcodecs is a library for controlling SH-Mobile hardware codecs.
The [SH-Mobile][0] processor series includes a hardware video processing
unit that supports MPEG-4 and H.264 encoding and decoding.
libshcodecs is available under the terms of the GNU LGPL.
The source archive, and more information about the library are available from:
https://oss.renesas.com/modules/document/?libshcodecs
New in this release
=========
This is version 1.1.0, including support for simultaneous encode and decode
of multiple streams. The shcodecs-record tool can now encode multiple streams
of different resolutions from each of multiple camera source.
Library
-------
The library now allows multiple threads to create decoders and encoders for
simultaneous, independent execution. Additionally, the encoder provides a
new shcodecs_encoder_run_multiple() function for running an array of
encoders in consistent order from a single thread.
Added new public API functions:
* shcodecs_encoder_run_multiple()
* shcodecs_encoder_set_input_physical_addr()
* shcodecs_encoder_set_width()
* shcodecs_encoder_set_height()
Updated shared version info to 9:0:2.
Tools
-----
The shcodecs tools now use libuiomux and libshveu for memory allocation,
colorspace coversion and rescaling.
The shcodecs-dec and shcodecs-enc tools can support multiple simultaneous
decodes and encodes.
The shcodecs-record tool now supports multiple V4L2 camera interfaces, and
can encode multiple streams of different resolutions from each camera source.
Additional improvements have been made in the capture and display handling,
and in the internal thread synchronisation method of all tools.
Details
-------
This release includes the following changes since version 1.0.0:
Conrad Parker (105):
Add configure check for UIOMux
add configure check for libshveu
shcodecs-record: update address types for libshveu
use configured CFLAGS, LIBS in tools Makefile
update shcodecs-cap to use libshveu
Merge branch 'shveu'
shcodecs-record: use SHVEU_NO_ROT, SHVEU_ROT_90
add TODO file
add encoder general deferred init framework
encoder: defer allocation of input and temp buffers
defer calculation of y_bytes
add encoder_set_{width,height}() functions
defer VPU temporary buffer allocation
style: remove hungarian prefix in header
encoder.h: clarify docs for get_input_physical_addr
TODO: add shcodecs-play verbose error, float fps
shcodecs-record: buffer types, fix build warning
Merge branch vsync+display
Revert "defer VPU temporary buffer allocation"
TODO: add cleanups (remove gettimeofday in lib)
rename sdr_{read,write} src,dest args
intermediate {src,dest}_virt variables for clarity
add TODO file
add encoder general deferred init framework
encoder: defer allocation of input and temp buffers
defer calculation of y_bytes
add encoder_set_{width,height}() functions
style: remove hungarian prefix in header
encoder.h: clarify docs for get_input_physical_addr
TODO: add shcodecs-play verbose error, float fps
TODO: add cleanups (remove gettimeofday in lib)
rename sdr_{read,write} src,dest args
intermediate {src,dest}_virt variables for clarity
add NULL check on shcodecs_encoder_run()
framerate: add NULL checks to internal API functions
shcodecs-enc: check framerate object is not NULL on cleanup
re-order encoder initialization, move avcbe_start_encode()
Merge branch '1.0-stable'
encoder: make separate internal dimension_stream_buff_size()
encoder: decouple vpu4_param initialization from encoder instance
encoder: split all non-stream-specific initialization out
defer global and stream-specific init to run()
implement h264_encode_run_multiple()
implement shcodecs_encoder_run_multiple()
make a separate state for encoder tool
split out encode_file(filename) function
shcodecs-enc: split out setup/encode/cleanup functions
add shcodecs_encoder_run_multiple() to headers
encoder: increase minimum stream buffer size
improve encode_multiple() error message for non-H.264 streams
shcodecs-enc: use run_multiple(), handle multiple input control files
tools: move frame counter back into appli_info
reimplement h264_encode_run() in terms of h264_encode_run_multiple()
add thrqueue.[ch]
add type and setter for input_release callback
call input_release from H.264, MPEG-4, MP4 BVOP
add shcodecs_encoder_set_input_physical_addr()
Merge branch 'set-input-physical-addr' into 1.0-dual-encode
Fix memory alignment and size of internal buffers
Merge branch '1.0-stable'
Merge branch '1.0-stable' into 1.0-dual-encode
tools: add capture_queue_buffer()
shcodecs-record: stop after requested nr. frames
Revert encoder-specific parameter initialization
release V4L2 capture buffer earlier
shcodecs-record: re-enable use of -1 for unlimited streaming
shcodecs-record: simplify thread names
record: replace capture_done_mutex with captured_queue
record: move encoder input address closer to usage
Merge branch '1.0-dual-encode'
update TODO: dual encode
preview captured image, not converted image
record: set up to use run_multiple()
make new encdata structure, move enc_w, enc_h there
move encode_start_mutex into per-encoder encdata
record: loop over encoders throughout
record: move output_fp into per-encoder data
record: per-encoder ctrl_filename, ainfo etc.
record: move enc_framerate into per-encoder data
record: cleanups
record: pass encdata to encoder i/o callbacks
record: cleanups
record: re-arrange capture_start_mutex
record: cleanups, spelling
record: always use encode sizes specified in ctrl file
record: clean up thread termination
record: re-order capture termination
record: break out of encode_run on cleanup
shcodecs-record: add --no-preview option
update TODO: shcodecs-record --no-preview
Document that multiple enc control files are valid
Merge branch 'master' into multithread
shcodecs-record: support multiple cameras
shcodecs-record: only show preview of first encode
shcodecs-record: use uiomux locking around VEU ops
cap: rename private_data to camera_data
configure: AM_PROG_CC_C_O for per-target cflags
Merge branch 'multithread'
Merge branch 'multicamera'
use main tool's uiomux to alloc capture buffers
update config.h.in
record: remove unneeded debug message
add D1, VGA, CIF control files
set D1,VGA,CIF control files to 4Mb/s
Release 1.1.0
Phil Edworthy (52):
use uiomux_malloc with shveu in tools
Fix compiler warnings for capture.
Merge branch 'master' into shveu
play/record: Add wait for vsync After panning the frame buffer
to the new frame to show, wait for vsync to occur. This ensures that
the back buffer is available to write to without it showing on the
screen, otherwise you get frame tearing. Note: Ignore the return code
as this ioctl isn't in the mainline kernel yet.
play/record: Use common display code.
cleanup: Removed unused macro & data
dual: Isolate vpu open/close code
enc: Changed name of func to reflect use
enc: Get rid of stupid MY_ prefixes
style: whitespace formatting
vpu: Use common vpu setup code
vpu: use a vpu data struct & clean up
vpu: More clean up
vpu: More clean up
dec: Correct usage text
record: Remove -i option as its not needed
vpu: Removed sleep time related code It doesn't do anything
particularly useful and wasn't initialised.
enc: Remove unused files/libs from Makefile
enc: Add save & restore stream context
enc: Display error msgs for new calls to avcbe_* functions
enc: Add vpu lock around frame encoding
vpu: Create a mutex and correct open/close
enc: Run multiple encoders as threads
mpeg4: Add save/restore context & vpu locking
mpeg4: Make encode termination handling the same as H.264
enc: Stop lib freeing itself
vpu: Include mutex unlock on error
enc: Correct order of args to calloc
enc: Use standard error messages
enc: Pass encoder return values to main
vpu: Handle calls to vpu_init with larger stream buffers
dec: Add vpu locking
vpu: Better protection of vpu startup
enc: Return error if any encoder fails
enc: Remove encode time as nothing uses it
enc: Add lock around all middleware functions
enc: Correct vpu error msgs
enc: Fix MPEG4 code when not using BVOPs
shcodecs-dec: Replace global data with instance data
shcodecs-dec: Always send error msgs out
shcodecs-dec: Return errors rather than call exit
shcodecs-dec: Remove priority manipulation code
shcodecs-dec: Support multiple decoders Multiple decoders can be
run in their own threads. The options for each decoder are separated
with a ',' e.g.: shcodecs-dec -i a.264 -o a.yuv -s vga , -i b.264 -o
b.yuv -s vga
shcodecs-dec: Fix mutex use so it's not locked on errors
shcodecs-dec: Split arg handling & decode functionality
shcodecs-dec: Clean up file open
shcodecs-enc: Improve error handling
shcodecs-dec: Report decode success/failure
shcodecs-enc: Move all enc related calls out of main
shcodecs-dec: Fix problem when no input file is specified
Fix linking for cross-compiling on Ubuntu 9.10
tools: Fix errors when setting unusual positions, etc.
Takashi Namiki (1):
Fixed crap output data and infinity loop in decoder
Yusuke Goda (2):
Change of 720p bitrate
Change of 720p bitrate
TODO | 43 ++
config.h.in | 9 +
configure.ac | 79 +++-
data/Makefile.am | 6 +
data/k264-v4l2-720p-stream.ctl | 2 +-
data/k264-v4l2-cif-stream.ctl | 96 ++++
data/k264-v4l2-d1-stream.ctl | 96 ++++
data/k264-v4l2-vga-stream.ctl | 96 ++++
doc/shcodecs-enc.1 | 5 +-
doc/shcodecs-record.1 | 17 +-
include/shcodecs/shcodecs_encoder.h | 82 +++-
src/examples/Makefile.am | 2 +-
src/libshcodecs/Version_script.in | 7 +-
src/libshcodecs/encoder_common.c | 42 +--
src/libshcodecs/encoder_common.h | 26 +-
src/libshcodecs/encoder_private.h | 27 +-
src/libshcodecs/h264_encode.c | 169 ++++---
src/libshcodecs/m4driverif.c | 274 +++++++----
src/libshcodecs/m4driverif.h | 13 +-
src/libshcodecs/mpeg4_encode.c | 56 ++-
src/libshcodecs/shcodecs_decoder.c | 73 +--
src/libshcodecs/shcodecs_encoder.c | 330 ++++++++-----
src/tests/Makefile.am | 2 +-
src/tools/Makefile.am | 33 +-
src/tools/avcbeinputuser.c | 12 +-
src/tools/avcbencsmp.h | 3 +-
src/tools/capture.c | 76 ++-
src/tools/capture.h | 6 +-
src/tools/display.c | 262 ++++++++++
src/tools/display.h | 72 +++
src/tools/framerate.c | 14 +
src/tools/shcodecs-cap.c | 96 ++--
src/tools/shcodecs-dec.c | 431 ++++++++++-------
src/tools/shcodecs-enc.c | 222 ++++++---
src/tools/shcodecs-play.c | 203 ++------
src/tools/shcodecs-record.c | 655 +++++++++++++------------
src/tools/thrqueue.c | 306 ++++++++++++
src/tools/thrqueue.h | 37 ++
src/tools/veu_colorspace.c | 941 -----------------------------------
src/tools/veu_colorspace.h | 95 ----
40 files changed, 2721 insertions(+), 2295 deletions(-)
create mode 100644 TODO
create mode 100644 data/k264-v4l2-cif-stream.ctl
create mode 100644 data/k264-v4l2-d1-stream.ctl
create mode 100644 data/k264-v4l2-vga-stream.ctl
create mode 100644 src/tools/display.c
create mode 100644 src/tools/display.h
create mode 100644 src/tools/thrqueue.c
create mode 100644 src/tools/thrqueue.h
delete mode 100644 src/tools/veu_colorspace.c
delete mode 100644 src/tools/veu_colorspace.h
[0]: http://www.renesas.com/fmwk.jsp?cnt=sh_mobile_family_landing.jsp&fp=/products/mpumcu/sh_mobile/
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2010-04-23 4:25 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-23 4:25 libshcodecs 1.1.0 Release Conrad Parker
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).