Hello community,

here is the log from the commit of package crystalhd-libs for openSUSE:Factory
checked in at Mon Apr 4 16:36:20 CEST 2011.



--------
--- crystalhd-libs/crystalhd-libs.changes       2010-12-14 17:40:37.000000000 
+0100
+++ /mounts/work_src_done/STABLE/crystalhd-libs/crystalhd-libs.changes  
2011-03-30 13:53:33.000000000 +0200
@@ -1,0 +2,13 @@
+Thu Mar 24 12:56:07 CET 2011 - [email protected]
+
+- Version 3.6.5:
+  Fix crash with two instances opened at the same time
+
+-------------------------------------------------------------------
+Mon Jan 24 18:57:07 UTC 2011 - [email protected]
+
+- added crystalhd-libs-define-first.patch: this patch fix building
+  failures. bc_dts_defs.h us types defined into bc_dts_types.h that
+  was included after instead of before  
+
+-------------------------------------------------------------------

calling whatdependson for head-i586


Old:
----
  crystalhd-libs_3.6.4-1.tar.bz2

New:
----
  crystalhd-libs-define-first.patch
  crystalhd-libs_3.6.5-1.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ crystalhd-libs.spec ++++++
--- /var/tmp/diff_new_pack.DF8anT/_old  2011-04-04 16:35:24.000000000 +0200
+++ /var/tmp/diff_new_pack.DF8anT/_new  2011-04-04 16:35:24.000000000 +0200
@@ -1,7 +1,7 @@
 #
-# spec file for package crystalhd-libs (Version 3.6.4)
+# spec file for package crystalhd-libs
 #
-# Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -21,13 +21,14 @@
 Name:           crystalhd-libs
 BuildRequires:  gcc-c++
 Summary:        Broadcom Crystal HD device interface library
-Version:        3.6.4
+Version:        3.6.5
 Release:        1
 License:        LGPLv2.1+
 Group:          System/Libraries
 Source0:        crystalhd-libs_%{version}-1.tar.bz2
 Source1:        README
 Source2:        LICENSE
+Patch0:         %name-define-first.patch
 Url:            http://www.broadcom.com/support/crystal_hd/
 ExclusiveArch:  %ix86 x86_64
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -65,6 +66,7 @@
 
 %prep
 %setup -q -n crystalhd-libs
+%patch0 -p1
 cp %{SOURCE1} .
 cp %{SOURCE2} .
 

++++++ README ++++++
--- /var/tmp/diff_new_pack.DF8anT/_old  2011-04-04 16:35:24.000000000 +0200
+++ /var/tmp/diff_new_pack.DF8anT/_new  2011-04-04 16:35:24.000000000 +0200
@@ -1,8 +1,8 @@
-Broadcom CrystalHD Linux Software Release v3.200
+Broadcom CrystalHD Linux Software Release v3.205
 
 This is beta release of the Linux driver and application software with support 
for the BCM70012 and BCM70015
 
-This is a source release with Ubuntu 10.10 32-bit binary packages
+This is a source release with Ubuntu 10.10 32-bit (SSE enabled) binary packages
 
 FEATURES SUPPORTED - 
 
@@ -12,7 +12,8 @@
 
 FIXED ISSUES
 
-Added support to resume the HW on resume from S3/S4
+Fixed issue with crash when two instances of the decoder were opened
+Allow building on non-SSE CPUs - use "NOLIB_SSE=yes make" in the command to 
build the library
 
 KNOWN ISSUES
 

++++++ crystalhd-libs-define-first.patch ++++++
diff -uNr crystalhd-libs/libcrystalhd_if.h new-crystalhd-libs//libcrystalhd_if.h
--- crystalhd-libs/libcrystalhd_if.h    2010-12-07 00:15:46.000000000 +0100
+++ new-crystalhd-libs//libcrystalhd_if.h       2011-01-24 19:52:02.845076999 
+0100
@@ -29,8 +29,8 @@
 #ifndef _BCM_LDIL_IF_H_
 #define _BCM_LDIL_IF_H_
 
-#include "bc_dts_defs.h"
 #include "bc_dts_types.h"
+#include "bc_dts_defs.h"
 
 #define FLEA_MAX_TRICK_MODE_SPEED      6
 
++++++ crystalhd-libs_3.6.4-1.tar.bz2 -> crystalhd-libs_3.6.5-1.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crystalhd-libs/debian/changelog 
new/crystalhd-libs/debian/changelog
--- old/crystalhd-libs/debian/changelog 2010-12-07 00:15:46.000000000 +0100
+++ new/crystalhd-libs/debian/changelog 2011-03-18 04:32:08.000000000 +0100
@@ -1,4 +1,4 @@
-crystalhd-libs (3.6.4-1) unstable; urgency=low
+crystalhd-libs (3.6.5-1) unstable; urgency=low
 
   * Initial debian package release - Made for Ubuntu 10.04
   * Added support to detect HW type to support additional codecs 
