Compare commits
No commits in common. "c9s" and "c8s" have entirely different histories.
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
SOURCES/libucil-0.9.10.tar.gz
|
||||||
|
/libucil-0.9.10.tar.gz
|
@ -1 +0,0 @@
|
|||||||
libucil package is retired on c9s for CS-362
|
|
6
gating.yaml
Normal file
6
gating.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
--- !Policy
|
||||||
|
product_versions:
|
||||||
|
- rhel-8
|
||||||
|
decision_context: osci_compose_gate
|
||||||
|
rules:
|
||||||
|
- !PassingTestCaseRule {test_case_name: manual.sst_desktop.libucil.sanity}
|
11
libucil-0.9.10-include-alsa.patch
Normal file
11
libucil-0.9.10-include-alsa.patch
Normal 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
|
47
libucil-0.9.10-leaks.patch
Normal file
47
libucil-0.9.10-leaks.patch
Normal 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 )
|
454
libucil-0.9.10-warnings.patch
Normal file
454
libucil-0.9.10-warnings.patch
Normal 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( ¶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 )
|
||||||
|
{
|
17
libucil-0.9.8-bz627890.patch
Normal file
17
libucil-0.9.8-bz627890.patch
Normal 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();
|
205
libucil.spec
Normal file
205
libucil.spec
Normal file
@ -0,0 +1,205 @@
|
|||||||
|
Summary: Library to render text and graphic overlays onto video images
|
||||||
|
Name: libucil
|
||||||
|
Version: 0.9.10
|
||||||
|
Release: 17%{?dist}
|
||||||
|
License: GPLv2+
|
||||||
|
Group: System Environment/Libraries
|
||||||
|
URL: http://www.unicap-imaging.org/
|
||||||
|
Source0: http://www.unicap-imaging.org/downloads/%{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: autoconf, automake, gettext-devel, libtool
|
||||||
|
BuildRequires: intltool, /usr/bin/perl, perl(XML::Parser), gettext, gtk-doc >= 1.4
|
||||||
|
BuildRequires: libunicap-devel, glib2-devel, pango-devel, alsa-lib-devel
|
||||||
|
BuildRequires: libtheora-devel, libogg-devel, libvorbis-devel, libpng-devel
|
||||||
|
Obsoletes: unicap <= 0.9.7-1
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
|
|
||||||
|
%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
|
||||||
|
Group: Development/Libraries
|
||||||
|
Requires: %{name} = %{version}-%{release}, pkgconfig, libunicap-devel
|
||||||
|
Obsoletes: unicap-devel <= 0.9.7-1
|
||||||
|
|
||||||
|
%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
|
||||||
|
%setup -q
|
||||||
|
%patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
%patch3 -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 --enable-gtk-doc
|
||||||
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
|
%install
|
||||||
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
make DESTDIR=$RPM_BUILD_ROOT install
|
||||||
|
|
||||||
|
# Don't install any static .a and libtool .la files
|
||||||
|
rm -f $RPM_BUILD_ROOT%{_libdir}/%{name}.{a,la}
|
||||||
|
|
||||||
|
%clean
|
||||||
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
%post -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%postun -p /sbin/ldconfig
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%doc AUTHORS ChangeLog COPYING README
|
||||||
|
%{_libdir}/%{name}.so.*
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%{_libdir}/%{name}.so
|
||||||
|
%{_libdir}/pkgconfig/%{name}.pc
|
||||||
|
%{_includedir}/unicap/*.h
|
||||||
|
%{_datadir}/gtk-doc/html/%{name}
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Tue May 30 2023 Vitezslav Crhonek <vcrhonek@redhat.com> - 0.9.10-17
|
||||||
|
- alsa/asoundlib.h should be used instead of asoundlib.h since alsa-1.1.9
|
||||||
|
Resolves: #2108023
|
||||||
|
|
||||||
|
* 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
|
||||||
|
|
||||||
|
* Wed 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
|
Loading…
Reference in New Issue
Block a user