File alsa-lib-ice1724-spdif-fix.diff of Package alsa

commit cb1fd837d93fbc495eab4aa3efaf8072937ff2df
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Nov 19 14:59:03 2008 +0100

    Add linear plugin wrapping iec958 PCM for ice1724-based boards
    
    The ice1724-based cards can handle only 32bit while the apps almost
    expet 16bit format for SPDIF I/O.  This prevents the default config
    working on many apps like mplayer, xine, etc.
    
    This patch simply adds the least automatic conversion by linear plugin.
    Note that "plug" isn't used here.  Otherwise we get a problem of the
    routing (plug over plug is buggy).
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>

diff --git a/src/conf/cards/Aureon51.conf b/src/conf/cards/Aureon51.conf
index 1b8ee85..24b4d94 100644
--- a/src/conf/cards/Aureon51.conf
+++ b/src/conf/cards/Aureon51.conf
@@ -121,6 +121,8 @@ Aureon51.pcm.iec958.0 {
 	}
 	type asym
 	playback.pcm {
+	    type linear
+	    slave.pcm {
 		type hooks
 		slave.pcm {
 			type hw
@@ -147,8 +149,12 @@ Aureon51.pcm.iec958.0 {
 				}
 			]
 		}
+	    }
+	    slave.format S32_LE
 	}
 	capture.pcm {
+	    type linear
+	    slave.pcm {
 		type hooks
 		slave.pcm {
 			type hw
@@ -167,5 +173,7 @@ Aureon51.pcm.iec958.0 {
 				}
 			]
 		}
+	    }
+	    slave.format S32_LE
 	}
 }
diff --git a/src/conf/cards/Aureon71.conf b/src/conf/cards/Aureon71.conf
index 8a88cce..1479c25 100644
--- a/src/conf/cards/Aureon71.conf
+++ b/src/conf/cards/Aureon71.conf
@@ -132,6 +132,8 @@ Aureon71.pcm.iec958.0 {
 	}
 	type asym
 	playback.pcm {
+	    type linear
+	    slave.pcm {
 		type hooks
 		slave.pcm {
 			type hw
@@ -158,8 +160,12 @@ Aureon71.pcm.iec958.0 {
 				}
 			]
 		}
+	    }
+	    slave.format S32_LE
 	}
 	capture.pcm {
+	    type linear
+	    slave.pcm {
 		type hooks
 		slave.pcm {
 			type hw
@@ -178,5 +184,7 @@ Aureon71.pcm.iec958.0 {
 				}
 			]
 		}
+	    }
+	    slave.format S32_LE
 	}
 }
diff --git a/src/conf/cards/ICE1724.conf b/src/conf/cards/ICE1724.conf
index 7f15332..e806b36 100644
--- a/src/conf/cards/ICE1724.conf
+++ b/src/conf/cards/ICE1724.conf
@@ -166,6 +166,8 @@ ICE1724.pcm.iec958.0 {
 	}
 	type asym
 	playback.pcm {
+	    type linear
+	    slave.pcm {
 		type hooks
 		slave.pcm {
 			type hw
@@ -192,8 +194,12 @@ ICE1724.pcm.iec958.0 {
 				}
 			]
 		}
+	    }
+	    slave.format S32_LE
 	}
 	capture.pcm {
+	    type linear
+	    slave.pcm {
 		type hooks
 		slave.pcm {
 			type hw
@@ -212,5 +218,7 @@ ICE1724.pcm.iec958.0 {
 				}
 			]
 		}
+	    }
+	    slave.format S32_LE
 	}
 }
openSUSE Build Service is sponsored by