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:
parent
1f7189ee52
commit
d2add75fc3
|
@ -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
|
|
@ -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 )
|
|
@ -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( ¶meters[i].value ), NULL );
|
||||
- } else if ( !strcmp( parameters[i].name, "bitrate" ) ){
|
||||
- g_object_set( encoder, "bitrate", g_value_get_int( ¶meters[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( <ime, 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( <ime, 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 )
|
||||
{
|
|
@ -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();
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"Signatures": {
|
||||
"libucil-0.9.10.tar.gz": "b0a815dde49b580b626c03722b40825051d5c99435cff06f7fbe13edf14d0056"
|
||||
}
|
||||
}
|
|
@ -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
|
|
@ -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
|
||||
|
|
@ -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@
|
|
@ -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;
|
|
@ -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>
|
|
@ -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
|
||||
|
|
@ -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"
|
||||
|
|
@ -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 );
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
}
|
|
@ -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'
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"Signatures": {
|
||||
"libunicap-0.9.12.tar.gz": "498fd13432e7fb14141337f284e237a81b357bc10e4407638b86b946aab5ec17",
|
||||
"libunicap-filter.sh": "0f9592fa78fdffddc73cc51135dab5e2f215057bb07ea0467f5a8cf2a0ab9f72"
|
||||
}
|
||||
}
|
|
@ -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
|
@ -702,6 +702,8 @@
|
|||
"libtomcrypt",
|
||||
"libtommath",
|
||||
"libtranslit",
|
||||
"libucil",
|
||||
"libunicap",
|
||||
"libuninameslist",
|
||||
"liburing",
|
||||
"libusbmuxd",
|
||||
|
|
|
@ -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",
|
||||
|
|
Loading…
Reference in New Issue