|
14 | 14 | <title>Audio Pipelines – Diago</title> |
15 | 15 | <meta name="description" content="Everything is io.Reader and io.Writer |
16 | 16 | Diago follows GO std lib and providing interface for Reader/Writer when it comes reading and writing media. This made easier usage of RTP framework and optimizations, by providing end user standard library io.Reader io.Writer to pass his media. |
17 | | -In other words creating reader or writer pipelines allows to build interceptors, encoders, decoders without introducing overhead of contention and buffer reusage. |
| 17 | +In other words creating reader or writer pipelines allows to build interceptors, encoders, decoders without introducing overhead of contention and buffer reuse. |
18 | 18 | media and audio package also provide all this helpers for making audio pipelines straightforward. In realtime media streaming, audio is sampled at constant rate. |
19 | | -Some of io operations you encounter have helpers media package like media.Copy , media.ReadAll, which are better suited intead std io" /> |
| 19 | +Some of io operations you encounter have helpers media package like media.Copy , media.ReadAll, which are better suited instead std io" /> |
20 | 20 |
|
21 | 21 |
|
22 | 22 | <link rel="canonical" href="https://emiago.github.io/diago/docs/audio_pipelines/" itemprop="url" /> |
|
28 | 28 | <meta property="og:description" content="Everything is io.Reader and io.Writer |
29 | 29 | Diago follows GO std lib and providing interface for Reader/Writer when it comes reading and writing media. |
30 | 30 | This made easier usage of RTP framework and optimizations, by providing end user standard library io.Reader io.Writer to pass his media. |
31 | | -In other words creating reader or writer pipelines allows to build interceptors, encoders, decoders without introducing overhead of contention and buffer reusage. |
| 31 | +In other words creating reader or writer pipelines allows to build interceptors, encoders, decoders without introducing overhead of contention and buffer reuse. |
32 | 32 | media and audio package also provide all this helpers for making audio pipelines straightforward. |
33 | 33 | In realtime media streaming, audio is sampled at constant rate. |
34 | | -Some of io operations you encounter have helpers media package like media.Copy , media.ReadAll, which are better suited intead std io" /> |
| 34 | +Some of io operations you encounter have helpers media package like media.Copy , media.ReadAll, which are better suited instead std io" /> |
35 | 35 | <meta property="og:type" content="article" /> |
36 | 36 | <meta property="og:url" content="https://emiago.github.io/diago/docs/audio_pipelines/" /><meta property="article:section" content="docs" /> |
37 | 37 |
|
|
41 | 41 | <meta itemprop="name" content="Audio Pipelines"> |
42 | 42 | <meta itemprop="description" content="Everything is io.Reader and io.Writer |
43 | 43 | Diago follows GO std lib and providing interface for Reader/Writer when it comes reading and writing media. This made easier usage of RTP framework and optimizations, by providing end user standard library io.Reader io.Writer to pass his media. |
44 | | -In other words creating reader or writer pipelines allows to build interceptors, encoders, decoders without introducing overhead of contention and buffer reusage. |
| 44 | +In other words creating reader or writer pipelines allows to build interceptors, encoders, decoders without introducing overhead of contention and buffer reuse. |
45 | 45 | media and audio package also provide all this helpers for making audio pipelines straightforward. In realtime media streaming, audio is sampled at constant rate. |
46 | | -Some of io operations you encounter have helpers media package like media.Copy , media.ReadAll, which are better suited intead std io"> |
47 | | - <meta itemprop="wordCount" content="189"> |
| 46 | +Some of io operations you encounter have helpers media package like media.Copy , media.ReadAll, which are better suited instead std io"> |
| 47 | + <meta itemprop="wordCount" content="190"> |
48 | 48 | <meta name="twitter:card" content="summary"> |
49 | 49 | <meta name="twitter:title" content="Audio Pipelines"> |
50 | 50 | <meta name="twitter:description" content="Everything is io.Reader and io.Writer |
51 | 51 | Diago follows GO std lib and providing interface for Reader/Writer when it comes reading and writing media. This made easier usage of RTP framework and optimizations, by providing end user standard library io.Reader io.Writer to pass his media. |
52 | | -In other words creating reader or writer pipelines allows to build interceptors, encoders, decoders without introducing overhead of contention and buffer reusage. |
| 52 | +In other words creating reader or writer pipelines allows to build interceptors, encoders, decoders without introducing overhead of contention and buffer reuse. |
53 | 53 | media and audio package also provide all this helpers for making audio pipelines straightforward. In realtime media streaming, audio is sampled at constant rate. |
54 | | -Some of io operations you encounter have helpers media package like media.Copy , media.ReadAll, which are better suited intead std io"> |
| 54 | +Some of io operations you encounter have helpers media package like media.Copy , media.ReadAll, which are better suited instead std io"> |
55 | 55 |
|
56 | 56 | <link rel="preload" href="/diago/css/compiled/main.min.23a12191daf50c320fcb5ce50e8c895a47f37ce361f66be7c771e19f254b32b2.css" as="style" integrity="sha256-I6Ehkdr1DDIPy1zlDoyJWkfzfONh9mvnx3HhnyVLMrI=" /> |
57 | 57 | <link href="/diago/css/compiled/main.min.23a12191daf50c320fcb5ce50e8c895a47f37ce361f66be7c771e19f254b32b2.css" rel="stylesheet" integrity="sha256-I6Ehkdr1DDIPy1zlDoyJWkfzfONh9mvnx3HhnyVLMrI=" /> |
@@ -429,12 +429,12 @@ <h1>Audio Pipelines</h1> |
429 | 429 | <p>Everything is io.Reader and io.Writer</p> |
430 | 430 | <p>Diago follows GO std lib and providing interface for Reader/Writer when it comes reading and writing media. |
431 | 431 | This made easier usage of RTP framework and optimizations, by providing end user standard library io.Reader io.Writer to pass his media.</p> |
432 | | -<p>In other words creating reader or writer <strong>pipelines</strong> allows to build interceptors, encoders, decoders without introducing overhead of contention and buffer reusage.</p> |
| 432 | +<p>In other words creating reader or writer <strong>pipelines</strong> allows to build interceptors, encoders, decoders without introducing overhead of contention and buffer reuse.</p> |
433 | 433 | <p><code>media</code> and <code>audio</code> package also provide all this helpers for making audio pipelines straightforward. |
434 | 434 | In <strong>realtime media</strong> streaming, audio is sampled at constant rate.<br> |
435 | | -Some of io operations you encounter have helpers <code>media</code> package like <code>media.Copy</code> , <code>media.ReadAll</code>, which are better suited intead std <code>io</code></p> |
| 435 | +Some of io operations you encounter have helpers <code>media</code> package like <code>media.Copy</code> , <code>media.ReadAll</code>, which are better suited instead std <code>io</code></p> |
436 | 436 | <h3>Creating Echo<span class="hx-absolute -hx-mt-20" id="creating-echo"></span> |
437 | | - <a href="#creating-echo" class="subheading-anchor" aria-label="Permalink for this section"></a></h3><p>Everything mostly begins by getting actuall <code>AudioReader</code> and <code>AudioWriter</code> from Dialog Session.</p> |
| 437 | + <a href="#creating-echo" class="subheading-anchor" aria-label="Permalink for this section"></a></h3><p>Everything mostly begins by getting actual <code>AudioReader</code> and <code>AudioWriter</code> from Dialog Session.</p> |
438 | 438 | <div class="hextra-code-block hx-relative hx-mt-6 first:hx-mt-0 hx-group/code"> |
439 | 439 |
|
440 | 440 |
|
@@ -468,9 +468,9 @@ <h3>Creating Echo<span class="hx-absolute -hx-mt-20" id="creating-echo"></span> |
468 | 468 |
|
469 | 469 |
|
470 | 470 | </div> |
471 | | -<p>For less memory alloc, better option is <code>media.CopyWithBuf</code> where controling buffer reusage can be made.</p> |
| 471 | +<p>For less memory alloc, better option is <code>media.CopyWithBuf</code> where controlling buffer reuse can be made.</p> |
472 | 472 | <h3>More audio processing<span class="hx-absolute -hx-mt-20" id="more-audio-processing"></span> |
473 | | - <a href="#more-audio-processing" class="subheading-anchor" aria-label="Permalink for this section"></a></h3><p>For more <strong>audio</strong> processing <code>audio</code> like ex <strong>transcoding</strong> package provides you with prebuilt helpers for pipelining |
| 473 | + <a href="#more-audio-processing" class="subheading-anchor" aria-label="Permalink for this section"></a></h3><p>For more <strong>audio</strong> processing <code>audio</code> (ex <strong>transcoding</strong>, <strong>wav streaming</strong>) package provides you with prebuilt helpers for pipelining |
474 | 474 | More you can find here <a href="https://pkg.go.dev/github.com/emiago/diago/audio" target="_blank" rel="noopener">https://pkg.go.dev/github.com/emiago/diago/audio</a></p> |
475 | 475 |
|
476 | 476 | </div> |
|
0 commit comments