@@ -11,5 +11,6 @@
   * Fixed hard hang with multiple applications trying to open the HW 
simultanously 
   * Use IOCTL to close handles when the decoder is being closed 
   * Added support to restart the HW when returning from S3/4/5
+  * Fixed issue with crash when multiple instances of decoder are opened 
 
- -- Narendra Sankar <[email protected]>  Mon, 06 Dec 2010 15:05:23 -0800
+ -- Narendra Sankar <[email protected]>  Thu, 17 Mar 2011 20:31:13 -0700
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crystalhd-libs/libcrystalhd_if.cpp 
new/crystalhd-libs/libcrystalhd_if.cpp
--- old/crystalhd-libs/libcrystalhd_if.cpp      2010-12-07 00:15:46.000000000 
+0100
+++ new/crystalhd-libs/libcrystalhd_if.cpp      2011-03-18 04:32:08.000000000 
+0100
@@ -529,8 +529,10 @@
        else
                drvMode = FixFlags;
 
+       DtsGetContext(*hDevice)->DrvMode = FixFlags;
+
        if( (Sts = DtsNotifyOperatingMode(*hDevice,drvMode)) != BC_STS_SUCCESS){
-               DebugLog_Trace(LDIL_DBG,"Notify Operating Mode Failed\n");
+                       DebugLog_Trace(LDIL_DBG,"Notify Operating Mode 
Failed:%x\n", Sts);
                DtsReleaseInterface(DtsGetContext(*hDevice));
                DtsDelDilShMem();
                return Sts;
@@ -598,6 +600,12 @@
 
        DtsGetContext(*hDevice)->ProcessID = processID;
 
+       // now that the driver is up and running, start the tx thread
+       DtsGetContext(*hDevice)->txThreadStart = true;
+
+       // set global user handle for future checking for validity of handle 
close
+       DtsSetglobHandle(drvHandle);
+
        //DtsDevRegisterWr( hDevice,UartSelectA, 3);
 exit:
        return Sts;
@@ -619,6 +627,8 @@
        if (!DtsChkPID(Ctx->ProcessID))
                return BC_STS_ERROR;
 
+       DebugLog_Trace(LDIL_DBG,"DtsDeviceClose: Closing HW with mode %d\n", 
Ctx->OpMode);
+
        if(Ctx->State != BC_DEC_STATE_CLOSE){
                DtsCloseDecoder(hDevice);
        }
@@ -879,6 +889,12 @@
        else if (Ctx->DevId == BC_PCI_DEVID_FLEA)
                StreamType = BC_STREAM_TYPE_PES;
 
+//     // Moved notify mode to the driver to decoder open to allow multiple 
handles to be opened to the HW
+//     if( (sts = DtsNotifyOperatingMode(hDevice,Ctx->DrvMode)) != 
BC_STS_SUCCESS){
+//             DebugLog_Trace(LDIL_DBG,"Notify Operating Mode Failed:%x\n", 
sts);
+//             return sts;
+//     }
+
        sts = DtsRecoverableDecOpen(hDevice,StreamType);
        if(sts != BC_STS_SUCCESS )
        {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crystalhd-libs/libcrystalhd_int_if.cpp 
new/crystalhd-libs/libcrystalhd_int_if.cpp
--- old/crystalhd-libs/libcrystalhd_int_if.cpp  2010-12-07 00:15:46.000000000 
+0100
+++ new/crystalhd-libs/libcrystalhd_int_if.cpp  2011-03-18 04:32:08.000000000 
+0100
@@ -33,7 +33,9 @@
 #include "libcrystalhd_int_if.h"
 #include "libcrystalhd_fwcmds.h"
 
+#ifndef __NOLIB_SSE__
 #include <emmintrin.h>
+#endif
 
 #define SV_MAX_LINE_SZ 128
 #define PCI_GLOBAL_CONTROL MISC2_GLOBAL_CTRL
@@ -1433,6 +1435,7 @@
 static void fast_memcpy(uint8_t *dst, const uint8_t *src, uint32_t count)
 {
        // tested
+#ifndef __NOLIB_SSE__
        if (gSSE2)
        {
                if (((((uintptr_t) dst) & 0xf) == 0) && ((((uintptr_t) src) & 
0xf) == 0))
@@ -1462,6 +1465,7 @@
                        }
                }
        }
+#endif // __NOLIB_SSE__
 
        while (count --)
                *dst++ = *src++;
@@ -1504,6 +1508,7 @@
 
        for (__y = 0; __y < height; __y++)
        {
+#ifndef __NOLIB_SSE__
                if (gSSE2)
                {
                        if (((((uintptr_t) dstY) & 0xf) == 0) && ((((uintptr_t) 
srcY) & 0xf) == 0))
@@ -1529,6 +1534,7 @@
                                }
                        }
                }
