Add package libucil & libunicap (#4505)

* libucil: configure with `--disable-gtk-doc`
* libunicap: configure with `--disable-gtk-doc`
* libunicap: switch to '%autosetup'
* libucil: switch to '%autosetup'
* libucil: use SPDX identifiers
* libunicap: use SPDX identifiers

Co-authored-by: Olivia Crain <oliviacrain@microsoft.com>
Signed-off-by: Muhammad Falak R Wani <falakreyaz@gmail.com>
This commit is contained in:
Muhammad Falak R Wani 2022-12-29 10:35:28 +05:30 committed by GitHub
parent 1f7189ee52
commit d2add75fc3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 1896 additions and 1 deletions

View File

@ -0,0 +1,11 @@
--- libucil-0.9.10/src/ucil_alsa.c 2010-01-17 08:49:29.000000000 +0100
+++ libucil-0.9.10/src/ucil_alsa.c.include-alsa 2019-07-28 19:28:30.425902735 +0200
@@ -29,7 +29,7 @@
#include "ucil_alsa.h"
#include <stdlib.h>
-#include <asoundlib.h>
+#include <alsa/asoundlib.h>
#include <glib-2.0/glib.h>
/* #if UCIL_DEBUG */
#define DEBUG

View File

@ -0,0 +1,47 @@
src/ucil_png.c | 1 +
src/ucil_rawavi.c | 6 +++++-
2 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/src/ucil_png.c b/src/ucil_png.c
index 9fd9de3..2406ce7 100644
--- a/src/ucil_png.c
+++ b/src/ucil_png.c
@@ -286,6 +286,7 @@ unicap_status_t ucil_load_png( char *filename, unicap_data_buffer_t *buffer )
if( !check_if_png( filename, &f ) )
{
TRACE( "File '%s' is not a valid PNG image\n", filename );
+ fclose( f );
return STATUS_FAILURE;
}
diff --git a/src/ucil_rawavi.c b/src/ucil_rawavi.c
index d578922..8b6f7b4 100644
--- a/src/ucil_rawavi.c
+++ b/src/ucil_rawavi.c
@@ -225,6 +225,7 @@ static void avi_list_pad( avi_buffer_t *list, int offset, int padding )
padsize = padding - ( ( offset + list->dwPtr + sizeof( avi_list_t ) - 4 ) % padding );
avi_add_chunk( list, UCIL_FOURCC( 'J', 'U', 'N', 'K' ), padsize, chunk_buffer );
+ free( chunk_buffer );
}
@@ -573,6 +574,7 @@ static avi_buffer_t *ucil_rawavi_create_index( ucil_rawavi_video_file_object_t *
avi_index_entry_t *idx;
int i;
int offset = 4;
+ avi_buffer_t *buf;
idx = malloc( vobj->movi_frames * sizeof( avi_index_entry_t ) );
@@ -586,7 +588,9 @@ static avi_buffer_t *ucil_rawavi_create_index( ucil_rawavi_video_file_object_t *
offset += vobj->format.buffer_size + 8;
}
- return avi_create_chunk( UCIL_FOURCC( 'i', 'd', 'x', '1' ), idx, vobj->movi_frames * sizeof( avi_index_entry_t ) );
+ buf = avi_create_chunk( UCIL_FOURCC( 'i', 'd', 'x', '1' ), idx, vobj->movi_frames * sizeof( avi_index_entry_t ) );
+ free( idx );
+ return buf;
}
unicap_status_t ucil_rawavi_close_video_file( ucil_rawavi_video_file_object_t *vobj )

View File

