summaryrefslogtreecommitdiff
path: root/docs/Protocols/SDLStreamingMediaManagerDataSource.html
blob: 7da0fd8aeb55b9d22a1a65d7de362c540c54ebbc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<h1>SDLStreamingMediaManagerDataSource Protocol Reference</h1>

<h3>Section Contents</h3>

<ul>
  <li><a href="#section--preferredVideoFormatOrderFromHeadUnitPreferredOrder:">-preferredVideoFormatOrderFromHeadUnitPreferredOrder:</a></li>
  <li><a href="#section--resolutionFromHeadUnitPreferredResolution:">-resolutionFromHeadUnitPreferredResolution:</a></li>
</ul>

<h3>Overview</h3>

<p>A data source for the streaming manager&rsquo;s preferred resolutions and preferred formats.</p>


<section class="section task-group-section">
  <h3 id="section--preferredVideoFormatOrderFromHeadUnitPreferredOrder:">
      -preferredVideoFormatOrderFromHeadUnitPreferredOrder:
  </h3>
  
  <p>Implement to return a different preferred order of attempted format usage than the head unit&rsquo;s preferred order. In nearly all cases, it&rsquo;s best to simply return the head unit&rsquo;s preferred order, or not implement this method (which does the same thing).</p>
<div class="aside aside-warning">
    <p class="aside-title">Warning</p>
    <p>If you return a format that is not supported by the StreamingMediaManager, that format will be skipped.</p>

</div><div class="aside aside-note">
    <p class="aside-title">Note</p>
    <p>If the head unit does not support the <code>GetSystemCapabilities</code> RPC, this method will not be called and H264 RAW will be used.</p>

</div>

  
  
  <h4>Objective-C</h4>
  <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o">&lt;</span><span class="n"><a href="../Classes/SDLVideoStreamingFormat.html">SDLVideoStreamingFormat</a></span> <span class="o">*&gt;</span> <span class="o">*</span><span class="p">)</span>
    <span class="nf">preferredVideoFormatOrderFromHeadUnitPreferredOrder</span><span class="p">:</span>
        <span class="p">(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o">&lt;</span><span class="n"><a href="../Classes/SDLVideoStreamingFormat.html">SDLVideoStreamingFormat</a></span> <span class="o">*&gt;</span> <span class="o">*</span><span class="p">)</span><span class="nv">headUnitPreferredOrder</span><span class="p">;</span></code></pre>

  
  <h4>Swift</h4>
  <pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">preferredVideoFormatOrder</span><span class="p">(</span><span class="n">fromHeadUnitPreferredOrder</span> <span class="nv">headUnitPreferredOrder</span><span class="p">:</span> <span class="p">[</span><span class="kt"><a href="../Classes/SDLVideoStreamingFormat.html">SDLVideoStreamingFormat</a></span><span class="p">])</span> <span class="o">-&gt;</span> <span class="p">[</span><span class="kt"><a href="../Classes/SDLVideoStreamingFormat.html">SDLVideoStreamingFormat</a></span><span class="p">]</span></code></pre>

  
  
  <h4>Parameters</h4>
  <dl>
      <dt>headUnitPreferredOrder</dt>
      <dd><p>The head unit&rsquo;s preferred order of format usage. The first item is the one that will be used unless this proxy does not support it, then the next item, etc.</p></dd>
  </dl>
  <div>
    <h4>Return Value</h4>
    <p>Your preferred order of format usage.</p>
  </div>
  
  <h3 id="section--resolutionFromHeadUnitPreferredResolution:">
      -resolutionFromHeadUnitPreferredResolution:
  </h3>
  
  <p>Implement to return a different resolution to use for video streaming than the head unit&rsquo;s requested resolution. If you return a resolution that the head unit does not like, the manager will fail to start up. In nearly all cases, it&rsquo;s best to simply return the head unit&rsquo;s preferred order, or not implement this method (which does the same thing), and adapt your UI to the head unit&rsquo;s preferred resolution instead.</p>

  
  
  <h4>Objective-C</h4>
  <pre class="highlight objective_c"><code><span class="k">-</span> <span class="p">(</span><span class="n">nonnull</span> <span class="n">NSArray</span><span class="o">&lt;</span><span class="n"><a href="../Classes/SDLImageResolution.html">SDLImageResolution</a></span> <span class="o">*&gt;</span> <span class="o">*</span><span class="p">)</span>
    <span class="nf">resolutionFromHeadUnitPreferredResolution</span><span class="p">:</span>
        <span class="p">(</span><span class="n">nonnull</span> <span class="n"><a href="../Classes/SDLImageResolution.html">SDLImageResolution</a></span> <span class="o">*</span><span class="p">)</span><span class="nv">headUnitPreferredResolution</span><span class="p">;</span></code></pre>

  
  <h4>Swift</h4>
  <pre class="highlight swift"><code><span class="kd">func</span> <span class="nf">resolution</span><span class="p">(</span><span class="n">fromHeadUnitPreferredResolution</span> <span class="nv">headUnitPreferredResolution</span><span class="p">:</span> <span class="kt"><a href="../Classes/SDLImageResolution.html">SDLImageResolution</a></span><span class="p">)</span> <span class="o">-&gt;</span> <span class="p">[</span><span class="kt"><a href="../Classes/SDLImageResolution.html">SDLImageResolution</a></span><span class="p">]</span></code></pre>

  
  
  <h4>Parameters</h4>
  <dl>
      <dt>headUnitPreferredResolution</dt>
      <dd><p>The resolution the head unit requested to use.</p></dd>
  </dl>
  <div>
    <h4>Return Value</h4>
    <p>Your preferred order of image resolution usage. This system will not attempt more than 3 resolutions. It is strongly recommended that at least one resolution is the head unit&rsquo;s preferred resolution.</p>
  </div>
  
</section>