+#endif // __NOLIB_SSE__
 
                while (x < srcWidth-1)
                {
@@ -1554,14 +1560,16 @@
        strideY += dstWidth;
        strideUV += dstWidth;
 
+#ifndef __NOLIB_SSE__
        static __m128i mask = _mm_set_epi16(0x00ff, 0x00ff, 0x00ff, 0x00ff, 
0x00ff, 0x00ff, 0x00ff, 0x00ff);
+#endif // __NOLIB_SSE__
 
        for (__y = 0; __y < height; __y += 2)
        {
                x = 0;
 
                // first line: Y and UV extraction
-
+#ifndef __NOLIB_SSE__
                if (gSSE2)
                {
                        if (((((uintptr_t) dstY) & 0xf) == 0) && ((((uintptr_t) 
srcY) & 0xf) == 0) && ((((uintptr_t) dstUV) & 0xf) == 0))
@@ -1605,7 +1613,7 @@
                                }
                        }
                }
-
+#endif // __NOLIB_SSE__
 
                while (x < srcWidth-1)
                {
@@ -1622,6 +1630,7 @@
 
                // second line: just Y
                x = 0;
+#ifndef __NOLIB_SSE__
                if (gSSE2)
                {
                        if (((((uintptr_t) dstY) & 0xf) == 0) && ((((uintptr_t) 
srcY) & 0xf) == 0))
@@ -1655,6 +1664,7 @@
                                }
                        }
                }
+#endif // __NOLIB_SSE__
 
                while (x < srcWidth-1)
                {
@@ -1691,7 +1701,7 @@
        {
                // first line
                x = 0;
-
+#ifndef __NOLIB_SSE__
                if (gSSE2)
                {
                        if (((((uintptr_t) dstY) & 0xf) == 0) && ((((uintptr_t) 
srcY) & 0xf) == 0))
@@ -1719,6 +1729,7 @@
                                }
                        }
                }
+#endif // __NOLIB_SSE__
 
                while (x < srcWidth-1)
                {
@@ -1736,7 +1747,7 @@
                // second line
 
                x = 0;
-
+#ifndef __NOLIB_SSE__
                if (gSSE2)
                {
                        if (((((uintptr_t) dstY) & 0xf) == 0) && ((((uintptr_t) 
srcY) & 0xf) == 0))
@@ -1768,6 +1779,7 @@
                                }
                        }
                }
+#endif // __NOLIB_SSE__
 
                while (x < srcWidth-1)
                {
@@ -1790,7 +1802,7 @@
        while (__y < height)
        {
                x = 0;
-
+#ifndef __NOLIB_SSE__
                if (gSSE2)
                {
                        if (((((uintptr_t) dstY) & 0xf) == 0) && ((((uintptr_t) 
srcY) & 0xf) == 0))
@@ -1818,6 +1830,7 @@
                                }
                        }
                }
+#endif // __NOLIB_SSE__
 
                while (x < srcWidth-1)
                {
@@ -1850,7 +1863,7 @@
        {
                // first line
                x = 0;
-
+#ifndef __NOLIB_SSE__
                if (gSSE2)
                {
                        if (((((uintptr_t) dstY) & 0xf) == 0) && ((((uintptr_t) 
srcY) & 0xf) == 0))
@@ -1878,6 +1891,7 @@
                                }
                        }
                }
+#endif // __NOLIB_SSE__
 
                while (x < srcWidth-1)
                {
@@ -1895,7 +1909,7 @@
                // second line
 
                x = 0;
-
+#ifndef __NOLIB_SSE__
                if (gSSE2)
                {
                        if (((((uintptr_t) dstY) & 0xf) == 0) && ((((uintptr_t) 
srcY) & 0xf) == 0))
@@ -1927,6 +1941,7 @@
                                }
                        }
                }
+#endif // __NOLIB_SSE__
 
                while (x < srcWidth-1)
                {
@@ -1947,7 +1962,7 @@
        while (__y < height)
        {
                x = 0;
-
+#ifndef __NOLIB_SSE__
                if (gSSE2)
                {
                        if (((((uintptr_t) dstY) & 0xf) == 0) && ((((uintptr_t) 
srcY) & 0xf) == 0))
@@ -1975,7 +1990,7 @@
                                }
                        }
                }