@ -0,0 +1,454 @@
src/colorspace.c | 15 ---
src/ucil_gstreamer.c | 12 --
src/ucil_ppm.c | 1 +
src/ucil_rawavi.c | 29 -----
src/ucil_theora.c | 280 --------------------------------------------------
src/video_file.c | 8 --
6 files changed, 1 insertions(+), 344 deletions(-)
diff --git a/src/colorspace.c b/src/colorspace.c
index 01ec086..2345270 100644
--- a/src/colorspace.c
+++ b/src/colorspace.c
@@ -108,7 +108,6 @@ static void y4202rgb32( __u8 *dest, __u8 *source, int width, int height );
static void y8002rgb24( __u8 *dest, __u8 *source, int width, int height );
static void y8002rgb32( __u8 *dest, __u8 *source, int width, int height );
static void rgb242y800( __u8 *dest, __u8 *source, int width, int height );
-static void rgb322y800( __u8 *dest, __u8 *source, int width, int height );
static void uyvytoyuv422p( __u8 *dest, __u8 *src, int width, int height );
static void uyvytoyuv420p( __u8 *dest, __u8 *src, int width, int height );
static void yuv420ptouyvy( __u8 *dest, __u8 *src, int width, int height );
@@ -2832,20 +2831,6 @@ static void rgb242y800( __u8 *dest, __u8 *source, int width, int height )
}
}
-static void rgb322y800( __u8 *dest, __u8 *source, int width, int height )
-{
- int i;
- int dest_offset = 0;
- int source_size = width * height * 4;
-
- for( i = 1; i < source_size; i += 4 ){
- __u8 y;
- y = source[i];
- dest[dest_offset++] = y;
- }
-}
-
-
static void y8002rgb32( __u8 *dest, __u8 *source, int width, int height )
{
int i;
diff --git a/src/ucil_gstreamer.c b/src/ucil_gstreamer.c
index 1c707fe..eaf025f 100644
--- a/src/ucil_gstreamer.c
+++ b/src/ucil_gstreamer.c
@@ -269,18 +269,6 @@ static void destroy_vobj( ucil_gstreamer_video_file_object_t *vobj )
g_free( vobj );
}
-static void parse_ogg_theora_parameters( GstElement *encoder, ucil_gstreamer_video_file_object_t *vobj, guint n_parameters, GParameter *parameters )
-{
- int i;
- for( i = 0; i < n_parameters; i++ ){
- if( !strcmp( parameters[i].name, "quality" ) ){
- g_object_set( encoder, "quality", g_value_get_int( &parameters[i].value ), NULL );
- } else if ( !strcmp( parameters[i].name, "bitrate" ) ){
- g_object_set( encoder, "bitrate", g_value_get_int( &parameters[i].value ), NULL );
- }
- }
-}
-
static void parse_parameters( ucil_gstreamer_video_file_object_t *vobj, guint n_parameters, GParameter *parameters )
{
int i;
diff --git a/src/ucil_ppm.c b/src/ucil_ppm.c
index f02240a..c536d3e 100644
--- a/src/ucil_ppm.c
+++ b/src/ucil_ppm.c
@@ -1,6 +1,7 @@
#include "ucil.h"
#include "ucil_private.h"
+#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
diff --git a/src/ucil_rawavi.c b/src/ucil_rawavi.c
index 8b6f7b4..de25da5 100644
--- a/src/ucil_rawavi.c
+++ b/src/ucil_rawavi.c
@@ -77,7 +77,6 @@ struct _ucil_rawavi_video_file_object
#define AVI_PAD_SIZE 4096
static void avi_add_chunk( avi_buffer_t *buffer, __u32 fourcc, __u32 size, __u8 *data );
-static __u32 avi_add_list_hdr( avi_buffer_t *buffer, __u32 fourcc, __u32 size );
static __u32 avi_add_chunk_hdr( avi_buffer_t *buffer, __u32 fourcc, __u32 size );
static void avi_list_pad( avi_buffer_t *list, int offset, int padding );
static int avi_write_buffer( FILE *f, avi_buffer_t *buffer );
@@ -137,7 +136,6 @@ static void *ucil_rawavi_encode_thread( ucil_rawavi_video_file_object_t *vobj )
static int write_avi_header( FILE *f )
{
__u32 hdr[3];
- int res = 0;
hdr[0] = UCIL_FOURCC( 'R', 'I', 'F', 'F');
hdr[1] = 0;
@@ -229,33 +227,6 @@ static void avi_list_pad( avi_buffer_t *list, int offset, int padding )
}
-static __u32 avi_add_list_hdr( avi_buffer_t *buffer, __u32 fourcc, __u32 size )
-{
- avi_list_t list;
- __u32 ret;
-
- list.dwList = UCIL_FOURCC( 'L', 'I', 'S', 'T' );
- list.dwSize = size + 4;
- list.dwFourCC = fourcc;
-
- if( buffer->dwBufferSize < ( buffer->dwPtr + sizeof( list ) ) )
- {
- __u8 *tmp;
-
- tmp = malloc( buffer->dwPtr + sizeof( list ) );
- memcpy( tmp, buffer->bData, buffer->dwPtr );
- free( buffer->bData );
- buffer->bData = tmp;
- buffer->dwBufferSize = buffer->dwPtr + sizeof( list );
- }
-
- memcpy( buffer->bData + buffer->dwPtr, &list, sizeof( list ) );
- ret = buffer->dwPtr;
- buffer->dwPtr += sizeof( list );
-
- return ret;
-}
-
static int avi_write_list_hdr( FILE *f, __u32 fourcc, __u32 size )
{
avi_list_t list;
diff --git a/src/ucil_theora.c b/src/ucil_theora.c
index e2d00ef..bf95004 100644
--- a/src/ucil_theora.c
+++ b/src/ucil_theora.c
@@ -947,286 +947,6 @@ static void *ucil_theora_encode_thread( ucil_theora_video_file_object_t *vobj )
return NULL;
}
-static void copy_yuv( unsigned char *dst, yuv_buffer *yuv, theora_info *ti )
-{
- int y;
- unsigned char *yoff;
- unsigned char *uvoff;
- unsigned char *dstoff;
- int crop_offset;
-
- dstoff = dst;
- crop_offset = ti->offset_x + yuv->y_stride * ti->offset_y;
- yoff = yuv->y + crop_offset;
-
- for( y = 0; y < yuv->y_height; y++ )
- {
- memcpy( dstoff, yoff, yuv->y_width );
- dstoff += yuv->y_width;
- yoff += yuv->y_stride;
- }
-
- crop_offset = ( ti->offset_x / 2 ) + ( yuv->uv_stride ) * ( ti->offset_y / 2 );
- uvoff = yuv->u + crop_offset;
-
- for( y = 0; y < yuv->uv_height; y++ )
- {
- memcpy( dstoff, uvoff, yuv->uv_width );
- dstoff += yuv->uv_width;
- uvoff += yuv->uv_stride;
- }
-
- uvoff = yuv->v;
-
- for( y = 0; y < yuv->uv_height; y++ )
- {
- memcpy( dstoff, uvoff, yuv->uv_width );
- dstoff += yuv->uv_width;
- uvoff += yuv->uv_stride;
- }
-}
-
-// Video Playback disabled - see ucview_videoplay_plugin on how to play back video files
-#if 0
-
-static void *ucil_theora_worker_thread( ucil_theora_input_file_object_t *vobj )
-{
- unicap_data_buffer_t new_frame_buffer;
-
- struct timeval ltime;
- int eos = 0;
-
- unicap_copy_format( &new_frame_buffer.format, &vobj->format );
- new_frame_buffer.type = UNICAP_BUFFER_TYPE_SYSTEM;
- new_frame_buffer.buffer_size = new_frame_buffer.format.buffer_size;
- new_frame_buffer.data = malloc( new_frame_buffer.format.buffer_size );
-
- gettimeofday( &ltime, NULL );
-
- while( !vobj->quit_capture_thread )
- {
- struct timespec abs_timeout;
- struct timeval ctime;
- GList *entry;
- ogg_page og;
- ogg_packet op;
- size_t bytes;
-
- int buffer_ready = 0;
-
-
-
- if( !eos && ( ogg_stream_packetout( &vobj->os, &op ) > 0 ) )
- {
- yuv_buffer yuv;
-
- theora_decode_packetin( &vobj->th, &op );
- theora_decode_YUVout( &vobj->th, &yuv );
- copy_yuv( new_frame_buffer.data, &yuv, &vobj->ti );
-
- buffer_ready = 1;
- }
- else if( !eos )
- {
- bytes = buffer_data( vobj->f, &vobj->oy );
- if( !bytes )
- {
- TRACE( "End of stream\n" );
- eos = 1;
-
- }
-
- while( ogg_sync_pageout( &vobj->oy, &og ) > 0 )
- {
- ogg_stream_pagein( &vobj->os, &og );
- }
- continue;
- }
- else
- {
- buffer_ready = 1;
- }
-
- gettimeofday( &ctime, NULL );
- abs_timeout.tv_sec = ctime.tv_sec + 1;
- abs_timeout.tv_nsec = ctime.tv_usec * 1000;
- if( sem_timedwait( &vobj->sema, &abs_timeout ) )
- {
- TRACE( "SEM_WAIT FAILED\n" );
- continue;
- }
-
- if( buffer_ready && vobj->event_callback )
- {
- vobj->event_callback( vobj->event_unicap_handle, UNICAP_EVENT_NEW_FRAME, &new_frame_buffer );
- TRACE( "New frame\n" );
- }
-
- unicap_data_buffer_t *data_buffer = g_queue_pop_head( vobj->in_queue );
- if( data_buffer )
- {
- unicap_copy_format( &data_buffer->format, &vobj->format );
- memcpy( data_buffer->data, new_frame_buffer.data, vobj->format.buffer_size );
-
- g_queue_push_tail( vobj->out_queue, data_buffer );
- }
-
- sem_post( &vobj->sema );
-
- if( buffer_ready )
- {
- gettimeofday( &ctime, NULL );
- if( ctime.tv_usec < ltime.tv_usec )
- {
- ctime.tv_usec += 1000000;
- ctime.tv_sec -= 1;
- }
-
- ctime.tv_usec -= ltime.tv_usec;
- ctime.tv_sec -= ltime.tv_sec;
-
- if( ( ctime.tv_sec == 0 ) &&
- ( ctime.tv_usec < vobj->frame_intervall ) )
- {
- usleep( vobj->frame_intervall - ctime.tv_usec );
- }
-
- gettimeofday( &ltime, NULL );
- }
- }
-
- free( new_frame_buffer.data );
- return NULL;
-}
-
-
-static unicap_status_t theoracpi_reenumerate_formats( ucil_theora_input_file_object_t vobj, int *count )
-{
- *count = 1;
-
- return STATUS_SUCCESS;
-}
-
-static unicap_status_t theoracpi_enumerate_formats( ucil_theora_input_file_object_t *vobj, unicap_format_t *format, int index )
-{
- unicap_status_t status = STATUS_NO_MATCH;
- if( index == 0 )
- {
- unicap_copy_format( format, &vobj->format );
- status = STATUS_SUCCESS;
- }
-
- return status;
-}
-
-static unicap_status_t theoracpi_set_format( ucil_theora_input_file_object_t *vobj, unicap_format_t *format )
-{
- unicap_status_t status = STATUS_SUCCESS;
- if( ( format->size.width != vobj->format.size.width ) ||
- ( format->size.height != vobj->format.size.height ) ||
- ( format->bpp != vobj->format.bpp ) )
- {
- char buffer[1024];
- size_t size = 1024;
-
- unicap_describe_format( format, buffer, &size );
- TRACE( "Could not set format: %s\n", buffer );
- size = 1024;
- unicap_describe_format( &vobj->format, buffer, &size );
- TRACE( "Stored: %s\n" );
- status = STATUS_FAILURE;
- }
-
- return status;
-}
-
-static unicap_status_t theoracpi_get_format( ucil_theora_input_file_object_t *vobj, unicap_format_t *format )
-{
- unicap_copy_format( format, &vobj->format );
- return STATUS_SUCCESS;
-}
-
-static unicap_status_t theoracpi_reenumerate_properties( ucil_theora_input_file_object_t *vobj, int *count )
-{
- *count = 0;
- return STATUS_SUCCESS;
-}
-
-static unicap_status_t theoracpi_enumerate_properties( ucil_theora_input_file_object_t *vobj, unicap_property_t *property, int index )
-{
- return STATUS_NO_MATCH;
-}
-
-static unicap_status_t theoracpi_set_property( ucil_theora_input_file_object_t *vobj, unicap_property_t *property )
-{
- return STATUS_FAILURE;
-}
-
-static unicap_status_t theoracpi_get_property( ucil_theora_input_file_object_t *vobj, unicap_property_t *property )
-{
- return STATUS_FAILURE;
-}
-
-static unicap_status_t theoracpi_capture_start( ucil_theora_input_file_object_t *vobj )
-{
- unicap_status_t status = STATUS_SUCCESS;
-
- if( pthread_create( &vobj->worker_thread, NULL, (void*(*)(void*))ucil_theora_worker_thread, vobj ) )
- {
- TRACE( "Failed to create worker thread!\n" );
- return STATUS_FAILURE;
- }
-
- return status;
-}
-
-static unicap_status_t theoracpi_capture_stop( ucil_theora_input_file_object_t *vobj )
-{
- int res;
-
- vobj->quit_capture_thread = 1;
- res = pthread_join( vobj->worker_thread, NULL );
-
- return ( res == 0 ) ? STATUS_SUCCESS : STATUS_FAILURE;
-}
-
-static unicap_status_t theoracpi_queue_buffer( ucil_theora_input_file_object_t *vobj, unicap_data_buffer_t *buffer )
-{
- unicap_status_t status = STATUS_SUCCESS;
-
- g_queue_push_tail( vobj->in_queue, buffer );
-
- return status;
-}
-
-static unicap_status_t theoracpi_dequeue_buffer( ucil_theora_input_file_object_t *vobj, unicap_data_buffer_t **buffer )
-{
- unicap_status_t status = STATUS_SUCCESS;
- return status;
-}
-
-static unicap_status_t theoracpi_wait_buffer( ucil_theora_input_file_object_t *vobj, unicap_data_buffer_t **buffer )
-{
- unicap_status_t status = STATUS_SUCCESS;
- return status;
-}
-
-static unicap_status_t theoracpi_poll_buffer( ucil_theora_input_file_object_t *vobj, int *count )
-{
- *count = 1;
- return STATUS_SUCCESS;
-}
-
-static unicap_status_t theoracpi_set_event_notify( ucil_theora_input_file_object_t *vobj, unicap_event_callback_t func, unicap_handle_t handle )
-{
- vobj->event_callback = func;
- vobj->event_unicap_handle = handle;
-
- return STATUS_SUCCESS;
-}
-
-#endif
-
static void encode_parse_parameters( ucil_theora_video_file_object_t *vobj, guint n_parameters, GParameter *parameters )
{
int i;
diff --git a/src/video_file.c b/src/video_file.c
index 9c9a3f1..547a3dc 100644
--- a/src/video_file.c
+++ b/src/video_file.c
@@ -38,7 +38,6 @@
#define MAX_CODECS 8
-static gboolean ucil_video_is_initialized = FALSE;
struct video_codec_cpi {
const gchar ** codec_names;
@@ -158,7 +157,6 @@ static enum ucil_codec_id get_codec_id( const char *codec )
for (id = 0; id < sizeof(codecs) / sizeof(video_codec_cpi); id ++)
{
- gboolean found = FALSE;
int i;
for( i = 0; codecs[id].codec_names[i] != NULL; i++ ){
@@ -171,12 +169,6 @@ static enum ucil_codec_id get_codec_id( const char *codec )
}
-static void ucil_video_initialize( void )
-{
-/* load_vcp_modules(); */
-}
-
-
ucil_video_file_object_t *ucil_create_video_filev( const char *path, unicap_format_t *format, const char *codec,
guint n_parameters, GParameter *parameters )
{

View File

@ -0,0 +1,17 @@
diff --git a/src/ucil_theora.c b/src/ucil_theora.c
index 0919a97..e2d00ef 100644
--- a/src/ucil_theora.c
+++ b/src/ucil_theora.c
@@ -1556,7 +1556,11 @@ ucil_theora_video_file_object_t *ucil_theora_create_video_filev( const char *pat
#endif
- theora_encode_init( &vobj->th, &vobj->ti );
+ if( theora_encode_init( &vobj->th, &vobj->ti ) != 0)
+ {
+ free( vobj );
+ return NULL;
+ }
vobj->full_queue = g_queue_new();
vobj->empty_queue = g_queue_new();

View File

@ -0,0 +1,5 @@
{
"Signatures": {
"libucil-0.9.10.tar.gz": "b0a815dde49b580b626c03722b40825051d5c99435cff06f7fbe13edf14d0056"
}
}

View File

@ -0,0 +1,217 @@
Summary: Library to render text and graphic overlays onto video images
Name: libucil
Version: 0.9.10
Release: 22%{?dist}
License: GPL-2.0-or-later
Vendor: Microsoft Corporation
Distribution: Mariner
URL: https://www.unicap-imaging.org/
Source0: %{_mariner_sources_url}/%{name}-%{version}.tar.gz
# check return value of theora_encode_init() (#627890)
Patch0: libucil-0.9.8-bz627890.patch
# fix some memory leaks
Patch1: libucil-0.9.10-leaks.patch
# fix some compile-time warnings
Patch2: libucil-0.9.10-warnings.patch
# asoundlib.h is alsa/asoundlib.h meanwhile
Patch3: libucil-0.9.10-include-alsa.patch
BuildRequires: %{_bindir}/perl
BuildRequires: alsa-lib-devel
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gettext
BuildRequires: gettext-devel
BuildRequires: glib2-devel
BuildRequires: gtk-doc >= 1.4
BuildRequires: intltool
BuildRequires: libogg-devel
BuildRequires: libpng-devel
BuildRequires: libtheora-devel
BuildRequires: libtool
BuildRequires: libunicap-devel
BuildRequires: libvorbis-devel
BuildRequires: pango-devel
BuildRequires: perl(XML::Parser)
%description
Unicap provides a uniform interface to video capture devices. It allows
applications to use any supported video capture device via a single API.
The related ucil library provides easy to use functions to render text
and graphic overlays onto video images.
%package devel
Summary: Development files for the ucil library
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: libunicap-devel
Requires: pkgconfig
%description devel
The libucil-devel package includes header files and libraries necessary
for developing programs which use the ucil library. It contains the API
documentation of the library, too.
%prep
%autosetup -p1
# fixes for gtk-doc 1.26
sed -i -e '/^DOC_SOURCE_DIR/s/--source-dir=//g' doc/libucil/Makefile.am
mkdir -p m4
gtkdocize --copy
autoreconf -fiv
%build
%configure --disable-rpath --disable-gtk-doc
%make_build
%install
%make_install
# Don't install any static .a and libtool .la files
rm -f %{buildroot}%{_libdir}/%{name}.{a,la}
%ldconfig_scriptlets
%files
%license COPYING
%doc AUTHORS ChangeLog README
%{_libdir}/%{name}.so.*
%files devel
%{_libdir}/%{name}.so
%{_libdir}/pkgconfig/%{name}.pc
%{_includedir}/unicap/*.h
%exclude %{_datadir}/gtk-doc/html/%{name}
%changelog
* Wed Dec 28 2022 Muhammad Falak <mwani@microsoft.com> - 0.9.10-22
- Configure with 'disable-gtk-doc'
- Switch to `%autosetup`
- License verified
* Fri Oct 15 2021 Pawel Winogrodzki <pawelwi@microsoft.com> - 0.9.10-21
- Initial CBL-Mariner import from Fedora 32 (license: MIT).
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.10-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.10-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.10-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.10-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.10-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.10-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.10-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.10-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.10-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.10-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.10-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.10-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.10-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.10-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.10-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.10-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Tue Dec 06 2011 Adam Jackson <ajax@redhat.com> - 0.9.10-4
- Rebuild for new libpng
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.10-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Wed Oct 06 2010 Kamil Dudka <kdudka@redhat.com> 0.9.10-2
- fix some memory leaks and compile-time warnings
* Mon Oct 04 2010 Robert Scheck <robert@fedoraproject.org> 0.9.10-1
- Upgrade to 0.9.10
* Wed Sep 29 2010 Jesse Keating <jkeating@redhat.com> 0.9.8-6
- Rebuilt for gcc bug 634757
* Wed Sep 15 2010 Kamil Dudka <kdudka@redhat.com> 0.9.8-5
- upstream patch for #632439
- check return value of theora_encode_init() (#627890)
* Wed Aug 25 2010 Kamil Dudka <kdudka@redhat.com> 0.9.8-4
- fix SIGSEGV in ucil_theora_encode_thread (#627161)
* Wed Jun 02 2010 Kamil Dudka <kdudka@redhat.com> 0.9.8-3
- fix SIGSEGV in ucil_alsa_fill_audio_buffer (#572966)
- fix SIGSEGV in ucil_theora_encode_thread (#595863)
* Fri Mar 12 2010 Kamil Dudka <kdudka@redhat.com> 0.9.8-2
- build the package in %%build
* Sun Feb 21 2010 Robert Scheck <robert@fedoraproject.org> 0.9.8-1
- Upgrade to 0.9.8 (#530702, #567109, #567110, #567111)
- Splitting of unicap into libunicap, libucil and libunicapgtk
* Sat Oct 24 2009 Robert Scheck <robert@fedoraproject.org> 0.9.7-1
- Upgrade to 0.9.7 (#530702)
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Thu Jun 18 2009 Dan Horak <dan[at]danny.cz> 0.9.5-2
- don't require libraw1394 on s390/s390x
* Sun May 03 2009 Robert Scheck <robert@fedoraproject.org> 0.9.5-1
- Upgrade to 0.9.5
* Mon Feb 23 2009 Robert Scheck <robert@fedoraproject.org> 0.9.3-2
- Rebuild against gcc 4.4 and rpm 4.6
* Mon Oct 13 2008 Robert Scheck <robert@fedoraproject.org> 0.9.3-1
- Upgrade to 0.9.3 (#466825, thanks to Hans de Goede)
- Enabled libv4l support for the new gspca kernel driver
* Sat Aug 09 2008 Robert Scheck <robert@fedoraproject.org> 0.2.23-4
- Rebuild to get missing dependencies back (#443015, #458527)
* Tue Aug 05 2008 Robert Scheck <robert@fedoraproject.org> 0.2.23-3
- Filter the unicap plugins which overlap with libv4l libraries
* Tue Jul 22 2008 Robert Scheck <robert@fedoraproject.org> 0.2.23-2
- Rebuild for libraw1394 2.0.0
* Mon May 19 2008 Robert Scheck <robert@fedoraproject.org> 0.2.23-1
- Upgrade to 0.2.23
- Corrected packaging of cpi/*.so files (thanks to Arne Caspari)
* Sat May 17 2008 Robert Scheck <robert@fedoraproject.org> 0.2.22-1
- Upgrade to 0.2.22 (#446021)
* Sat Feb 16 2008 Robert Scheck <robert@fedoraproject.org> 0.2.19-3
- Added patch to correct libdir paths (thanks to Ralf Corsepius)
* Mon Feb 04 2008 Robert Scheck <robert@fedoraproject.org> 0.2.19-2
- Changes to match with Fedora Packaging Guidelines (#431381)
* Mon Feb 04 2008 Robert Scheck <robert@fedoraproject.org> 0.2.19-1
- Upgrade to 0.2.19
- Initial spec file for Fedora and Red Hat Enterprise Linux

View File

@ -0,0 +1,78 @@
From 6cf16e964e312a2e040cc3e7b45be21715961a19 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Thu, 7 Oct 2010 11:02:48 +0200
Subject: [PATCH 2/2] linunicap: do not compare arrays with NULL
---
cpi/vid21394/vid21394_base.c | 2 +-
cpi/vid21394/vid21394_cpi.c | 3 ---
src/unicap_helpers.c | 10 +++++-----
3 files changed, 6 insertions(+), 9 deletions(-)
diff --git a/cpi/vid21394/vid21394_base.c b/cpi/vid21394/vid21394_base.c
index 464a760..2ba576d 100644
--- a/cpi/vid21394/vid21394_base.c
+++ b/cpi/vid21394/vid21394_base.c
@@ -501,7 +501,7 @@ static unicap_status_t _vid21394_send_fcp_command_new( vid21394handle_t vid21394
raw1394handle_t raw1394handle = vid21394handle->raw1394handle;
- nodeid_t nodeid = nodeid = 0xffc0 | vid21394handle->node;
+ nodeid_t nodeid = 0xffc0 | vid21394handle->node;
unicap_status_t status = STATUS_SUCCESS;
diff --git a/cpi/vid21394/vid21394_cpi.c b/cpi/vid21394/vid21394_cpi.c
index e3778e4..738d0d7 100644
--- a/cpi/vid21394/vid21394_cpi.c
+++ b/cpi/vid21394/vid21394_cpi.c
@@ -654,7 +654,6 @@ int cpi_enumerate_formats( void *cpi_data, unicap_format_t *format, int index )
return STATUS_INVALID_PARAMETER;
}
- if( !data->current_formats )
{
int tmp;
cpi_reenumerate_formats( cpi_data, &tmp );
@@ -683,7 +682,6 @@ int cpi_set_format( void *cpi_data, unicap_format_t *format )
TRACE( "cpi_set_format\n" );
- if( !data->current_formats )
{
int tmp;
cpi_reenumerate_formats( cpi_data, &tmp );
@@ -845,7 +843,6 @@ unicap_status_t cpi_get_format( void *cpi_data, unicap_format_t *format )
{
vid21394_data_t *data = cpi_data;
- if( !data->current_formats )
{
int tmp;
cpi_reenumerate_formats( cpi_data, &tmp );
diff --git a/src/unicap_helpers.c b/src/unicap_helpers.c
index c2e1ec4..67578ac 100644
--- a/src/unicap_helpers.c
+++ b/src/unicap_helpers.c
@@ -105,13 +105,13 @@ unicap_status_t unicap_describe_device( unicap_device_t *device, char *buffer, s
"Vendor id: %u ( 0x%x )\n"\
"cpi: %s\n"\
"device: %s\n",
- device->identifier ? device->identifier : "(nil)",
- device->model_name ? device->model_name : "(nil)",
- device->vendor_name ? device->vendor_name : "(nil)",
+ device->identifier,
+ device->model_name,
+ device->vendor_name,
device->model_id,
device->vendor_id, device->vendor_id,
- device->cpi_layer ? device->cpi_layer : "(nil)",
- device->device ? device->device : "(nil)" );
+ device->cpi_layer,
+ device->device);
strncpy( buffer, tmp_buffer, (*buffer_size)-1 );
--
1.7.2.3

View File

@ -0,0 +1,14 @@
Patch by Robert Scheck <robert@fedoraproject.org> for libunicap <= 0.9.12 to work around
the issue of /usr/@DATADIRNAME@/locale/ rather /usr/share/locale/ on Fedora 22 (and newer).
--- libunicap-0.9.12/po/Makefile.in.in 2009-09-21 18:08:22.000000000 +0200
+++ libunicap-0.9.12/po/Makefile.in.in.datadirname 2015-05-31 21:44:58.000000000 +0200
@@ -33,7 +33,7 @@
datadir = @datadir@
datarootdir = @datarootdir@
libdir = @libdir@
-DATADIRNAME = @DATADIRNAME@
+DATADIRNAME = share
itlocaledir = $(prefix)/$(DATADIRNAME)/locale
subdir = po
install_sh = @install_sh@

View File

@ -0,0 +1,25 @@
Patch by Robert Scheck <robert@fedoraproject.org> for libunicap <= 0.9.12 to declare the
struct as extern in header files (https://gcc.gnu.org/gcc-10/porting_to.html).
--- libunicap-0.9.12/common/queue.h 2010-01-17 08:49:29.000000000 +0100
+++ libunicap-0.9.12/common/queue.h.gcc10 2020-02-09 23:30:16.963136320 +0100
@@ -24,7 +24,7 @@
#include <sys/time.h>
#include <semaphore.h>
-struct _unicap_queue
+extern struct _unicap_queue
{
sem_t sema;
sem_t *psema;
--- libunicap-0.9.12/cpi/euvccam/queue.h 2010-01-19 07:52:49.000000000 +0100
+++ libunicap-0.9.12/cpi/euvccam/queue.h.gcc10 2020-02-09 23:30:05.037048713 +0100
@@ -24,7 +24,7 @@
#include <sys/time.h>
#include <semaphore.h>
-struct _unicap_queue
+extern struct _unicap_queue
{
sem_t sema;
sem_t *psema;

View File

@ -0,0 +1,15 @@
Patch by Kamil Dudka <kdudka@redhat.com> for libunicap >= 0.9.12, to get it building on Red Hat
Enterprise Linux 5 (or derivates); see https://bugzilla.redhat.com/show_bug.cgi?id=635377#c2 for
more details.
--- libunicap-0.9.12/cpi/v4l2cpi/buffermanager.c 2010-08-17 18:13:08.000000000 +0200
+++ libunicap-0.9.12/cpi/v4l2cpi/buffermanager.c.includes 2010-10-04 21:44:09.942065713 +0200
@@ -1,5 +1,8 @@
#include "config.h"
+#include <sys/time.h>
+
+#include <linux/ioctl.h>
#include <linux/types.h>
#include <linux/videodev2.h>
#include <semaphore.h>

View File

@ -0,0 +1,126 @@
From 739d6bde46f6d7dd68e228f2a27eb039d0550999 Mon Sep 17 00:00:00 2001
From: Kamil Dudka <kdudka@redhat.com>
Date: Thu, 7 Oct 2010 10:56:06 +0200
Subject: [PATCH] libunicap: fix various memory errors
---
cpi/dcam/dcam_v_modes.c | 3 ++-
cpi/euvccam/euvccam_capture.c | 1 +
cpi/v4l/v4l.c | 2 +-
cpi/v4l2cpi/v4l2.c | 12 ++++++++++--
cpi/vid21394/vid21394_cpi.c | 5 ++---
src/unicap.c | 2 ++
6 files changed, 18 insertions(+), 7 deletions(-)
diff --git a/cpi/dcam/dcam_v_modes.c b/cpi/dcam/dcam_v_modes.c
index 2b8e45a..05dd318 100644
--- a/cpi/dcam/dcam_v_modes.c
+++ b/cpi/dcam/dcam_v_modes.c
@@ -182,7 +182,8 @@ unicap_status_t _dcam_prepare_format_array( dcam_handle_t dcamhandle,
int index = _dcam_get_mode_index( f, i );
TRACE( "f: %d m: %d index: %d (%s)\n", f, i, index, _dcam_unicap_formats[index].identifier );
TRACE( "size: %d x %d\n", _dcam_unicap_formats[index].size.width, _dcam_unicap_formats[index].size.height );
- memcpy( format_array + current_format, &_dcam_unicap_formats[index], sizeof( unicap_format_t ) );
+ if( 0 < index )
+ memcpy( format_array + current_format, &_dcam_unicap_formats[index], sizeof( unicap_format_t ) );
current_format++;
}
}
diff --git a/cpi/euvccam/euvccam_capture.c b/cpi/euvccam/euvccam_capture.c
index 2909bdb..d4ea60e 100644
--- a/cpi/euvccam/euvccam_capture.c
+++ b/cpi/euvccam/euvccam_capture.c
@@ -231,6 +231,7 @@ static void *capture_thread( euvccam_handle_t handle )
if( ret < 0 ){
TRACE( "Failed to submit urb!\n" );
perror( "ioctl" );
+ free( urb );
return NULL;
}
diff --git a/cpi/v4l/v4l.c b/cpi/v4l/v4l.c
index 91b7e87..416dc30 100644
--- a/cpi/v4l/v4l.c
+++ b/cpi/v4l/v4l.c
@@ -292,7 +292,7 @@ static unicap_status_t v4l_open( void **cpi_data, unicap_device_t *device )
v4l_handle_t v4lhandle;
*cpi_data = malloc( sizeof( struct _v4l_handle ) );
- if( !cpi_data )
+ if( !*cpi_data )
{
TRACE( "malloc failed\n" );
return STATUS_FAILURE;
diff --git a/cpi/v4l2cpi/v4l2.c b/cpi/v4l2cpi/v4l2.c
index ba3d5b3..925659c 100644
--- a/cpi/v4l2cpi/v4l2.c
+++ b/cpi/v4l2cpi/v4l2.c
@@ -864,7 +864,7 @@ static unicap_status_t v4l2_reenumerate_formats( void *cpi_data, int *_pcount )
sizes = build_format_size_table( handle, v4l2_fmt.pixelformat, &size_count );
- if( size_count == 0 )
+ if( sizes == NULL )
{
handle->unicap_formats[v4l2_fmt.index].min_size.width =
handle->unicap_formats[v4l2_fmt.index].min_size.height = 1;
@@ -2148,6 +2150,8 @@ static unicap_status_t v4l2_queue_buffer( void *cpi_data, unicap_data_buffer_t *
else
{
TRACE( "queue buffer failed\n" );
+ free( queue );
+ /* FIXME: should return STATUS_FAILURE? */
}
if( ( status == STATUS_NO_BUFFERS ) && ( buffer->type == UNICAP_BUFFER_TYPE_SYSTEM ) )
@@ -2155,6 +2159,10 @@ static unicap_status_t v4l2_queue_buffer( void *cpi_data, unicap_data_buffer_t *
status = STATUS_SUCCESS;
}
}
+ else
+ {
+ free( queue );
+ }
return STATUS_SUCCESS;
diff --git a/cpi/vid21394/vid21394_cpi.c b/cpi/vid21394/vid21394_cpi.c
index c79e8db..e3778e4 100644
--- a/cpi/vid21394/vid21394_cpi.c
+++ b/cpi/vid21394/vid21394_cpi.c
@@ -504,9 +504,6 @@ int cpi_close( void *cpi_data )
{
vid21394_data_t *data = cpi_data;
- vid21394_close( data->vid21394handle );
-
-
ucutil_destroy_queue( data->in_queue );
ucutil_destroy_queue( data->out_queue );
@@ -515,6 +512,8 @@ int cpi_close( void *cpi_data )
free( data->vid21394handle->unicap_handle );
}
+ vid21394_close( data->vid21394handle );
+
g_instance_count--;
free( data );
diff --git a/src/unicap.c b/src/unicap.c
index 5cfa673..f56c6f0 100644
--- a/src/unicap.c
+++ b/src/unicap.c
@@ -1521,7 +1521,9 @@ unicap_status_t unicap_data_buffer_unref( unicap_data_buffer_t *buffer )
buffer->private->unref_func (buffer, buffer->private->unref_func_data);
}
if (buffer->private->ref_count == 0 ){
+ sem_post (&buffer->private->lock);
unicap_data_buffer_free( buffer );
+ return STATUS_SUCCESS;
}
}else{
TRACE( "unref of a buffer with refcount <= 0!" );
--
1.7.2.3

View File

@ -0,0 +1,25 @@
Patch by Robert Scheck <robert@fedoraproject.org> for libunicap >= 0.9.12, which switches
after the removal of v4l1 from the Linux kernel to the libv4l1compat header of libv4l.
--- libunicap-0.9.12/cpi/v4l/v4l.c 2010-01-17 08:49:29.000000000 +0100
+++ libunicap-0.9.12/cpi/v4l/v4l.c.videodev 2011-10-09 02:50:26.000000000 +0200
@@ -49,7 +49,7 @@
#endif
#include <debug.h>
-#include <linux/videodev.h>
+#include <libv4l1-videodev.h>
#include <linux/videodev2.h> // for v4l2 checks
#include "v4l.h"
--- libunicap-0.9.12/cpi/v4l2cpi/uvcvideo.h 2010-01-17 08:49:29.000000000 +0100
+++ libunicap-0.9.12/cpi/v4l2cpi/uvcvideo.h.videodev 2011-10-09 02:50:09.000000000 +0200
@@ -2,7 +2,7 @@
#define _USB_VIDEO_H_
#include <linux/kernel.h>
-#include <linux/videodev.h>
+#include <libv4l1-videodev.h>
#include "uvc_compat.h"

View File

@ -0,0 +1,433 @@
cpi/dcam/dcam_capture.c | 8 ----
cpi/dcam/dcam_property.c | 2 -
cpi/euvccam/debayer.c | 5 ---
cpi/euvccam/euvccam_colorproc.c | 2 +
cpi/euvccam/euvccam_cpi.c | 2 +
cpi/euvccam/euvccam_device.c | 2 +-
cpi/euvccam/euvccam_usb.c | 1 +
cpi/euvccam/logging.c | 1 +
cpi/v4l2cpi/buffermanager.c | 19 +---------
cpi/v4l2cpi/tiseuvccam.c | 2 +
cpi/v4l2cpi/tisuvccam.c | 31 +---------------
cpi/v4l2cpi/v4l2.c | 74 +--------------------------------------
cpi/vid21394/vid21394_base.c | 3 +-
src/unicap_helpers.c | 2 +-
14 files changed, 16 insertions(+), 138 deletions(-)
diff --git a/cpi/dcam/dcam_capture.c b/cpi/dcam/dcam_capture.c
index f92f757..068a78f 100644
--- a/cpi/dcam/dcam_capture.c
+++ b/cpi/dcam/dcam_capture.c
@@ -60,14 +60,6 @@ static void new_frame_event( dcam_handle_t dcamhandle, unicap_data_buffer_t *buf
}
}
-static void drop_frame_event( dcam_handle_t dcamhandle )
-{
- if( dcamhandle->event_callback )
- {
- dcamhandle->event_callback( dcamhandle->unicap_handle, UNICAP_EVENT_NEW_FRAME );
- }
-}
-
static void cleanup_handler( void *arg )
{
TRACE( "cleanup_handler\n" );
diff --git a/cpi/dcam/dcam_property.c b/cpi/dcam/dcam_property.c
index 8199162..6bf1dff 100644
--- a/cpi/dcam/dcam_property.c
+++ b/cpi/dcam/dcam_property.c
@@ -1017,7 +1017,6 @@ unicap_status_t dcam_init_trigger_property( dcam_handle_t dcamhandle,
// TRIGGER_POLARITY
if( ( dcam_property->register_inq >> 26 ) & 0x1 )
{
- int i;
strcpy( dcam_property->unicap_property.menu_item, dcamhandle->trigger_polarities[( dcam_property->register_default >> 26 ) & 1] );
dcam_property->unicap_property.menu.menu_item_count = 2;
dcam_property->unicap_property.menu.menu_items = dcamhandle->trigger_polarities;
@@ -1430,7 +1429,6 @@ unicap_status_t dcam_set_property( dcam_handle_t dcamhandle,
case PPTY_TYPE_TRIGGER_POLARITY:
{
- int i;
quadlet_t quad = 0;
status = _dcam_read_register( dcamhandle->raw1394handle,
diff --git a/cpi/euvccam/debayer.c b/cpi/euvccam/debayer.c
index 1f0bffc..4e04506 100644
--- a/cpi/euvccam/debayer.c
+++ b/cpi/euvccam/debayer.c
@@ -88,7 +88,6 @@ void debayer_calculate_rbgain( unicap_data_buffer_t *buffer, int *rgain, int *bg
void debayer_ccm_rgb24_nn( unicap_data_buffer_t *destbuf, unicap_data_buffer_t *srcbuf, debayer_data_t *data )
{
int i, j;
- int dest_offset = 0;
unsigned char *dest = destbuf->data;
unsigned char *source = srcbuf->data;
int width = srcbuf->format.size.width;
@@ -159,15 +158,12 @@ void debayer_ccm_rgb24_nn( unicap_data_buffer_t *destbuf, unicap_data_buffer_t *
void debayer_ccm_rgb24_nn_be( unicap_data_buffer_t *destbuf, unicap_data_buffer_t *srcbuf, debayer_data_t *data )
{
int i, j;
- int dest_offset = 0;
unsigned char *dest = destbuf->data;
unsigned char *source = srcbuf->data;
int width = srcbuf->format.size.width;
int height = srcbuf->format.size.height;
int rgain, bgain;
- static int odd = 0;
-
if( data->use_rbgain )
{
rgain = data->rgain;
@@ -242,7 +238,6 @@ void debayer_ccm_rgb24_nn_be( unicap_data_buffer_t *destbuf, unicap_data_buffer_
void debayer_ccm_rgb24_gr_nn( unicap_data_buffer_t *destbuf, unicap_data_buffer_t *srcbuf, debayer_data_t *data )
{
int i, j;
- int dest_offset = 0;
unsigned char *dest = destbuf->data;
unsigned char *source = srcbuf->data;
int width = srcbuf->format.size.width;
diff --git a/cpi/euvccam/euvccam_colorproc.c b/cpi/euvccam/euvccam_colorproc.c
index 807ae65..adf98c3 100644
--- a/cpi/euvccam/euvccam_colorproc.c
+++ b/cpi/euvccam/euvccam_colorproc.c
@@ -21,6 +21,8 @@
#include "euvccam_cpi.h"
#include "debayer.h"
+#include <string.h>
+
void euvccam_colorproc_by8_rgb24_nn( euvccam_handle_t handle, unicap_data_buffer_t *dest, unicap_data_buffer_t *src )
{
#ifdef __SSE2__
diff --git a/cpi/euvccam/euvccam_cpi.c b/cpi/euvccam/euvccam_cpi.c
index 73d413a..8e39343 100644
--- a/cpi/euvccam/euvccam_cpi.c
+++ b/cpi/euvccam/euvccam_cpi.c
@@ -94,6 +94,8 @@ static struct _unicap_cpi cpi_s =
cpi_set_event_notify: (cpi_set_event_notify_t)euvccam_set_event_notify,
};
+void log_init( void );
+
unicap_status_t cpi_register( struct _unicap_cpi *reg_data )
{
memcpy( reg_data, &cpi_s, sizeof( struct _unicap_cpi ) );
diff --git a/cpi/euvccam/euvccam_device.c b/cpi/euvccam/euvccam_device.c
index 73a2be3..7168cdf 100644
--- a/cpi/euvccam/euvccam_device.c
+++ b/cpi/euvccam/euvccam_device.c
@@ -788,7 +788,7 @@ unicap_status_t euvccam_device_set_gpout( euvccam_handle_t handle, unicap_proper
unicap_status_t status = STATUS_SUCCESS;
unsigned char val = (property->flags & UNICAP_FLAGS_ON_OFF)?1:0;
- printf( "%lld %d\n", property->flags, val );
+ printf( "%lld %d\n", (long long int) property->flags, val );
status = euvccam_usb_ctrl_msg( handle->dev.fd,
EP0_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
diff --git a/cpi/euvccam/euvccam_usb.c b/cpi/euvccam/euvccam_usb.c
index 4059c9e..fcff74b 100644
--- a/cpi/euvccam/euvccam_usb.c
+++ b/cpi/euvccam/euvccam_usb.c
@@ -24,6 +24,7 @@
#include <fcntl.h>
#include <sys/ioctl.h>
#include <unicap.h>
+#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <linux/usbdevice_fs.h>
diff --git a/cpi/euvccam/logging.c b/cpi/euvccam/logging.c
index 065501e..7b98daa 100644
--- a/cpi/euvccam/logging.c
+++ b/cpi/euvccam/logging.c
@@ -21,6 +21,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <stdarg.h>
+#include <string.h>
FILE *g_logfp = NULL;
int g_log_modules_mask = 0xffff;
diff --git a/cpi/v4l2cpi/buffermanager.c b/cpi/v4l2cpi/buffermanager.c
index 7c0cbae..64cb57f 100644
--- a/cpi/v4l2cpi/buffermanager.c
+++ b/cpi/v4l2cpi/buffermanager.c
@@ -21,6 +21,8 @@
#define MAX_BUFFERS 16
#if USE_LIBV4L
+# include <libv4l2.h>
+
#define OPEN v4l2_open
#define CLOSE v4l2_close
#define IOCTL v4l2_ioctl
@@ -60,8 +62,6 @@ struct buffer_mgr
#define BUFFER_MGR_UNLOCK(mgr) { sem_post( &mgr->lock); }
-static v4l2cpi_buffer_t *buffer_mgr_get_cpi_buffer( buffer_mgr_t mgr, unicap_data_buffer_t *buffer );
-
static void v4l2_data_buffer_unref( unicap_data_buffer_t *buffer, buffer_mgr_t mgr )
{
@@ -167,21 +167,6 @@ void buffer_mgr_destroy( buffer_mgr_t mgr )
}
-static v4l2cpi_buffer_t *buffer_mgr_get_cpi_buffer( buffer_mgr_t mgr, unicap_data_buffer_t *buffer )
-{
- int i;
-
- for( i = 0; i < mgr->num_buffers; i++ ){
- if (&mgr->buffers[i].data_buffer == buffer){
- return &mgr->buffers[i];
- }
- }
-
- return NULL;
-}
-
-
-
unicap_status_t buffer_mgr_queue_all( buffer_mgr_t mgr )
{
int i;
diff --git a/cpi/v4l2cpi/tiseuvccam.c b/cpi/v4l2cpi/tiseuvccam.c
index 93729a5..72a3515 100644
--- a/cpi/v4l2cpi/tiseuvccam.c
+++ b/cpi/v4l2cpi/tiseuvccam.c
@@ -37,6 +37,8 @@
#define FOURCC(a,b,c,d) (unsigned int)((((unsigned int)d)<<24)+(((unsigned int)c)<<16)+(((unsigned int)b)<<8)+a)
#if USE_LIBV4L
+# include <libv4l2.h>
+
#define OPEN v4l2_open
#define CLOSE v4l2_close
#define IOCTL v4l2_ioctl
diff --git a/cpi/v4l2cpi/tisuvccam.c b/cpi/v4l2cpi/tisuvccam.c
index 62ee147..029b48d 100644
--- a/cpi/v4l2cpi/tisuvccam.c
+++ b/cpi/v4l2cpi/tisuvccam.c
@@ -39,6 +39,8 @@
#if USE_LIBV4L
+# include <libv4l2.h>
+
#define OPEN v4l2_open
#define CLOSE v4l2_close
#define IOCTL v4l2_ioctl
@@ -358,18 +360,6 @@ static struct ppty_info TISUVCPropertyOverrides[] =
}
};
-static struct uvc_format TISUVCFormats[] =
-{
- {
- type: V4L2_BUF_TYPE_VIDEO_CAPTURE,
- bpp: 8,
- colorspace: 0,
- fcc: FOURCC( 'Y', '8', '0', '0' ),
- flags: 0,
- name: "30303859-0000-0010-8000-00aa003",
- }
-};
-
static void tisuvccam_add_controls( int fd )
{
int i;
@@ -404,21 +394,6 @@ static void tisuvccam_add_controls( int fd )
}
}
-static void tisuvccam_add_formats( int fd )
-{
-/* int i; */
-/* int n = sizeof( TISUVCFormats ) / sizeof( struct uvc_format ); */
-
-/* for( i = 0; i < n; i++ ) */
-/* { */
-/* if( ioctl( fd, UVCIOC_FMT_SET, &TISUVCFormats[i] ) < 0 ) */
-/* { */
-/* TRACE( "Failed to set format info for %d\n", i ); */
-/* } */
-/* } */
-}
-
-
int tisuvccam_probe( v4l2_handle_t handle, const char *path )
{
@@ -661,8 +636,6 @@ unicap_status_t tisuvccam_set_property( v4l2_handle_t handle, unicap_property_t
{
case XU_AUTO_SHUTTER_MAX:
{
- struct uvc_xu_control autoctrl;
- __u8 u8data;
/* u8data = ( property->flags & UNICAP_FLAGS_AUTO ) ? 1 : 0; */
diff --git a/cpi/v4l2cpi/v4l2.c b/cpi/v4l2cpi/v4l2.c
index 925659c..a8e0c92 100644
--- a/cpi/v4l2cpi/v4l2.c
+++ b/cpi/v4l2cpi/v4l2.c
@@ -252,7 +252,6 @@ static unicap_status_t v4l2_set_event_notify( void *cpi_data,
unicap_handle_t unicap_handle );
static unicap_status_t queue_buffer( v4l2_handle_t handle, unicap_data_buffer_t *buffer );
-static unicap_status_t queue_system_buffers( v4l2_handle_t handle );
static void v4l2_capture_thread( v4l2_handle_t handle );
static struct _unicap_cpi cpi_s =
@@ -1440,7 +1439,7 @@ static unicap_status_t add_properties_ext( v4l2_handle_t handle, int *ppty_index
int ret;
v4l2ctrl.id = V4L2_CTRL_FLAG_NEXT_CTRL;
- while( ret = IOCTL( handle->fd, VIDIOC_QUERYCTRL, &v4l2ctrl ) == 0 )
+ while(( ret = IOCTL( handle->fd, VIDIOC_QUERYCTRL, &v4l2ctrl ) == 0 ))
{
TRACE( "++%s++\n", v4l2ctrl.name );
@@ -1918,7 +1917,6 @@ static unicap_status_t v4l2_get_property( void *cpi_data, unicap_property_t *pro
static unicap_status_t v4l2_capture_start( void *cpi_data )
{
v4l2_handle_t handle = (v4l2_handle_t) cpi_data;
- struct v4l2_requestbuffers v4l2_reqbuf;
unicap_status_t status = STATUS_SUCCESS;
@@ -1952,7 +1950,6 @@ static unicap_status_t v4l2_capture_stop( void *cpi_data )
v4l2_handle_t handle = (v4l2_handle_t) cpi_data;
int type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- int i;
TRACE( "v4l2_capture_stop\n" );
@@ -2069,69 +2066,6 @@ static unicap_status_t queue_buffer( v4l2_handle_t handle, unicap_data_buffer_t
return STATUS_SUCCESS;
}
-static unicap_status_t queue_system_buffers( v4l2_handle_t handle )
-{
- struct v4l2_buffer v4l2_buffer;
- memset( &v4l2_buffer, 0x0, sizeof( v4l2_buffer ) );
- v4l2_buffer.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- v4l2_buffer.length = handle->current_format.buffer_size;
- switch( handle->io_method )
- {
- case CPI_V4L2_IO_METHOD_MMAP:
- {
- int i;
- v4l2_buffer.index = 0;
- v4l2_buffer.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
- v4l2_buffer.memory = V4L2_MEMORY_MMAP;
-
- if( sem_wait( &handle->sema ) )
- {
- TRACE( "SEM_WAIT FAILED!\n" );
- return STATUS_FAILURE;
- }
-
- for( i = 0; i < handle->buffer_count; i++ )
- {
- int ret;
- if( ( ( handle->qindex + 1 ) % handle->buffer_count ) == handle->dqindex )
- {
- TRACE( "NO BUFFERS\n" );
- sem_post( &handle->sema );
- return STATUS_NO_BUFFERS;
- }
-
- v4l2_buffer.index = handle->qindex;
- TRACE( "Q: index = %d type = %u, memory = %u dqindex = %d\n", handle->qindex, v4l2_buffer.type, v4l2_buffer.memory, handle->dqindex );
- handle->qindex = ( handle->qindex + 1 ) % handle->buffer_count;
- v4l2_buffer.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-
- if( ( ret = IOCTL( handle->fd, VIDIOC_QBUF, &v4l2_buffer ) ) < 0 )
- {
- if( ( ret == -ENODEV ) && !handle->removed && handle->event_callback )
- {
- handle->event_callback( handle->unicap_handle, UNICAP_EVENT_DEVICE_REMOVED );
- handle->removed = 1;
- }
- TRACE( "VIDIOC_QBUF ioctl failed: %s\n", strerror( errno ) );
- sem_post( &handle->sema );
- return STATUS_FAILURE;
- }
-
- if( sem_post( &handle->sema ) )
- {
- TRACE( "SEM_POST FAILED\n" );
- return STATUS_FAILURE;
- }
- }
- }
- break;
- default:
- return STATUS_FAILURE;
- }
-
- return STATUS_SUCCESS;
-}
-
static unicap_status_t v4l2_queue_buffer( void *cpi_data, unicap_data_buffer_t *buffer )
{
v4l2_handle_t handle = (v4l2_handle_t) cpi_data;
@@ -2231,17 +2165,11 @@ static unicap_status_t v4l2_set_event_notify( void *cpi_data, unicap_event_callb
static void v4l2_capture_thread( v4l2_handle_t handle )
{
- unicap_data_buffer_t new_frame_buffer;
-
handle->dqindex = -1;
while( !handle->quit_capture_thread )
{
- unicap_queue_t *entry;
- struct timeval ctime;
- int old_index;
int drop = 0;
- int ret = 0;
unicap_data_buffer_t *data_buffer;
diff --git a/cpi/vid21394/vid21394_base.c b/cpi/vid21394/vid21394_base.c
index 2ba576d..8339845 100644
--- a/cpi/vid21394/vid21394_base.c
+++ b/cpi/vid21394/vid21394_base.c
@@ -1333,7 +1333,7 @@ unicap_status_t vid21394_rs232_io( vid21394handle_t vid21394handle,
/* TRACE( "rs232io fcp: %08llx out_data_length: %d, in_data_length: %d\n", fcp, out_data_length, in_data_length ); */
- return( _vid21394_send_fcp_command_new( vid21394handle, fcp, bit, out_data, out_data_length, in_data, (unsigned int *)&in_data_length ) );
+ return( _vid21394_send_fcp_command_new( vid21394handle, fcp, bit, out_data, out_data_length, in_data, (size_t *)&in_data_length ) );
}
unicap_status_t vid21394_read_rs232( vid21394handle_t vid21394handle,
@@ -1629,7 +1629,6 @@ int vid21394_wait_buffer( vid21394handle_t vid21394handle, void **buffer )
*/
int vid21394_poll_buffer( vid21394handle_t vid21394handle )
{
- int buffers = 0;
/* unicap_queue_t *entry = &vid21394handle->ready_buffers; */
/* while( entry->next ) */
diff --git a/src/unicap_helpers.c b/src/unicap_helpers.c
index 67578ac..ae73f5a 100644
--- a/src/unicap_helpers.c
+++ b/src/unicap_helpers.c
@@ -292,7 +292,7 @@ unicap_status_t unicap_describe_property( unicap_property_t *property, char *buf
property->range.min,
property->range.max,
property->stepping,
- property->property_data_size );
+ (int) property->property_data_size );
strncpy( buffer, tmp_buffer, *buffer_size );

View File

@ -0,0 +1,15 @@
diff --git a/cpi/v4l2cpi/v4l2.c b/cpi/v4l2cpi/v4l2.c
index a8e0c92..ec4c8db 100644
--- a/cpi/v4l2cpi/v4l2.c
+++ b/cpi/v4l2cpi/v4l2.c
@@ -1928,6 +1928,10 @@ static unicap_status_t v4l2_capture_start( void *cpi_data )
}
handle->buffer_mgr = buffer_mgr_create( handle->fd, &handle->current_format );
+ if( !handle->buffer_mgr )
+ {
+ return STATUS_FAILURE;
+ }
handle->capture_running = 1;

View File

@ -0,0 +1,138 @@
include/unicap.h | 2 +-
src/unicap.c | 62 +++++++++++++++++++++++++++---------------------------
2 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/include/unicap.h b/include/unicap.h
index 43a3040..e516734 100644
--- a/include/unicap.h
+++ b/include/unicap.h
@@ -215,7 +215,7 @@ struct _unicap_data_buffer_t
unicap_buffer_flags_t flags;
- unicap_data_buffer_private_t *private;
+ unicap_data_buffer_private_t *priv;
};
typedef struct _unicap_data_buffer_t unicap_data_buffer_t;
diff --git a/src/unicap.c b/src/unicap.c
index f56c6f0..adac44d 100644
--- a/src/unicap.c
+++ b/src/unicap.c
@@ -1467,7 +1467,7 @@ unicap_data_buffer_t *unicap_data_buffer_new( unicap_format_t *format )
buffer->buffer_size = buffer->format.buffer_size;
buffer->data = malloc( buffer->buffer_size );
unicap_copy_format( &buffer->format, format );
- buffer->private = NULL;
+ buffer->priv = NULL;
return buffer;
}
@@ -1475,28 +1475,28 @@ unicap_data_buffer_t *unicap_data_buffer_new( unicap_format_t *format )
void unicap_data_buffer_init( unicap_data_buffer_t *buffer, unicap_format_t *format, unicap_data_buffer_init_data_t *init_data )
{
unicap_copy_format( &buffer->format, format );
- buffer->private = malloc( sizeof( unicap_data_buffer_private_t ) );
- sem_init( &buffer->private->lock, 0, 1 );
- buffer->private->ref_count = 0;
- buffer->private->free_func = init_data->free_func;
- buffer->private->free_func_data = init_data->free_func_data;
- buffer->private->ref_func = init_data->ref_func;
- buffer->private->ref_func_data = init_data->ref_func_data;
- buffer->private->unref_func = init_data->unref_func;
- buffer->private->unref_func_data = init_data->unref_func_data;
+ buffer->priv = malloc( sizeof( unicap_data_buffer_private_t ) );
+ sem_init( &buffer->priv->lock, 0, 1 );
+ buffer->priv->ref_count = 0;
+ buffer->priv->free_func = init_data->free_func;
+ buffer->priv->free_func_data = init_data->free_func_data;
+ buffer->priv->ref_func = init_data->ref_func;
+ buffer->priv->ref_func_data = init_data->ref_func_data;
+ buffer->priv->unref_func = init_data->unref_func;
+ buffer->priv->unref_func_data = init_data->unref_func_data;
}
void unicap_data_buffer_free( unicap_data_buffer_t *buffer )
{
- sem_wait( &buffer->private->lock );
- if( buffer->private->ref_count > 0 ){
- TRACE( "freeing a buffer with refcount = %d!!!\n", buffer->private.refcount );
+ sem_wait( &buffer->priv->lock );
+ if( buffer->priv->ref_count > 0 ){
+ TRACE( "freeing a buffer with refcount = %d!!!\n", buffer->priv.refcount );
}
- if( buffer->private->free_func ){
- buffer->private->free_func( buffer, buffer->private->free_func_data );
+ if( buffer->priv->free_func ){
+ buffer->priv->free_func( buffer, buffer->priv->free_func_data );
}
- sem_destroy( &buffer->private->lock );
+ sem_destroy( &buffer->priv->lock );
if (buffer->data)
free( buffer->data );
free( buffer );
@@ -1504,9 +1504,9 @@ void unicap_data_buffer_free( unicap_data_buffer_t *buffer )
unicap_status_t unicap_data_buffer_ref( unicap_data_buffer_t *buffer )
{
- sem_wait( &buffer->private->lock );
- buffer->private->ref_count++;
- sem_post( &buffer->private->lock );
+ sem_wait( &buffer->priv->lock );
+ buffer->priv->ref_count++;
+ sem_post( &buffer->priv->lock );
return STATUS_SUCCESS;
}
@@ -1514,14 +1514,14 @@ unicap_status_t unicap_data_buffer_ref( unicap_data_buffer_t *buffer )
unicap_status_t unicap_data_buffer_unref( unicap_data_buffer_t *buffer )
{
unicap_status_t status = STATUS_SUCCESS;
- sem_wait( &buffer->private->lock );
- if( buffer->private->ref_count > 0 ){
- buffer->private->ref_count--;
- if (buffer->private->unref_func){
- buffer->private->unref_func (buffer, buffer->private->unref_func_data);
+ sem_wait( &buffer->priv->lock );
+ if( buffer->priv->ref_count > 0 ){
+ buffer->priv->ref_count--;
+ if (buffer->priv->unref_func){
+ buffer->priv->unref_func (buffer, buffer->priv->unref_func_data);
}
- if (buffer->private->ref_count == 0 ){
- sem_post (&buffer->private->lock);
+ if (buffer->priv->ref_count == 0 ){
+ sem_post (&buffer->priv->lock);
unicap_data_buffer_free( buffer );
return STATUS_SUCCESS;
}
@@ -1529,23 +1529,23 @@ unicap_status_t unicap_data_buffer_unref( unicap_data_buffer_t *buffer )
TRACE( "unref of a buffer with refcount <= 0!" );
status = STATUS_FAILURE;
}
- sem_post (&buffer->private->lock);
+ sem_post (&buffer->priv->lock);
return status;
}
unsigned int unicap_data_buffer_get_refcount( unicap_data_buffer_t *buffer )
{
- return buffer->private->ref_count;
+ return buffer->priv->ref_count;
}
void *unicap_data_buffer_set_user_data( unicap_data_buffer_t *buffer, void *data )
{
- void *old_data = buffer->private->user_data;
- buffer->private->user_data = data;
+ void *old_data = buffer->priv->user_data;
+ buffer->priv->user_data = data;
return old_data;
}
void *unicap_data_buffer_get_user_data( unicap_data_buffer_t *buffer )
{
- return buffer->private->user_data;
+ return buffer->priv->user_data;
}

View File

@ -0,0 +1,4 @@
#!/bin/sh
# The original script name has been passed as the first argument:
"$@" | sed -e '/^libdcam.so/d' -e '/^libv4l.so/d' -e '/^libv4l2cpi.so/d' -e '/^libvid21394.so/d'

View File

@ -0,0 +1,6 @@
{
"Signatures": {
"libunicap-0.9.12.tar.gz": "498fd13432e7fb14141337f284e237a81b357bc10e4407638b86b946aab5ec17",
"libunicap-filter.sh": "0f9592fa78fdffddc73cc51135dab5e2f215057bb07ea0467f5a8cf2a0ab9f72"
}
}

View File

@ -0,0 +1,243 @@
Summary: Library to access different kinds of (video) capture devices
Name: libunicap
Version: 0.9.12
Release: 28%{?dist}
License: GPL-2.0-or-later
Vendor: Microsoft Corporation
Distribution: Mariner
URL: https://www.unicap-imaging.org/
Source0: %{_mariner_sources_url}/%{name}-%{version}.tar.gz
Source1: %{name}-filter.sh
Patch0: libunicap-0.9.12-includes.patch
Patch1: libunicap-0.9.12-memerrs.patch
Patch2: libunicap-0.9.12-arraycmp.patch
Patch3: libunicap-0.9.12-warnings.patch
Patch4: libunicap-bz641623.patch
Patch5: libunicap-bz642118.patch
Patch6: libunicap-0.9.12-videodev.patch
Patch7: libunicap-0.9.12-datadirname.patch
Patch8: libunicap-0.9.12-gcc10.patch
%define _use_internal_dependency_generator 0
%define __find_provides sh %{SOURCE1} %{prev__find_provides}
%define __find_requires sh %{SOURCE1} %{prev__find_requires}
BuildRequires: %{_bindir}/perl
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gettext
BuildRequires: glib2-devel >= 2.10.0
BuildRequires: gtk-doc >= 1.4
BuildRequires: intltool
BuildRequires: libtool
BuildRequires: libv4l-devel >= 0.8.3-1
BuildRequires: systemd
BuildRequires: perl(XML::Parser)
%{expand:%%define prev__find_provides %{__find_provides}}
%{expand:%%define prev__find_requires %{__find_requires}}
%ifnarch s390 s390x
BuildRequires: libraw1394-devel >= 1.1.0
%endif
%description
Unicap provides a uniform interface to video capture devices. It allows
applications to use any supported video capture device via a single API.
The unicap library offers a high level of hardware abstraction while
maintaining maximum performance. Zero copy capture of video buffers is
possible for devices supporting it allowing fast video capture with low
CPU usage even on low-speed architectures.
%package devel
Summary: Development files for the unicap library
Requires: %{name} = %{version}-%{release}
Requires: pkgconfig
%description devel
The libunicap-devel package includes header files and libraries necessary
for for developing programs which use the unicap library. It contains the
API documentation of the library, too.
%prep
%autosetup -p1
# Needed to get rid of rpath
libtoolize --force
# fixes for gtk-doc 1.26
sed -i -e '/^DOC_SOURCE_DIR/s/--source-dir=//g' doc/libunicap/Makefile.am
autoreconf --force --install
%build
%configure --disable-rpath --disable-gtk-doc --enable-libv4l
%make_build
%install
%make_install
# Don't install any static .a and libtool .la files
rm -f %{buildroot}%{_libdir}/{,unicap2/cpi/}*.{a,la}
# Use ATTRS rather SYSFS for udev where appropriate
sed -e 's/\(SYSFS\|ATTRS\)/ATTRS/g' -i %{buildroot}%{_sysconfdir}/udev/rules.d/50-euvccam.rules
touch -c -r {data,%{buildroot}%{_sysconfdir}/udev/rules.d}/50-euvccam.rules
# Move udev rules file to appropriate rules directory
mkdir -p %{buildroot}%{_udevrulesdir}/
mv -f %{buildroot}%{_sysconfdir}/udev/rules.d/50-euvccam.rules %{buildroot}%{_udevrulesdir}/
%find_lang unicap
%ldconfig_scriptlets
%files -f unicap.lang
%license COPYING
%doc AUTHORS ChangeLog README
%{_udevrulesdir}/50-euvccam.rules
%{_libdir}/%{name}.so.*
%{_libdir}/unicap2
%files devel
%{_libdir}/%{name}.so
%{_libdir}/pkgconfig/%{name}.pc
%{_includedir}/unicap
%exclude %{_datadir}/gtk-doc/html/%{name}
%changelog
* Wed Dec 28 2022 Muhammad Falak <mwani@microsoft.com> - 0.9.12-28
- Switch to '%autosetup'
- Configure with 'disable-gtk-doc'
- License verified
* Thu Mar 18 2021 Henry Li <lihl@microsoft.com> - 0.9.12-27
- Initial CBL-Mariner import from Fedora 32 (license: MIT).
- Fix distro condition checking
* Sun Feb 09 2020 Robert Scheck <robert@fedoraproject.org> - 0.9.12-26
- Added patch to declare variable as extern in header file (#1799604)
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.12-25
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.12-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.12-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.12-22
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.12-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.12-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.12-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.12-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.12-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.12-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sun May 31 2015 Robert Scheck <robert@fedoraproject.org> 0.9.12-15
- Added patch to avoid a /usr/@DATADIRNAME@/locale/ directory
- Use %%{_udevrulesdir} macro rather /etc/udev/rules.d/ (#1226681)
* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.12-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.12-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.12-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Thu Feb 14 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.12-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Thu Jul 19 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.12-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Fri Jan 13 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.12-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Sun Oct 09 2011 Robert Scheck <robert@fedoraproject.org> 0.9.12-8
- Added a patch to use the libv4l1compat header (#676470, #716118)
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.12-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Tue Nov 02 2010 Kamil Dudka <kdudka@redhat.com> 0.9.12-6
- fix a crasher bug introduced by libunicap-0.9.12-memerrs.patch (#647880)
* Fri Oct 29 2010 Robert Scheck <robert@fedoraproject.org> 0.9.12-5
- Use ATTRS rather SYSFS for udev where appropriate (#643729)
* Tue Oct 12 2010 Kamil Dudka <kdudka@redhat.com> 0.9.12-4
- do not use "private" as identifier in a public header (#642118)
* Sat Oct 09 2010 Kamil Dudka <kdudka@redhat.com> 0.9.12-3
- avoid SIGSEGV in v4l2_capture_start() (#641623)
* Thu Oct 07 2010 Kamil Dudka <kdudka@redhat.com> 0.9.12-2
- build the package in %%build
- fix tons of compile-time warnings
- fix some memory errors in the code
* Mon Oct 04 2010 Robert Scheck <robert@fedoraproject.org> 0.9.12-1
- Upgrade to 0.9.12 (#635377)
* Sun Feb 21 2010 Robert Scheck <robert@fedoraproject.org> 0.9.8-1
- Upgrade to 0.9.8 (#530702, #567109, #567110, #567111)
- Splitting of unicap into libunicap, libucil and libunicapgtk
* Sat Oct 24 2009 Robert Scheck <robert@fedoraproject.org> 0.9.7-1
- Upgrade to 0.9.7 (#530702)
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Thu Jun 18 2009 Dan Horak <dan[at]danny.cz> 0.9.5-2
- don't require libraw1394 on s390/s390x
* Sun May 03 2009 Robert Scheck <robert@fedoraproject.org> 0.9.5-1
- Upgrade to 0.9.5
* Mon Feb 23 2009 Robert Scheck <robert@fedoraproject.org> 0.9.3-2
- Rebuild against gcc 4.4 and rpm 4.6
* Mon Oct 13 2008 Robert Scheck <robert@fedoraproject.org> 0.9.3-1
- Upgrade to 0.9.3 (#466825, thanks to Hans de Goede)
- Enabled libv4l support for the new gspca kernel driver
* Sat Aug 09 2008 Robert Scheck <robert@fedoraproject.org> 0.2.23-4
- Rebuild to get missing dependencies back (#443015, #458527)
* Tue Aug 05 2008 Robert Scheck <robert@fedoraproject.org> 0.2.23-3
- Filter the unicap plugins which overlap with libv4l libraries
* Tue Jul 22 2008 Robert Scheck <robert@fedoraproject.org> 0.2.23-2
- Rebuild for libraw1394 2.0.0
* Mon May 19 2008 Robert Scheck <robert@fedoraproject.org> 0.2.23-1
- Upgrade to 0.2.23
- Corrected packaging of cpi/*.so files (thanks to Arne Caspari)
* Sat May 17 2008 Robert Scheck <robert@fedoraproject.org> 0.2.22-1
- Upgrade to 0.2.22 (#446021)
* Sat Feb 16 2008 Robert Scheck <robert@fedoraproject.org> 0.2.19-3
- Added patch to correct libdir paths (thanks to Ralf Corsepius)
* Mon Feb 04 2008 Robert Scheck <robert@fedoraproject.org> 0.2.19-2
- Changes to match with Fedora Packaging Guidelines (#431381)
* Mon Feb 04 2008 Robert Scheck <robert@fedoraproject.org> 0.2.19-1
- Upgrade to 0.2.19
- Initial spec file for Fedora and Red Hat Enterprise Linux

File diff suppressed because one or more lines are too long

View File

@ -702,6 +702,8 @@
"libtomcrypt",
"libtommath",
"libtranslit",
"libucil",
"libunicap",
"libuninameslist",
"liburing",
"libusbmuxd",

View File

@ -10316,6 +10316,26 @@
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "libucil",
"version": "0.9.10",
"downloadUrl": "https://cblmarinerstorage.blob.core.windows.net/sources/core/libucil-0.9.10.tar.gz"
}
}
},
{
"component": {
"type": "other",
"other": {
"name": "libunicap",
"version": "0.9.12",
"downloadUrl": "https://cblmarinerstorage.blob.core.windows.net/sources/core/libunicap-0.9.12.tar.gz"
}
}
},
{
"component": {
"type": "other",