<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<font face="serif">I have an audio file recorded with a sample rate
of 88200 that I want to play on a USB DAC that supports 96000 but
not 88200.<br>
<br>
The following pipeline plays the file but re-samples to 48000:<br>
<br>
% gst-launch-0.10 filesrc location=Song.flac ! decodebin !
alsasink, device=hw:0,0 -v<br>
<br>
</font>
<blockquote type="cite"><font face="serif">/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0:
caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)24,
rate=(int)88200, channels=(int)2<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacDec:flacdec0.GstPad:src:
caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)24,
rate=(int)88200, channels=(int)2<br>
/GstPipeline:pipeline0/GstAlsaSink:alsasink0.GstPad:sink: caps =
audio/x-raw-int, endianness=(int)1234, signed=(boolean)true,
width=(int)32, depth=(int)24, rate=(int)88200, channels=(int)2<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0.GstProxyPad:proxypad1:
caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)24,
rate=(int)88200, channels=(int)2<br>
Pipeline is PREROLLED ...<br>
Setting pipeline to PLAYING ...<br>
New clock: GstAudioSinkClock<br>
</font></blockquote>
<font face="serif">I confirmed the sampling rate with 'cat
/proc/asound/card0/stream0':<br>
</font>
<blockquote type="cite"><font face="serif">Playback:<br>
Status: Running<br>
Interface = 3<br>
Altset = 1<br>
URBs = 3 [ 7 7 8 ]<br>
Packet Size = 388<br>
Momentary freq = 48000 Hz (0x30.0000)<br>
</font></blockquote>
<font face="serif"><br>
This mailing list <a
href="http://gstreamer-devel.966125.n4.nabble.com/Playing-RAW-Audio-after-Resampling-td970602.html">post</a>
suggests something like this:<br>
<br>
% gst-launch-0.10 filesrc location=Song.flac ! decodebin !
audioresample ! 'audio/x-raw-int, rate=96000' ! alsasink,
device=hw:0,0 -v<br>
<br>
However, this does not produce sound and provides the following
message:<br>
<br>
</font>
<blockquote type="cite"><font face="serif">/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0:
caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)24,
rate=(int)88200, channels=(int)2<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacDec:flacdec0.GstPad:src:
caps = audio/x-raw-int, endianness=(int)1234,
signed=(boolean)true, width=(int)32, depth=(int)24,
rate=(int)88200, channels=(int)2<br>
ERROR: from element
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacParse:flacparse0:
GStreamer encountered a general stream error.<br>
Additional debug info:<br>
gstbaseparse.c(2890): gst_base_parse_loop ():
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacParse:flacparse0:<br>
streaming stopped, reason not-negotiated<br>
ERROR: pipeline doesn't want to preroll.<br>
Setting pipeline to NULL ...<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0:
caps = NULL<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacDec:flacdec0.GstPad:src:
caps = NULL<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacDec:flacdec0.GstPad:sink:
caps = NULL<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacParse:flacparse0.GstPad:src:
caps = NULL<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstFlacParse:flacparse0.GstPad:sink:
caps = NULL<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src:
caps = NULL<br>
Freeing pipeline ...<br>
</font></blockquote>
<font face="serif"><br>
I'm sure the NULL caps is not a good sign. Can someone help me
understand what I'm doing wrong?<br>
<br>
Thanks in advance,<br>
<br>
n</font><br>
</body>
</html>