-
+#endif // __NOLIB_SSE__
                while (x < srcWidth-1)
                {
                        dstY[x*2+1] = srcY [x+0];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crystalhd-libs/libcrystalhd_priv.cpp 
new/crystalhd-libs/libcrystalhd_priv.cpp
--- old/crystalhd-libs/libcrystalhd_priv.cpp    2010-12-07 00:15:46.000000000 
+0100
+++ new/crystalhd-libs/libcrystalhd_priv.cpp    2011-03-18 04:32:08.000000000 
+0100
@@ -253,6 +253,17 @@
 
        bc_dil_glob_ptr->g_bDecOpened = bDecOpen;
 }
+
+void DtsSetglobHandle(uint32_t umodeHandle)
+{
+       bc_dil_glob_ptr->umodeHandle = umodeHandle;
+}
+
+uint32_t DtsGetglobHandle(void)
+{
+       return bc_dil_glob_ptr->umodeHandle;
+}
+
 /*============== Global shared area usage End.. ======================*/
 
 #define TOP_FIELD_FLAG                         0x01
@@ -1566,6 +1577,9 @@
        if(BC_STS_SUCCESS != txBufInit(&Ctx->circBuf, CIRC_TX_BUF_SIZE))
                sts = BC_STS_INSUFF_RES;
 
+       Ctx->txThreadStart = false;
+       Ctx->txThreadExit = false;
+
        pthread_attr_init(&thread_attr);
        pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_JOINABLE);
        pthread_create(&Ctx->htxThread, &thread_attr, txThreadProc, Ctx);
@@ -1589,7 +1603,6 @@
 
        if(!Ctx)
                return BC_STS_INV_ARG;
-
        // Exit TX thread
        Ctx->txThreadExit = true;
        // wait to make sure the thread exited
@@ -1610,6 +1623,8 @@
                        DebugLog_Trace(LDIL_DBG,"DtsDeviceClose: Close Handle 
Failed with error %d\n",errno);
        }
 
+       DtsSetglobHandle(0);
+
        DtsSetHwInitSts(BC_DIL_HWINIT_NOT_YET);
 
        DtsDelDilShMem();
@@ -2496,6 +2511,9 @@
        if(ret)
                return FALSE;
 
+       while(!Ctx->txThreadStart)
+               usleep(10 * 1000);
+
        while(!Ctx->txThreadExit)
        {
                // First check the status of the HW
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crystalhd-libs/libcrystalhd_priv.h 
new/crystalhd-libs/libcrystalhd_priv.h
--- old/crystalhd-libs/libcrystalhd_priv.h      2010-12-07 00:15:46.000000000 
+0100
+++ new/crystalhd-libs/libcrystalhd_priv.h      2011-03-18 04:32:08.000000000 
+0100
@@ -299,6 +299,7 @@
 
        TXBUFFER                circBuf;
        bool                    txThreadExit; // Handle to event to indicate to 
the tx thread to exit
+       bool                    txThreadStart; // trigger to the tx thread to 
start polling the driver
        pthread_t               htxThread; // Handle to TX thread
        uint8_t                 *alignBuf;
 
@@ -381,6 +382,7 @@
        BC_DTS_STATS    stats;
        pid_t                   g_nProcID;
        bool                    g_bDecOpened;
+       uint32_t                umodeHandle;
        uint32_t                DevID;
 } bc_dil_glob_s;
 
@@ -398,6 +400,8 @@
 BC_DTS_STATS *         DtsGetgStats (void);
 uint32_t               DtsGetgDevID(void);
 void DtsSetgDevID(uint32_t DevID);
+void DtsSetglobHandle(uint32_t userHandle);
+uint32_t DtsGetglobHandle(void);
 
 BC_STATUS DtsGetDevType(uint32_t *pDevID, uint32_t *pVendID, uint32_t *pRevID);
 uint32_t DtsGetDevID();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/crystalhd-libs/libcrystalhd_version.h 
new/crystalhd-libs/libcrystalhd_version.h
--- old/crystalhd-libs/libcrystalhd_version.h   2010-12-07 00:15:46.000000000 
+0100
+++ new/crystalhd-libs/libcrystalhd_version.h   2011-03-18 04:32:08.000000000 
+0100
@@ -63,7 +63,7 @@
 
 /*======================= Device Interface Library ========================*/
 #define DIL_MAJOR_VERSION      BRCM_MAJOR_VERSION
-#define DIL_MINOR_VERSION      22
+#define DIL_MINOR_VERSION      23
 #define DIL_REVISION           0
 
 #define DIL_RC_FILE_VERSION    
STRINGIFY_VERSION(DIL_MAJOR_VERSION,DIL_MINOR_VERSION,DIL_REVISION)


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to