avb.h¶
#include <primo/avblocks/avb.h>
Includes¶
primo/platform/config.hprimo/platform/reference.hprimo/platform/stream.hprimo/codecs/av.hprimo/pp/pp.hprimo/license/license.h
Classes¶
Name |
Description |
|---|---|
A Block is a unit that can produce, consume or transform media samples from/to multiple inputs/outputs. |
|
Global configuration. |
|
The parameter represents a 64-bit floating point number (double precision). |
|
Global hardware configuration. |
|
The parameter represents a 64-bit integer. |
|
The parameter represents a MediaBuffer object. |
|
Analyzes a file or a stream and provides information about its type and properties. |
|
MediaPin represents an elementary media stream. |
|
MediaPinList represents the elementary pins within a MediaSocket object. |
|
An input or output point of the Transcoder. |
|
MediaSocketList represents the inputs or outputs of a Transcoder. |
|
Parameter is the base class for named parameters passed to various classes in AVBlocks. |
|
A collection of Parameter objects. |
|
The parameter represents an untyped value which is stored in a char_t string. |
|
Provides functionality for audio and video encoding, decoding and transforming. |
|
The TranscoderCallback provides a way to receive notifications from the Transcoder and also to control its operation while it is running (Transcoder::run). |
|
The parameter represents a VideoStreamInfo object. |
Namespaces¶
primoprimo::avblocksprimo::avblocks::AVBlocksErrorprimo::avblocks::HardwareEncoderprimo::avblocks::Libraryprimo::avblocks::Paramprimo::avblocks::Param::Decoderprimo::avblocks::Param::Decoder::Videoprimo::avblocks::Param::Decoder::Video::H264primo::avblocks::Param::Decoder::Video::H264::VUIprimo::avblocks::Param::Demuxerprimo::avblocks::Param::Demuxer::Mpegprimo::avblocks::Param::Encoderprimo::avblocks::Param::Encoder::Audioprimo::avblocks::Param::Encoder::Audio::AACprimo::avblocks::Param::Encoder::Audio::G711primo::avblocks::Param::Encoder::Audio::MPEG1primo::avblocks::Param::Encoder::Audio::Opusprimo::avblocks::Param::Encoder::Audio::Vorbisprimo::avblocks::Param::Encoder::Audio::WMAprimo::avblocks::Param::Encoder::Videoprimo::avblocks::Param::Encoder::Video::H264primo::avblocks::Param::Encoder::Video::H265primo::avblocks::Param::Encoder::Video::MPEG2primo::avblocks::Param::Encoder::Video::VP8primo::avblocks::Param::Encoder::Video::VP9primo::avblocks::Param::Muxerprimo::avblocks::Param::Muxer::MP4primo::avblocks::Param::Videoprimo::avblocks::Param::Video::Cropprimo::avblocks::Param::Video::Deinterlacingprimo::avblocks::Param::Video::FrameRateConverterprimo::avblocks::Param::Video::Overlayprimo::avblocks::Param::Video::Padprimo::avblocks::Param::Video::Resizeprimo::avblocks::ParamTypeprimo::avblocks::PinConnectionprimo::avblocks::Presetprimo::avblocks::Preset::Audioprimo::avblocks::Preset::Audio::AudioCDprimo::avblocks::Preset::Audio::DVDprimo::avblocks::Preset::Audio::Genericprimo::avblocks::Preset::Audio::Generic::M4Aprimo::avblocks::Preset::Audio::Generic::MP3primo::avblocks::Preset::Audio::Generic::OggVorbisprimo::avblocks::Preset::Audio::Generic::WMAprimo::avblocks::Preset::Audio::Generic::WMA::Losslessprimo::avblocks::Preset::Audio::Generic::WMA::Professionalprimo::avblocks::Preset::Audio::Generic::WMA::Standardprimo::avblocks::Preset::Videoprimo::avblocks::Preset::Video::AndroidPhoneprimo::avblocks::Preset::Video::AndroidTabletprimo::avblocks::Preset::Video::AppleLiveStreamingprimo::avblocks::Preset::Video::AppleTVprimo::avblocks::Preset::Video::BDAVprimo::avblocks::Preset::Video::DVDprimo::avblocks::Preset::Video::Fastprimo::avblocks::Preset::Video::Fast::MP4primo::avblocks::Preset::Video::Genericprimo::avblocks::Preset::Video::Generic::MP4primo::avblocks::Preset::Video::Generic::WebMprimo::avblocks::Preset::Video::HDVprimo::avblocks::Preset::Video::Kindleprimo::avblocks::Preset::Video::VCDprimo::avblocks::Preset::Video::Webprimo::avblocks::Preset::Video::Web::MP4primo::avblocks::Preset::Video::iPadprimo::avblocks::Preset::Video::iPhoneprimo::avblocks::Preset::Video::iPodprimo::avblocks::TranscoderErrorprimo::avblocks::TranscoderStatusprimo::avblocks::Useprimo::errorprimo::error::ErrorFacility
Macros and Functions¶
Source¶
1//------------------------------------------------------------------------------
2// File: avb.h
3// AVBlocks SDK
4// (c) Copyright 2009-2023 Primo Software Corp. All rights reserved.
5//------------------------------------------------------------------------------
6
7/** @file */
8
9#ifndef ___AVBLOCKS_AVB_H___
10#define ___AVBLOCKS_AVB_H___
11
12// Platform Configuration
13#include <primo/platform/config.h>
14
15#ifndef RC_INVOKED // defined when parsed by the Windows Resource Compiler
16
17#include <primo/platform/reference.h>
18#include <primo/platform/stream.h>
19
20#include <primo/codecs/av.h>
21#include <primo/pp/pp.h>
22
23#include <primo/license/license.h>
24
25#endif
26
27
28/*
29These version constants should be used when the library version is needed at compile-time.
30*/
31#define AVBLOCKS_MAJOR_VERSION 3
32#define AVBLOCKS_MINOR_VERSION 4
33#define AVBLOCKS_PATCH_VERSION 0
34
35#if defined(PLATFORM_WINDOWS)
36
37 #define AVBLOCKS_CALL __cdecl
38
39 #ifdef AVBLOCKS_STATIC
40 // Static library
41 #define AVBLOCKS_API
42 #else
43 // DLL
44 #ifdef AVBLOCKS_EXPORTS
45 #define AVBLOCKS_API __declspec(dllexport)
46 #else
47 #define AVBLOCKS_API __declspec(dllimport)
48 #endif
49 #endif
50#elif defined(PLATFORM_MACOSX) || defined(PLATFORM_LINUX)
51 #define AVBLOCKS_CALL
52
53 #ifdef AVBLOCKS_STATIC
54 // Static library
55 #define AVBLOCKS_API
56 #else
57 // DLL
58 #ifdef AVBLOCKS_EXPORTS
59 #define AVBLOCKS_API __attribute__((visibility("default")))
60 #else
61 #define AVBLOCKS_API
62 #endif
63 #endif
64#endif
65
66#define AVBLOCKS_UNUSED_INT_RANGE 0x7FFF0000
67
68namespace primo {
69
70 /**
71 Shared namespace for error definitions
72 */
73 namespace error
74 {
75 /**
76 Common error facilities
77 */
78 namespace ErrorFacility
79 {
80 /**
81 AVBlocks Error
82
83 @see primo::avblocks::AVBlocksError::Enum
84 */
85 const int32_t AVBlocks = 5;
86
87 /**
88 Transcoder Error
89
90 @see primo::avblocks::TranscoderError::Enum
91 */
92 const int32_t Transcoder = 6;
93 }
94 }
95
96 /**
97 AVBlocks Application Programming Interface
98 */
99 namespace avblocks {
100
101#pragma pack(push, 1)
102
103 /**
104 Defines API usage errors. These errors are raised when the AVBlocks API is used incorrectly.
105 */
106 namespace AVBlocksError
107 {
108 /**
109 AVBlocksError::Enum
110 */
111 enum Enum
112 {
113 /**
114 = 9<br/>
115 A required feature (codec/format) is not licensed and demo mode is not enabled.
116
117 @see Transcoder::allowDemoMode
118 @see Transcoder::setAllowDemoMode
119 */
120 UnlicensedFeature = 9,
121
122 /**
123 = 10<br/>
124 Library is not initialized.
125
126 @see primo::avblocks::Library::initialize()
127 */
128 LibraryNotInitialized = 10,
129
130 /**
131 @deprecated Replaced by primo::codecs::CodecError::Failed
132 */
133 Failed = AVBLOCKS_UNUSED_INT_RANGE,
134
135 /**
136 @deprecated Replaced by primo::codecs::CodecError::NullPointer
137 */
138 NullPointer,
139
140 /**
141 @deprecated Replaced by primo::codecs::CodecError::InvalidParams
142 */
143 InvalidParams,
144
145 /**
146 @deprecated Replaced by primo::codecs::CodecError::Alloc
147 */
148 Alloc,
149
150 /**
151 @deprecated Replaced by primo::codecs::CodecError::NotImplemented
152 */
153 NotImplemented,
154
155 /**
156 @deprecated Replaced by primo::codecs::CodecError::InvalidOperation
157 */
158 InvalidOperation,
159
160 /**
161 @deprecated Replaced by primo::codecs::CodecError::Unsupported
162 */
163 UnsupportedFormat,
164
165 /**
166 @deprecated Replaced by primo::codecs::CodecError::MissingDependency
167 */
168 MissingDependency,
169 };
170 }
171
172 /**
173 Defines Transcoder specific errors.
174
175 The Transcoder may also return a CodecError or a system error.
176 */
177 namespace TranscoderError
178 {
179 /**
180 TranscoderError::Enum
181 */
182 enum Enum
183 {
184 /**
185 The transcoder could not build a processing chain based on its inputs and outputs.
186 Either the transcoder inputs and outputs are not configured properly or
187 they are not compatible with each other.
188
189 This error is returned by Transcoder::open()
190 */
191 NoChain = 1,
192
193 /**
194 The stream type of a MediaSocket is not defined.
195 When a media socket describes a file, the stream type is deduced from the file extension.
196 When a media socket describes a stream the stream type must be set explicitly. See StreamType::Enum.
197
198 This error is returned by Transcoder::open()
199 */
200 UndefinedSocketType = 2,
201
202 /**
203 It is not possible to convert from progressive to interlaced video.
204 Also it is not possible to switch interlace type from top-first to bottom-first or vice versa.
205
206 This error is returned by Transcoder::open()
207 */
208 UnsupportedInterlacedConversion = 3,
209
210 /**
211 A required encoder or decoder is not available.
212 */
213 NoCodec = 4,
214
215 /**
216 It is not possible to convert from one uncompressed video format to another. See ColorFormat::Enum.
217 */
218 UnsupportedVideoConversion = 5,
219
220 /**
221 Cannot accept more input through Transcoder::push(). Call Transcoder::pull() to obtain output samples.
222 */
223 InputFull = 6,
224
225 /**
226 @deprecated Replaced by primo::avblocks::TranscoderError::InputFull
227 */
228 BufferFull = InputFull,
229
230 /**
231 Cannot return output through Transcoder::pull(). Call Transcoder::push() to provide input samples.
232 */
233 InputNeeded = 7,
234 };
235 }
236
237 /**
238 These constants are used as special values of MediaPin.ID.
239
240 The Transcoder tries to connect the input/output pins depending on the values of MediaPin.ID
241
242 A value greater than 0 specifies that the media pin participates in explicit mapping.
243 */
244 namespace PinConnection
245 {
246 /**
247 PinConnection::Enum
248 */
249 enum Enum
250 {
251 /**
252 The media pin does not participate in pin mapping. It is ignored by the transcoder and is never used.
253 */
254 Disabled = -1,
255
256 /**
257 The media pin participates in an automatic (implicit) mapping.
258 When 2 pins are automatically connected MediaPin.ID is updated by the transcoder with a value greater than 0.
259 */
260 Auto = 0,
261 };
262 }
263
264 /**
265 Specifies whether particular feature should be used.
266 */
267 namespace Use
268 {
269 /**
270 Use::Enum
271 */
272 enum Enum
273 {
274 /**
275 The feature is OFF.
276 */
277 Off = 0,
278
279 /**
280 The feature is ON.
281 */
282 On = 1,
283
284 /**
285 The feature usage is automatic.
286 */
287 Auto = 2
288 };
289 }
290
291 /**
292 Defines which hardware encoder should be used for hardware accelerated encoding.
293 */
294 namespace HardwareEncoder
295 {
296 /**
297 HardwareEncoder::Enum
298 */
299 enum Enum
300 {
301 /**
302 Hardware encoders are disabled.
303 */
304 Off = 0,
305
306 /**
307 A hardware encoder is selected automatically depending on the available hardware and the output format.
308 <p>
309 The order of preference is: Intel QuickSync, NVIDIA NVENC, AMD VCE.
310 If none of the known encoders are available then a software encoder is used.
311 </p>
312 */
313 Auto = 1,
314
315 /**
316 AMD Video Coding Engine (VCE)
317 */
318 AMD = 2,
319
320 /**
321 Intel QuickSync Video
322 */
323 Intel = 3,
324
325 /**
326 NVIDIA NVENC
327 */
328 Nvidia = 4,
329 };
330 }
331
332 /**
333 Defines parameters that can be passed to the transcoder and to the components that are used in the transcoding process.
334
335 A parameter can be used with one or more components like decoders, encoders, demuxers, muxers, and others.
336 <p>A parameter can apply to:</p>
337
338 <list type="bullet">
339 <item>
340 <description>any component</description>
341 </item>
342 <item>
343 <description>a certain component category like encoders, decoders, demuxers, muxers, etc.</description>
344 </item>
345
346 <item>
347 <description>a component that handles a specific format like H.264 encoder, MPEG-2 encoder, MPEG-2 muxer, etc.</description>
348 </item>
349
350 <item>
351 <description>a specific implementation of a component, or a block like PrimoCodecs H.264 encoder</description>
352 </item>
353 </list>
354
355 The value representation, range and interpretation is different for each parameter.
356
357 @see ParameterList
358 @see MediaPin::params
359 @see MediaSocket::params
360 */
361 namespace Param
362 {
363 /**
364 Specifies whether a stream will be re-encoded.
365
366 This parameter is an integer.
367 <p>
368 The supported values are defined in the primo::avblocks::Use::Enum.
369 The default value is \ref primo::avblocks::Use::Auto "Use::Auto".
370
371 If this parameter is Use::Auto the re-encoding is done only when the input and the output formats are not equivalent.
372 If this parameter is Use::On the re-encoding is always done even if the input and the output formats are equivalent.
373 The case when this parameter is Use::Off is not implemented.
374 </p>
375 */
376 static const char ReEncode[] = "REENCODE_STREAM";
377
378 /**
379 Specifies which hardware encoder shall be used.
380
381 This parameter is an integer.
382 <p>
383 The supported values are defined in the primo::avblocks::HardwareEncoder::Enum.
384 The default value is \ref primo::avblocks::HardwareEncoder::Off "HardwareEncoder::Off".
385 </p>
386 */
387 static const char HardwareEncoder[] = "HARDWARE_ENCODER";
388
389 /**
390 Specifies the [device ID](@ref primo::codecs::HwDevice::ID) that shall be used for hardware encoding.
391
392 This parameter is an integer.
393 <p>
394 The [device ID](@ref primo::codecs::HwDevice::ID) includes uniquely identified devices that support the hardware encoder
395 specified by the HardwareEncoder parameter.
396 The default value is 0.
397 </p>
398
399 @see primo::codecs::HwDevice
400 */
401 static const char HardwareEncoderDevice[] = "HARDWARE_ENCODER_DEVICE";
402
403 /**
404 Specifies which hardware API shall be used.
405
406 This parameter is an integer.
407 <p>
408 The supported values are defined in the primo::codecs::HwApi::Enum.
409 The default value is \ref primo::codecs::HwApi::None "HwApi::None" which lets AVBlocks
410 select the hardware API.
411
412 @note
413 \ref primo::codecs::HwApi::AmdOpenVideo "AMD OpenVideo" is never selected automatically by AVBlocks.
414 It must be explicitly requested through this parameter.
415 */
416 static const char HardwareEncoderApi[] = "HARDWARE_ENCODER_API";
417
418 /**
419 Parameters specific to video filters
420 */
421 namespace Video
422 {
423 /**
424 Parameters specific to the video overlay filter
425 */
426 namespace Overlay
427 {
428 /**
429 Specifies an alpha compositing mode - the way a foreground overlay image is combined with the background video.
430
431 This is an IntParameter. The acceptable values are defined in primo::codecs::AlphaCompositingMode::Enum.
432
433 The default value is AlphaCompositingMode::Over (Foreground over Background), in effect, a normal painting operation.
434 */
435 static const char Mode[] = "OVERLAY_MODE";
436
437 /**
438 Specifies the X coordinate of the location where the overlay is applied on the frame.
439
440 This is an IntParameter.
441
442 X increases from left to right.
443 The top left point in the frame is the origin and has coordinates (0,0).
444 */
445 static const char LocationX[] = "OVERLAY_LOCATION_X";
446
447 /**
448 Specifies the Y coordinate of the location where the overlay is applied on the frame.
449
450 This is an IntParameter.
451
452 Y increases from top to bottom.
453 The top left point in the frame is the origin and has coordinates (0,0).
454 */
455 static const char LocationY[] = "OVERLAY_LOCATION_Y";
456
457 PRIMO_DEPRECATED("Deprecated. Please use primo::avblocks::Param::Video::Overlay::LocationX")
458 /**
459 Specifies the X coordinate of the background origin where the overlay must be applied.
460
461 This is an IntParameter.
462
463 @deprecated Please use primo::avblocks::Param::Video::Overlay::LocationX instead.
464 */
465 static const char* BackgroundX = LocationX;
466
467
468 PRIMO_DEPRECATED("Deprecated. Please use primo::avblocks::Param::Video::Overlay::LocationY.")
469 /**
470 Specifies the Y coordinate of the background origin where the overlay must be applied.
471
472 This is an IntParameter.
473
474 @deprecated Please use primo::avblocks::Param::Video::Overlay::LocationY instead.
475 */
476 static const char* BackgroundY = LocationX;
477
478 /**
479 Specifies the alpha value for all pixels in the background.
480
481 This is a FloatParameter with range from 0.0 to 1.0. The default value is 1.0.
482 */
483 static const char BackgroundAlpha[] = "OVERLAY_BACKGROUND_ALPHA";
484
485 /**
486 Specifies the foreground that should be overlaid with the background.
487
488 This is a MediaBufferParameter.
489 */
490 static const char ForegroundBuffer[] = "OVERLAY_FOREGROUND_BUFFER";
491
492 /**
493 Specifies the format of the foreground buffer.
494
495 This is a VideoStreamInfoParameter.
496 */
497 static const char ForegroundBufferFormat[] = "OVERLAY_FOREGROUND_BUFFER_FORMAT";
498
499 /**
500 Specifies the alpha value for all pixels in the foreground.
501
502 This is a FloatParameter with range from 0.0 to 1.0.
503
504 The default value is 1.0 which in combination with other overlay parameters results in showing the foreground and hiding the background.
505 */
506 static const char ForegroundAlpha[] = "OVERLAY_FOREGROUND_ALPHA";
507 }
508
509 /**
510 Parameters specific to the video frame rate converter filter
511 */
512 namespace FrameRateConverter
513 {
514 /**
515 Video: Specifies whether a video frame rate filter is inserted in the processing pipeline.
516 The filter converts the input frame rate to the output frame rate.
517
518 This parameter is an integer.
519 <p>
520 The supported values are defined in the primo::avblocks::Use::Enum.
521 The default value is \ref primo::avblocks::Use::Auto "Use::Auto".
522
523 If this parameter is Use::Auto the frame rate conversion is done only when the
524 input frame rate differs form the output frame rate.
525 </p>
526 */
527 static const char Use[] = "VIDEO_FRAME_RATE_FILTER";
528
529 /**
530 Video: Specifies whether a video frame rate filter is allowed to drop frames
531 when a video encoder cannot keep up with the input in realtime.
532
533 This parameter is a boolean value expressed as an integer (1|0).<br/>
534 <p>
535 The default is False (0).
536
537 <ul>
538 <li>If True (1) the video frame rate filter is allowed to drop frames when a video encoder cannot keep up with the input in realtime.</li>
539 <li>If False (0) the video frame rate filter does not drop frames when a video encoder cannot keep up with the input in realtime.</li>
540 </ul>
541 </p>
542 */
543 static const char RealTime[] = "VIDEO_FRAME_RATE_FILTER_REAL_TIME";
544 }
545
546 /** Parameters specific to video deinterlacing */
547 namespace Deinterlacing
548 {
549 /**
550 Video: Specifies the deinterlacing method used by the deinterlacing filter.
551
552 This parameter is an integer.
553 <p>
554 The supported values are defined in the primo::codecs::DeinterlacingMethod::Enum.
555 The default value is \ref primo::codecs::DeinterlacingMethod::Blend "DeinterlacingMethod::Blend".
556 </p>
557 */
558 static const char Method[] = "DEINTERLACING_METHOD";
559
560 /**
561 Video: Specifies the deinterlacing threshold that is used by some deinterlacing methods.
562
563 The threshold is used by the \ref primo::codecs::DeinterlacingMethod::MedianThreshold "MedianThreshold" and
564 primo::codecs::DeinterlacingMethod::CAVT "CAVT" deinterlacing methods.
565
566 This parameter is an integer.
567 <p>
568 The supported values are in the range from 0 to 255.
569 Zero specifies that a default threshold should be used. Each deinterlacing method may have its own default threshold value.
570 </p>
571 */
572 static const char Threshold[] = "DEINTERLACING_THRESHOLD";
573
574 /*
575 Video: Specifies whether a deinterlacing filter is inserted in the processing chain.
576
577 This parameter is an integer.
578 <p>
579 The supported values are defined in the primo::avblocks::Use::Enum.
580 The default value is \ref primo::avblocks::Use::Auto "Use::Auto".
581
582 If this parameter is Use::Auto the frame rate filter is used only when the
583 input interlace/scan type differs form the output type.
584 </p>
585
586 @warning
587 Not implemented yet.
588 */
589 static const char Use[] = "DEINTERLACING_FILTER";
590 }
591
592 /** Parameters specific to video resizing */
593 namespace Resize
594 {
595 /**
596 Video: Specifies the interpolation method that is used for resizing video frames.
597
598 This parameter is an integer.
599 <p>
600 The supported values are defined in the primo::codecs::InterpolationgMethod::Enum.
601 The default value is \ref primo::codecs::InterpolationMethod::Cubic "InterpolationMethod::Cubic".
602 </p>
603 */
604 static const char InterpolationMethod[] = "RESIZE_INTERPOLATION_METHOD";
605 }
606
607 /**
608 Parameters specific to video cropping
609
610 @note Cropping is done <b>before</b> padding.
611 */
612 namespace Crop
613 {
614 /**
615 Video: Specifies the area to be cropped inside the left edge of the input frame.
616
617 This parameter is an integer.
618 */
619 static const char Left[] = "CROP_LEFT";
620
621 /**
622 Video: Specifies the area to be cropped inside the right edge of the input frame.
623
624 This parameter is an integer.
625 */
626 static const char Right[] = "CROP_RIGHT";
627
628 /**
629 Video: Specifies the area to be cropped inside the top edge of the input frame.
630
631 This parameter is an integer.
632 */
633 static const char Top[] = "CROP_TOP";
634
635 /**
636 Video: Specifies the area to be cropped inside the bottom edge of the input frame.
637
638 This parameter is an integer.
639 */
640 static const char Bottom[] = "CROP_BOTTOM";
641 }
642
643 /**
644 Parameters specific to video padding
645
646 @note The padding is applied inside the output frame at the expense of the usable frame area.
647 <p>
648 Example:
649 Transcoder input settings:
650 Input frame resolution: 640x480, output frame resolution: not specified, padding as follows: top(60), bottom(60)
651 <br />
652 Transcoder result:
653 The output frame is 640x480 because the input resolution is kept implicitly.
654 The padding is applied inside the 640x480 frame and the usable frame area becomes 640x360.
655 </p>
656
657 @note Padding is done <b>after</b> cropping.
658 */
659 namespace Pad
660 {
661 /**
662 Video: Specifies the area to be padded inside the left edge of the output frame.
663
664 The parameter is an integer.
665 */
666 static const char Left[] = "PAD_LEFT";
667
668 /**
669 Video: Specifies the area to be padded inside the right edge of the output frame.
670
671 The parameter is an integer.
672 */
673 static const char Right[] = "PAD_RIGHT";
674
675 /**
676 Video: Specifies the area to be padded inside the top edge of the output frame.
677
678 The parameter is an integer.
679 */
680 static const char Top[] = "PAD_TOP";
681
682 /**
683 Video: Specifies the area to be padded inside the bottom edge of the output frame.
684
685 The parameter is an integer.
686 */
687 static const char Bottom[] = "PAD_BOTTOM";
688
689 /**
690 Video: Specifies the padding color if any padding is set.
691
692 The parameter is an integer.
693 The color format is ARGB32: bits 0-7 is blue, bits 8-15 is green, bits 16-23 is red and bits 24-31 is the alpha channel.
694
695 */
696 static const char Color[] = "PAD_COLOR";
697 }
698 }
699
700 /** Parameters specific to decoders */
701 namespace Decoder
702 {
703 /**
704 Decoder configuration data.
705
706 This parameter is a MediaBufferParameter.
707 */
708 static const char Config[] = "DECODER_CONFIG";
709
710 /** Parameters specific to video decoders */
711 namespace Video
712 {
713 /** Parameters specific to H.264 decoders */
714 namespace H264
715 {
716 /**
717 Parameters the are part of the Video Usability Information in the H.264 stream.
718 These parameters can aid decoding but a conformant decoder is not required to process them.
719 */
720 namespace VUI
721 {
722 /**
723 H264 Video: Specifies the requested size of the Decoded Picture Buffer.
724 This parameter can be used to achieve low latency decoding.
725
726 This parameter is an integer (0-1).<br/>
727 <p>
728 A typical usage of this parameter is to set it to 1 or 0.
729 In this case the number of decoding threads is implicitly limited to 1.
730 A negative value is ignored by the decoder.
731 </p>
732
733 @note Zero latency is possible only with progressive streams with no B-frames.
734 The decoder attempts to detect cases when this parameter can break decoding and may adjust it.
735 However it's still possible that certain streams may not decode properly when this setting is too low.
736 */
737 static const char MaxDecFrameBuffering[] = "DECODER_H264_MAX_DEC_FRAME_BUFFERING";
738 }
739 }
740
741 /**
742 Video: Specifies whether to conceal bitstream defects and errors.
743
744 This parameter is a boolean value expressed as an integer (1|0).<br/>
745 <p>
746 The default is True (1).
747
748 <ul>
749 <li>If True (1) non-fatal bitstream errors are concealed.</li>
750 <li>If False (0) any bitstream error is reported.</li>
751 </ul>
752 </p>
753
754 @remarks The ConcealDefects parameter is currently valid only for MPEG4-Visual and H.264 video decoding.
755 When the video decoder encounters a corrupt frame, the decoder substitutes the bad macroblocks with good macroblocks from the previous frame.
756 When a macroblock is partially valid, for example the luma coefficients are fine, but the chroma coefficients are corrupt, the error recovery is not perfect.
757 */
758 static const char ConcealDefects[] = "DECODER_VIDEO_CONCEAL_DEFECTS";
759 }
760 }
761
762 /** Parameters specific to encoders */
763 namespace Encoder
764 {
765 /** Parameters specific to audio encoders */
766 namespace Audio
767 {
768 /** Parameters specific to MPEG1 audio encoders */
769 namespace MPEG1
770 {
771 /**
772 MPEG Audio: Forces MPEG audio to version 1.
773
774 This parameter is a boolean value expressed as an integer (1|0).<br/>
775 <p>
776 The default value is False (0).
777 </p>
778 */
779 static const char ForceV1[] = "ENCODER_MPEGAUDIO_FORCE_V1";
780
781 /**
782 MPEG Audio: Specifies the stereo mode.
783
784 <p>
785 The supported values are defined in the primo::codecs::StereoMode::Enum.
786 The default value is \ref primo::codecs::StereoMode::LR "StereoMode::LR".
787 </p>
788
789 @see primo::codecs::StereoMode::Enum
790 */
791 static const char StereoMode[] = "ENCODER_MPEGAUDIO_STEREOMODE";
792 }
793
794 /** Parameters specific to AAC audio encoders */
795 namespace AAC
796 {
797 /**
798 AAC Audio: Specifies the stereo mode.
799
800 <p>
801 The supported values are defined in the primo::codecs::StereoMode::Enum.
802 The default value is \ref primo::codecs::StereoMode::LR "StereoMode::LR".
803 </p>
804
805 @see primo::codecs::StereoMode::Enum
806 */
807 static const char StereoMode[] = "ENCODER_AAC_STEREOMODE";
808 }
809
810 /** Parameters specific to Vorbis audio encoders */
811 namespace Vorbis
812 {
813 /**
814 Vorbis Audio: Specifies the quality of the compressed audio.
815
816 This parameter is a floating point number.<br/>
817 <p>
818 Supported values range: from -0.1 to 1.0. The default value is 0.4.
819 </p>
820 */
821 static const char Quality[] = "ENCODER_VORBIS_QUALITY";
822 }
823
824 /** Parameters specific to Opus audio encoders */
825 namespace Opus
826 {
827 /**
828 Opus Audio: Specifies the complexity of the encoding algorithm.
829
830 This parameter is an integer.<br/>
831 <p>
832 Supported values range: from 0 to 10. The default value is 10.
833 </p>
834 */
835 static const char Complexity[] = "ENCODER_OPUS_COMPLEXITY";
836
837 /**
838 Opus Audio: Specifies the intended application of the encoded audio.
839
840 This parameter is an integer.<br/>
841 <p>
842 Supported values are defined in the primo::codecs::OpusApplication::Enum.
843 The default value is \ref primo::codecs::OpusApplication::Audio "OpusApplication::Audio".
844 </p>
845 */
846 static const char Application[] = "ENCODER_OPUS_APPLICATION";
847 }
848
849 /** Parameters specific to WMA audio encoders */
850 namespace WMA
851 {
852 /**
853 Windows Media Audio: Specifies the quality of the compressed audio.
854
855 This parameter is an integer.<br/>
856 <p>
857 Supported values range: from 1 to 100. The default value is 50.
858 </p>
859
860 @note
861 The WMA quality parameter is used only when the encoded bitrate mode is
862 \link primo::codecs::BitrateMode::VBR BitrateMode::VBR\endlink, otherwise it is ignored.
863 */
864 static const char Quality[] = "ENCODER_WMA_QUALITY";
865 }
866
867 /**
868 Parameters specific to G.711 audio encoder
869 */
870 namespace G711
871 {
872 /**
873 G.711 Audio: Enables Voice Activity Detection (VAD).
874
875 This parameter is a boolean value expressed as an integer (1|0).<br/>
876 <p>
877 The default value is False (0).
878 </p>
879
880 @version 3.2
881 */
882 static const char EnableVAD[] = "ENCODER_G711_ENABLE_VAD";
883 }
884 }
885
886 /** Parameters specific to video encoders */
887 namespace Video
888 {
889 /** Parameters specific to MPEG-1 and MPEG-2 video encoders */
890 namespace MPEG2
891 {
892 /**
893 MPEG-1 and MPEG-2 Video: Size of the Group of Pictures (GOP, N).
894
895 This parameter is an integer.<br/>
896 <p>
897 The integer value is the distance between two I-pictures (full images).
898 The minimum value is 1 which means the stream will contain only I-pictures.
899 The maximum value for MPEG-1 is 132.
900 </p>
901 <p>The default value is 15.</p>
902
903 @see MPEG2::IPDistance
904 */
905 static const char GOPSize[] = "ENCODER_MPEG2VIDEO_GOPSIZE";
906
907 /**
908 MPEG-1 and MPEG-2 Video: Distance between successive reference pictures (GOP, M).
909
910 This parameter is an integer.<br/>
911 <p>
912 The integer value is the distance between 2 successive reference pictures:
913 I-I, I-P, P-I or P-P.
914 The minimum value is 1 which means that the stream will contain I and P pictures but no B-pictures.
915 </p>
916 <p>
917 If IPDistance is equal to GOPSize and is greater than 1
918 then the stream will contain only I and B picutres, but no P-pictures.
919 </p>
920 <p>The default value is 3.</p>
921
922 @see MPEG2::GOPSize
923 */
924 static const char IPDistance[] = "ENCODER_MPEG2VIDEO_IPDISTANCE";
925
926 /**
927 MPEG-1 and MPEG-2 Video: Size of the internal VBV buffer in units of 16384 bits.
928
929 This parameter is an integer.<br/>
930 <p>
931 The default value is 20 for MPEG-1 and 112 for MPEG-2.
932 </p>
933 <p>
934 A value of 0 means to use the encoder default setting.
935 </p>
936 */
937 static const char VBVBufferSize[] = "ENCODER_MPEG2VIDEO_VBV_BUFFER_SIZE";
938 }
939
940 /** Parameters specific to AVC/H.264 encoders */
941 namespace H264
942 {
943 /**
944 H.264 Video: Encoding profile.
945
946 This parameter is an integer.<br/>
947
948 <p>
949 The supported values are defined in the primo::codecs::H264Profile::Enum.
950 The default value is \ref primo::codecs::H264Profile::Main "H264Profile::Main".
951 </p>
952
953 <p>Sets the value of the profile_idc syntax element.</p>
954
955 @note
956 Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.
957
958 @see primo::codecs::H264Profile::Enum
959 @see H264::EntropyCodingMode
960 @see H264::NumBFrames
961 @see H264::Transform8x8
962 */
963 static const char Profile[] = "ENCODER_H264_PROFILE_IDC";
964
965 /**
966 H.264 Video: Entropy coding mode.
967
968 This parameter is an integer.<br/>
969 <p>
970 The supported values are defined in the primo::codecs::H264EntropyCodingMode::Enum.
971 The default value is \ref primo::codecs::H264EntropyCodingMode::CABAC "H264EntropyCodingMode::CABAC".
972 </p>
973
974 <p>CABAC compresses data more efficiently (10-20% typically) than CAVLC but requires considerably more processing to decode.</p>
975 <p>CABAC is supported at Main, High, High10, High422 and High444 profiles. CABAC is not supported at Baseline profile.</p>
976
977 @note
978 Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.
979
980 @see primo::codecs::H264EntropyCodingMode::Enum
981 @see H264::Profile
982 @see primo::codecs::H264Profile::Enum
983
984 */
985 static const char EntropyCodingMode[] = "ENCODER_H264_ENTROPY_CODING_MODE";
986
987 /**
988 H.264 Video: Number of B-frames between consequent I-frames or P-frames.
989
990 This parameter is an integer.<br/>
991 <p>
992 The integer value must be a number that is greater than or equal to zero.
993 </p>
994 <p>The default value is 0.</p>
995
996 <p>B-frames are supported at Main, High, High10, High422 and High444 profiles. B frames are not supported at Baseline profile.</p>
997
998 <p>
999 H.264 stream without B frames looks like: IPPPPPPP...PI...
1000 H.264 stream with B frames (NumBFrames 2) looks like: IBBPBBPBBP...PI
1001
1002 The main advantage of the usage of B frames is coding efficiency. In most cases, B frames will result in less bits being coded overall.
1003 B-frames can use both previous and forward frames for data reference to get the highest amount of data compression.</p>
1004
1005 @note
1006 Hardware encoders support: Intel QuickSync, NVIDIA NVENC, AMD VCE.
1007
1008 @note
1009 AMD VCE supports B frames with the following restrictions:
1010 <ul>
1011 <li>VCE2 and up must be used. VCE1 has no support for B frames and ignores this parameter.</li>
1012 <li>Maximum 3 B frames are accepted, 4+ is treated as an invalid parameter.</li>
1013 <li>AMD OpenVideo (\ref primo::codecs::HwApi::AmdOpenVideo "HwApi::AmdOpenVideo")
1014 does not support B frames and ignores this parameter.
1015 </li>
1016 </ul>
1017
1018 @see H264::Profile
1019 @see primo::codecs::H264Profile::Enum
1020 */
1021 static const char NumBFrames[] = "ENCODER_H264_NUM_B_FRAMES";
1022
1023 /**
1024 H.264 Video: Allows B-pictures to be used as reference pictures.
1025
1026 This parameter is a boolean value expressed as an integer (1|0).<br/>
1027 <p>The default value is 0 (False).</p>
1028
1029 @note
1030 Hardware encoders support: Intel QuickSync.
1031
1032 @see H264::NumBFrames
1033 */
1034 static const char TreatBFramesAsReference[] = "ENCODER_H264_TREAT_B_FRAMES_AS_REFERENCE";
1035
1036 /**
1037 H.264 Video: Maximum number of reference pictures.
1038 Sets the maximum number of references stored in the Decoded Picture Buffer (DPB) for motion estimation and compensation.
1039 Essentially sets the syntax element num_ref_frames in the sequence parameter sets.
1040
1041 This parameter is an integer.<br/>
1042 <p>
1043 The integer value must be consistent with profile/level parameters for a given frame size,
1044 since they determine reference picture and buffer constraints for a decoder.<br/>
1045 If P-pictures are allowed, the number should be greater than 0.<br/>
1046 If B-pictures are allowed, the number should be greater than 1.<br/>
1047 Note: If NumRefFrames is 0 it is automatically determined by the encoder.
1048 </p>
1049 <p>The default value is 3. Supported values: from 0 to 16.</p>
1050
1051 <p>This setting controls how many frames can be referenced by P- and B-Frames.
1052 Higher values will usually result in a more efficient compression,
1053 but will also require more time for encoding. </p>
1054
1055 @note
1056 Hardware encoders support: Intel QuickSync, AMD VCE (only OpenVideo), NVIDIA NVENC.
1057 */
1058 static const char NumRefFrames[] = "ENCODER_H264_NUM_REF_FRAMES";
1059
1060 /**
1061 H.264 Video: Number of slices per frame/field.
1062
1063 This parameter is an integer.<br/>
1064 <p>
1065 The integer value cannot exceed the number of macro blocks per frame/field.<br/>
1066 A frame/field is divided into equal parts except for the last one that can be shorter.
1067 </p>
1068 <p>The default value is 0 (auto).</p>
1069
1070 @note
1071 Hardware encoders support: Intel QuickSync, NVIDIA NVENC.
1072 */
1073 static const char NumSlices[] = "ENCODER_H264_NUM_SLICES";
1074
1075 /**
1076 H.264 Video: Computation level.
1077 Set the value of the level_idc syntax element.
1078
1079 This parameter is an integer.<br/>
1080 <p>
1081 A level designated as <i>x.y</i> is expressed as an <i>xy</i> integer value.
1082 For example level 1 is expressed as 10, level 1.1 as 11 and so on.
1083 The level must be in accordance with the H.264 standard.
1084 It must correspond to the number of reference frames and frame size.
1085 A value of 0 specifies automatic level computation.
1086 </p>
1087 <p>The default value is 0 (auto).</p>
1088
1089 <p>Note: Similar with the Profile, Level specifies the capabilities a decoder must fulfill to decode a bitstream of a certain level.
1090 Most level restrictions are driven by memory restrictions and set restrictions such as resolution supported, maximum number of references, frame rate etc.</p>
1091
1092 @note
1093 Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.
1094 */
1095 static const char Level[] = "ENCODER_H264_LEVEL_IDC";
1096
1097 /**
1098 H.264 Video: De-blocking filter mode.
1099
1100 This parameter is an integer.<br/>
1101 <p>
1102 The supported values are defined in the primo::codecs::H264DeblockingFilter::Enum.
1103 The default value is \ref primo::codecs::H264DeblockingFilter::All "H264DeblockingFilter::All".
1104 </p>
1105
1106 <p>The in-loop deblocking filter helps prevent the blocking artifacts common to other DCT-based image compression techniques,
1107 resulting in better visual appearance and compression efficiency</p>
1108
1109 @note
1110 Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.
1111
1112 @see primo::codecs::H264DeblockingFilter::Enum
1113 */
1114 static const char DeblockingFilter[] = "ENCODER_H264_DEBLOCKING_FILTER_IDC";
1115
1116
1117 /**
1118 H.264 Video: De-blocking filter strength.
1119
1120 This parameter is an integer.<br/>
1121 <p>
1122 Supported values range: from -6 to 6.
1123 Negative values give a more sharp video, but they also increases the danger of visible block artifacts.
1124 In contrast positive values result in a smoother video, but they will also remove more details.
1125 The default value is 0.
1126 </p>
1127
1128 @note
1129 Hardware encoders support: AMD VCE.
1130
1131 @see H264::DeblockingFilter
1132 @see H264::DeblockingFilterBeta
1133 */
1134 static const char DeblockingFilterAlpha[] = "ENCODER_H264_DEBLOCKING_FILTER_ALPHA";
1135
1136 /**
1137 H.264 Video: De-blocking filter threshold.
1138
1139 This parameter is an integer.<br/>
1140 <p>
1141 This parameter controls the threshold for block detection.
1142 </p>
1143 <p>
1144 Supported values range: from -6 to 6.<br />
1145 Negative values "save" more details, but more blocks might slip through (especially in flat areas).
1146 In contrast positive values will remove more details and catch more blocks.
1147 The default value is 0 and usually it's enough to detect all blocks.
1148 </p>
1149
1150 @note
1151 Hardware encoders support: AMD VCE.
1152
1153 @see H264::DeblockingFilter
1154 @see H264::DeblockingFilterAlpha
1155 */
1156 static const char DeblockingFilterBeta[] = "ENCODER_H264_DEBLOCKING_FILTER_BETA";
1157
1158 /**
1159 H.264 Video: Transform 8x8 mode.
1160
1161 This parameter is a boolean value expressed as an integer (1|0).<br/>
1162 <p>Supported modes are:</p>
1163 <p>
1164 0 - Disabled. Only 4x4 transforms are used.<br/>
1165 1 - Enabled. Allows the additional use of 8x8 transform.<br/>
1166 </p>
1167
1168 The default is Disabled (0).
1169
1170 <p>Transform 8x8 improves the visual quality at a minor speed cost.</p>
1171 <p>Transform 8x8 is supported at High, High10, High422 and High444. 8x8 transform is not supported at Main and Baseline profiles.</p>
1172
1173 @note
1174 Hardware encoders support: None.
1175
1176 @see H264::Profile
1177 */
1178 static const char Transform8x8[] = "ENCODER_H264_TRANSFORM8X8";
1179
1180 /**
1181 H.264 Video: Direct prediction mode.
1182 Sets the value of the syntax element direct_spatial_mv_pred_flag.
1183
1184 This parameter is an integer.<br/>
1185 <p>
1186 The supported values are defined in the primo::codecs::H264DirectPredMode::Enum.
1187 The default value is \ref primo::codecs::H264DirectPredMode::Temporal "H264DirectPredMode::Temporal".
1188 </p>
1189
1190 @note
1191 Hardware encoders support: NVIDIA NVENC.
1192 */
1193 static const char DirectPredMode[] = "ENCODER_H264_DIRECT_PRED_MODE";
1194
1195 /**
1196 H.264 Video: Quality/Speed trade off.
1197
1198 This parameter is an integer.<br/>
1199 <p>
1200 Supported values range from 0 to 6 where 0 means max speed and 6 means max quality.
1201 The default value is 0.
1202 </p>
1203
1204 @note
1205 Hardware encoders support: Intel QuickSync.
1206 */
1207 static const char QualitySpeed[] = "ENCODER_H264_QUALITY_SPEED";
1208
1209 /**
1210 H.264 Video: Specifies how far motion estimation should be done in a horizontal direction.
1211
1212 This parameter is an integer.<br/>
1213 <p>The default value is 8.</p>
1214
1215 @note
1216 Hardware encoders support: AMD VCE.
1217 */
1218 static const char MERangeSearchX[] = "ENCODER_H264_ME_RANGE_SEARCH_X";
1219
1220 /**
1221 H.264 Video: Specifies how far motion estimation should be done in a vertical direction.
1222
1223 This parameter is an integer.<br/>
1224 <p>The default value is 8.</p>
1225
1226 @note
1227 Hardware encoders support: AMD VCE.
1228 */
1229 static const char MERangeSearchY[] = "ENCODER_H264_ME_RANGE_SEARCH_Y";
1230
1231 /**
1232 H.264 Video: Specifies the block size for which motion estimation should be done.
1233
1234 This parameter is an integer.<br/>
1235 <p>
1236 The supported values are defined in the primo::codecs::H264MeSplitMode::Enum.
1237 The default value is \ref primo::codecs::H264MeSplitMode::Only16x16 "H264MeSplitMode::Only16x16".
1238 </p>
1239
1240 @note
1241 Hardware encoders support: None.
1242 */
1243 static const char MESplitMode[] = "ENCODER_H264_ME_SPLIT_MODE";
1244
1245 /**
1246 H.264 Video: Motion estimation method.
1247
1248 This parameter is an integer.<br/>
1249 <p>
1250 The supported values are defined in the primo::codecs::H264MeMethod::Enum.
1251 The default value is \ref primo::codecs::H264MeMethod::Log "H264MeMethod::Log".
1252 </p>
1253
1254 @note
1255 Hardware encoders support: None.
1256 */
1257 static const char MEMethod[] = "ENCODER_H264_ME_METHOD";
1258
1259 /**
1260 H.264 Video: Picture coding type.
1261
1262 This parameter is an integer.<br/>
1263 <p>
1264 The supported values are defined in the primo::codecs::H264PicCodingType::Enum.
1265 The default value is \ref primo::codecs::H264PicCodingType::Frames "H264PicCodingType::Frames".
1266 </p>
1267
1268 @note
1269 Hardware encoders support: None.
1270 */
1271 static const char PictureCodingType[] = "ENCODER_H264_PIC_CODING_TYPE";
1272
1273 /**
1274 H.264 Video: Rate control method.
1275
1276 This parameter is an integer.<br/>
1277 <p>
1278 The supported values are defined in the primo::codecs::H264RateControlMethod::Enum.
1279 The default value is \ref primo::codecs::H264RateControlMethod::ABR "H264RateControlMethod::ABR".
1280 </p>
1281
1282 @note
1283 Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.
1284
1285 @see H264::RateControlQuantI
1286 @see H264::RateControlQuantP
1287 @see H264::RateControlQuantB
1288 */
1289 static const char RateControlMethod[] = "ENCODER_H264_RATE_CONTROL_METHOD";
1290
1291 /**
1292 H.264 Video: Rate control quantizer for I slices.
1293 Used only when RateControlMethod is set to Constant Quantization.
1294
1295 This parameter is an integer.<br/>
1296 <p>Supported values range: from 0 to 51. The default value is 20.</p>
1297
1298 @note
1299 Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.
1300
1301 @see H264::RateControlMethod
1302 */
1303 static const char RateControlQuantI[] = "ENCODER_H264_RATE_CONTROL_QUANT_I";
1304
1305 /**
1306 H.264 Video: Rate control quantizer for P slices.
1307 Used only when RateControlMethod is set to Constant Quantization.
1308
1309 This parameter is an integer.<br/>
1310 <p>Supported values range: from 0 to 51. The default value is 20.</p>
1311
1312 @note
1313 Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.
1314
1315 @see H264::RateControlMethod
1316 */
1317 static const char RateControlQuantP[] = "ENCODER_H264_RATE_CONTROL_QUANT_P";
1318
1319 /**
1320 H.264 Video: Rate control quantizer for B slices.
1321 Used only when RateControlMethod is set to Constant Quantization.
1322
1323 This parameter is an integer.<br/>
1324 <p>Supported values range: from 0 to 51. The default value is 20.</p>
1325
1326 @note
1327 Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.
1328
1329 @see H264::RateControlMethod
1330 */
1331 static const char RateControlQuantB[] = "ENCODER_H264_RATE_CONTROL_QUANT_B";
1332
1333 /**
1334 H.264 Video: Distance between two sequential I-pictures.
1335
1336 This parameter is an integer.<br/>
1337 <p>
1338 The integer value must be greater than or equal to 0. Both 0 and 1 mean that every picture is coded as I-picture.
1339 </p>
1340 <p>The default value is 90.</p>
1341
1342 @note
1343 Hardware encoders support: Intel QuickSync, AMD VCE, NVIDIA NVENC.
1344 */
1345 static const char KeyFrameInterval[] = "ENCODER_H264_KEY_FRAME_INTERVAL";
1346
1347 /**
1348 H.264 Video: Distance between two sequential IDR-pictures in terms of I pictures. IDR stands for Instantaneous Decoding Refresh.
1349
1350 This parameter is an integer.<br/>
1351 <p>The integer value must be greater or equal to 0.</p>
1352 <p>
1353 For example if this parameter is 10 then every tenth I-picture is also an IDR-picture.
1354 </p>
1355 <p>
1356 An IDR picture is a special kind of I frame used in an H.264 stream.
1357 Pictures following an IDR-picture may not refer back to pictures preceding the IDR-picture.
1358 IDR-pictures can be used to create H.264 streams which are more easily edited.
1359 </p>
1360 <p>The default value is 1.</p>
1361
1362 @note
1363 Hardware encoders support: Intel QuickSync, AMD VCE.
1364 */
1365 static const char KeyFrameIDRInterval[] = "ENCODER_H264_KEY_FRAME_IDR_INTERVAL";
1366
1367 /**
1368 H.264 Video: Use access unit delimiters.
1369
1370 This parameter is a boolean value expressed as an integer (1|0).<br/>
1371 <p>
1372 The default value is False (0).
1373 </p>
1374
1375 @note
1376 Hardware encoders support: Intel QuickSync, NVIDIA NVENC.
1377 */
1378 static const char AccessUnitDelimiters[] = "ENCODER_H264_ACCESS_UNIT_DELIMITERS";
1379
1380 /**
1381 H.264 Video: Write timing info with a fixed frame rate in the bitstream.
1382
1383 This parameter is a boolean value expressed as an integer (1|0).<br/>
1384 <p>
1385 The default value is True (1).
1386 </p>
1387 <p>
1388 The timing info is written in the bitstream only when this parameter is True and a positive frame rate is specified.
1389 </p>
1390
1391 @note
1392 Hardware encoders support: Intel QuickSync.
1393 */
1394 static const char FixedFramerate[] = "ENCODER_H264_FIXED_FRAMERATE";
1395 }
1396
1397 /** Parameters specific to HEVC/H.265 encoders */
1398 namespace H265
1399 {
1400 /**
1401 H.265 encoding profile. <br/>
1402
1403 This parameter is an integer. <br/>
1404
1405 <p>
1406 The supported values are defined in the primo::codecs::H265Profile.
1407 The default value is [H265Profile::Main](@ref primo::codecs::H265Profile::Enum).
1408 </p>
1409 <p>Supported profiles: Main, Main10.</p>
1410 <p>Sets the value of the profile_idc syntax element.</p>
1411
1412 @see primo::codecs::H265Profile::Enum
1413 @see H265::Level
1414 @see H265::Tier
1415 */
1416 static const char Profile[] = "ENCODER_H265_PROFILE_IDC";
1417
1418 /**
1419 H.265 computation level.
1420
1421 This parameter is an integer. <br/>
1422
1423 Sets the value of the level_idc syntax element. <br/>
1424
1425 <p>The default value is [H265Level::None](@ref primo::codecs::H265Level::None) (level is selected automatically).</p>
1426
1427 <p>Note: Similar with the Profile, Level specifies the capabilities a decoder must fulfill to decode a bitstream of a certain level.
1428 Most level restrictions are driven by memory restrictions and set restrictions such as resolution supported, maximum number of references, frame rate etc.</p>
1429
1430 @see primo::codecs::H265Level
1431 @see H265::Profile
1432 @see H265::Tier
1433 */
1434 static const char Level[] = "ENCODER_H265_LEVEL_IDC";
1435
1436 /**
1437 H.265 bitrate tier.
1438
1439 <p>
1440 The supported values are defined in the primo::codecs::H265Tier.
1441 The default value is [H265Tier::Main](primo::codecs::H265Tier::Main).
1442 </p>
1443
1444 <p>
1445 High tier specifies higher bitrate than Main tier.
1446 The High tier is not supported under level 4.
1447 </p>
1448
1449 @see primo::codecs::H265Tier
1450 @see H265::Profile
1451 @see H265::Level
1452 */
1453 static const char Tier[] = "ENCODER_H265_TIER";
1454
1455 /**
1456 H.265 `Group of Pictures (GOP)` size.
1457
1458 This parameter is an integer.<br/>
1459 <p>
1460 The integer value is the distance between two I-pictures.
1461 If 1 then stream will contain only I-pictures.
1462 If 0 then there will be no I-pictures in the stream after the first picture.
1463 </p>
1464 <p>The default value is 0.</p>
1465
1466 @see H265::Profile
1467 @see H265::Level
1468 @see H265::Tier
1469 */
1470 static const char GOPLength[] = "ENCODER_H265_GOP_LENGTH";
1471 }
1472
1473 /** Parameters specific to VP8 video encoder */
1474 namespace VP8
1475 {
1476 /**
1477 <b>%VP8 %Video:</b> Max keyframe distance.
1478
1479 This parameter is an integer. <br />
1480 <p>
1481 This value, expressed as a number of frames, forces the encoder to code
1482 a keyframe if one has not been coded in the last KeyFrameMaxDistance frames.
1483 </p><p>
1484 A value of 0 implies all frames will be keyframes. Set keyframe KeyFrameMinDistance
1485 equal to KeyFrameMaxDistance for a fixed interval.
1486 </p>
1487 <p>The default value is 100.</p>
1488 */
1489 static const char KeyFrameMaxDistance[] = "ENCODER_VP8_KEY_FRAME_MAX_DISTANCE";
1490
1491 /**
1492 <b>%VP8 %Video:</b> Min keyframe distance.
1493
1494 This parameter is an integer. <br />
1495 <p>
1496 This value, expressed as a number of frames, prevents the encoder from
1497 placing a keyframe nearer than KeyFrameMinDistance to the previous keyframe.
1498 </p><p>
1499 At least KeyFrameMinDistance frames non-keyframes will be coded before the next
1500 keyframe. Set KeyFrameMinDistance equal to KeyFrameMaxDistance for a fixed interval.
1501 </p>
1502 <p>The default value is 0.</p>
1503 */
1504 static const char KeyFrameMinDistance[] = "ENCODER_VP8_KEY_FRAME_MIN_DISTANCE";
1505 }
1506
1507 /** Parameters specific to VP9 video encoder */
1508 namespace VP9
1509 {
1510 /**
1511 <b>%VP9 %Video:</b> Max keyframe distance.
1512
1513 This parameter is an integer. <br />
1514 <p>
1515 This value, expressed as a number of frames, forces the encoder to code
1516 a keyframe if one has not been coded in the last KeyFrameMaxDistance frames.
1517 </p><p>
1518 A value of 0 implies all frames will be keyframes. Set keyframe KeyFrameMinDistance
1519 equal to KeyFrameMaxDistance for a fixed interval.
1520 </p>
1521 <p>The default value is 100.</p>
1522 */
1523 static const char KeyFrameMaxDistance[] = "ENCODER_VP9_KEY_FRAME_MAX_DISTANCE";
1524
1525 /**
1526 <b>%VP9 %Video:</b> Min keyframe distance.
1527
1528 This parameter is an integer. <br />
1529 <p>
1530 This value, expressed as a number of frames, prevents the encoder from
1531 placing a keyframe nearer than KeyFrameMinDistance to the previous keyframe.
1532 </p><p>
1533 At least KeyFrameMinDistance frames non-keyframes will be coded before the next
1534 keyframe. Set KeyFrameMinDistance equal to KeyFrameMaxDistance for a fixed interval.
1535 </p>
1536 <p>The default value is 0.</p>
1537 */
1538 static const char KeyFrameMinDistance[] = "ENCODER_VP9_KEY_FRAME_MIN_DISTANCE";
1539 }
1540 }
1541 }
1542
1543 /** Parameters specific to muxers */
1544 namespace Muxer
1545 {
1546 /** Parameters specific to MP4 muxers */
1547 namespace MP4
1548 {
1549 /**
1550 Run a second pass moving the moov atom before the mdat atom.
1551
1552 Unless specified otherwise, the moov atom is normally stored at the end of the file.
1553 If the planned delivery method is progressive download or streaming, the moov atom will
1554 have to be moved to the beginning of the file.
1555
1556 This parameter is a boolean value expressed as an integer (1|0).<br/>
1557 <p>
1558 The default is False (0).
1559
1560 <ul>
1561 <li>If True (1) a second pass will reorder the atoms in the file. The atoms will be in the order: moov, mdat.</li>
1562 <li>If False (0) the atoms in the file will be in the order: mdat, moov.</li>
1563 </ul>
1564 </p>
1565 */
1566 static const char FastStart[] = "MUXER_MP4_FAST_START";
1567
1568 /**
1569 Specifies whether a temp file should be used during the second pass.
1570
1571 This parameter is a boolean value expressed as an integer (1|0).<br/>
1572 <p>
1573 The default is False (0).
1574
1575 <ul>
1576 <li>If True (1) a temp file will be used to reorder the atoms in the mp4 file.</li>
1577 <li>If False (0) the atoms reordering will be done in-place.</li>
1578 </ul>
1579 </p>
1580 */
1581 static const char FastStartUseTempFile[] = "MUXER_MP4_FAST_START_USE_TEMP_FILE";
1582
1583 /**
1584 Specifies the temp file directory. If this parameter is not set then the system temp path will be used.
1585
1586 This parameter is a StringParameter (const char_t*).<br/>
1587 */
1588 static const char FastStartTempFileDirectory[] = "MUXER_MP4_FAST_START_TEMP_FILE_DIRECTORY";
1589 }
1590 }
1591
1592
1593 /** Parameters specific to demuxers. */
1594 namespace Demuxer
1595 {
1596 /** Parameters specific to the Mpeg demuxer. */
1597 namespace Mpeg
1598 {
1599 /**
1600 Specifies the Program Number for which to deliver MPEG TS packets. Only packets that belong to the Program with the specified Program Number will be delivered.<br/>
1601 The Program Number is the field that identifies the program in the Program Association Table (PAT) of a MPEG-2 TS stream.<br/>
1602 This parameter is an integer.
1603 */
1604 static const char ProgramNumber[] = "DEMUXER_MPEG_PROGRAM_NUMBER";
1605
1606 /**
1607 Specifies the Packet ID (PID) of the MPEG TS packets to be delivered. Only packets with the specified PID will be delivered.<br/>
1608 The Packet ID is used to identify Program Specific Info packets, such as PAT, CAT, PMT packets, or elementary stream packets in MPEG-2 TS stream.<br/>
1609 This parameter is an integer.
1610 */
1611 static const char PacketId[] = "DEMUXER_MPEG_PACKET_ID";
1612 }
1613 }
1614 };
1615
1616
1617 /**
1618 The ParamType represents the type of the data stored in a Parameter.
1619
1620 Depending on this constant a Parameter interface can be cast to child interfaces such as
1621 IntParameter, StringParameter, etc.
1622
1623 @see Parameter::type
1624 */
1625 namespace ParamType
1626 {
1627 /**
1628 ParamType::Enum
1629 */
1630 enum Enum
1631 {
1632 /**
1633 The parameter represents a 64-bit floating point number (double precision).
1634 */
1635 Float = 1,
1636
1637 /**
1638 The parameter represents a MediaBuffer object and can be cast to MediaBufferParameter.
1639 */
1640 MediaBuffer = 3,
1641
1642 /**
1643 The parameter represents a VideoStreamInfo object and can be cast to VideoStreamInfo.
1644 */
1645 VideoStreamInfo = 4,
1646
1647 /**
1648 The parameter represents a generic value which is stored in a char_t string.
1649 The parameter name constant documents how this value should be interpreted.
1650
1651 The parameter can be cast to StringParameter.
1652 */
1653 String = 5,
1654
1655 /**
1656 The parameter represents a 64-bit Integer.
1657 */
1658 Int = 6,
1659 };
1660 }
1661
1662 /**
1663 Parameter is the base class for named parameters passed to various classes in AVBlocks.
1664
1665 The parameter name is an ANSI string.
1666 The parameter content can be a simple value or a complex structure. This is determined by the parameter type.
1667 */
1668 class Parameter : public primo::Reference
1669 {
1670 public:
1671 /**
1672 Returns the parameter name.
1673
1674 @return A pointer to zero terminated ANSI string.
1675 The returned pointer cannot be <b>NULL</b> but the string can be empty.
1676 */
1677 virtual const char* name() const = 0;
1678
1679 /**
1680 Sets the parameter name.
1681
1682 @param name [in] A pointer to zero terminated ANSI string.
1683 If <b>NULL</b> it is interpreted as if an empty string is provided.
1684 The string pointed by <i>name</i> is copied internally and is not required to be valid after the method returns.
1685 */
1686 virtual bool_t setName(const char* name) = 0;
1687
1688 /**
1689 Returns the parameter type.
1690
1691 @return A ParamType constant.
1692 */
1693 virtual ParamType::Enum type() const = 0;
1694
1695 /**
1696 Creates a deep copy of the underlying StringParameter, IntParameter, FloatParameter, or MediaBufferParameter object.
1697
1698 @return A new Parameter object.
1699 The caller is responsible for releasing the new object when it is not needed anymore.
1700
1701 @return <b>NULL</b> when there is not enough memory to clone the object.
1702
1703 @remarks
1704 this method uses primo::codecs::MediaBuffer::clone, to clone the MediaBufferParameter::buffer object.
1705
1706 @see \ref object_management "Object Management"
1707 */
1708 virtual Parameter* clone() const = 0;
1709
1710 protected:
1711 /**
1712 This object can be destroyed only by the AVBlocks library.
1713 */
1714 ~Parameter() {}
1715 };
1716
1717 /**
1718 The parameter represents a MediaBuffer object.
1719 */
1720 class MediaBufferParameter : public Parameter
1721 {
1722 public:
1723 /**
1724 Returns the buffer instance.
1725
1726 @return A pointer to MediaBuffer object.
1727 The returned pointer can be <b>NULL</b>.
1728 */
1729 virtual primo::codecs::MediaBuffer* buffer() const = 0;
1730
1731 /**
1732 Sets the buffer.
1733
1734 @param buffer [in] A pointer to MediaBuffer that will be stored in the parameter.
1735 It is allowed to set a <b>NULL</b> object.
1736 Internally the MediaBuffer specified by <i>buffer</i> is retained (if not <b>NULL</b>), so it is safe to release it
1737 after this method returns. The previous MediaBuffer is released (if not <b>NULL</b>).
1738 */
1739 virtual bool_t setBuffer(primo::codecs::MediaBuffer * buffer) = 0;
1740 };
1741
1742
1743 /**
1744 The parameter represents an untyped value which is stored in a char_t string.
1745 The parameter name constant documents how this value should be interpreted.
1746 */
1747 class StringParameter : public Parameter
1748 {
1749 public:
1750
1751 /**
1752 Returns the parameter value.
1753
1754 @return A pointer to zero terminated string.
1755 The returned pointer cannot be <b>NULL</b> but the string can be empty.
1756 */
1757 virtual const char_t* value() const = 0;
1758
1759 /**
1760 Sets the parameter value.
1761
1762 @param value [in] A pointer to zero terminated string.
1763 If <b>NULL</b> it is interpreted as if an empty string is provided.
1764 The string pointed by <i>value</i> is copied internally and is not required to be valid after the method returns.
1765 */
1766 virtual bool_t setValue(const char_t* value) = 0;
1767 };
1768
1769 /**
1770 The parameter represents a VideoStreamInfo object.
1771 */
1772 class VideoStreamInfoParameter : public Parameter
1773 {
1774 public:
1775 /**
1776 Returns the VideoStreamInfo instance.
1777
1778 @return A pointer to VideoStreamInfo object.
1779 The returned pointer can be NULL.
1780 */
1781 virtual primo::codecs::VideoStreamInfo* streamInfo() const = 0;
1782
1783 /**
1784 Sets the video stream info.
1785
1786 @param buffer [in] A pointer to VideoStreamInfo that will be stored in the parameter.
1787 It is allowed to set a NULL object.
1788 Internally the VideoStreamInfo specified by <i>streamInfo</i> is retained (if not NULL), so it is safe to release it
1789 after this method returns. The previous VideoStreamInfo is released (if not NULL).
1790 */
1791 virtual bool_t setStreamInfo(primo::codecs::VideoStreamInfo * streamInfo) = 0;
1792 };
1793
1794 /**
1795 The parameter represents a 64-bit integer.
1796 */
1797 class IntParameter : public Parameter
1798 {
1799 public:
1800
1801 /**
1802 Returns the parameter value.
1803
1804 @return A 64-bit integer.
1805 */
1806 virtual int64_t value() const = 0;
1807
1808 /**
1809 Sets the parameter value.
1810
1811 @param value [in] A 64-bit integer.
1812 */
1813 virtual bool_t setValue(int64_t value) = 0;
1814 };
1815
1816
1817 /**
1818 The parameter represents a 64-bit floating point number (double precision).
1819 */
1820 class FloatParameter : public Parameter
1821 {
1822 public:
1823
1824 /**
1825 Returns the parameter value.
1826
1827 @return A 64-bit floating point number.
1828 */
1829 virtual double value() const = 0;
1830
1831 /**
1832 Sets the parameter value.
1833
1834 @param value [in] A 64-bit floating point number.
1835 */
1836 virtual bool_t setValue(double value) = 0;
1837 };
1838
1839
1840 /**
1841 A collection of Parameter objects. It is used for passing parameters to different AVBlocks components.
1842
1843 @see Parameter
1844 @see Library::createParameterList
1845 */
1846 class ParameterList : public primo::Reference
1847 {
1848 public:
1849 /**
1850 Adds a parameter to the collection.
1851
1852 @param item [in] A pointer to a Parameter object that should be added to the collection.
1853 It is allowed to add a <b>NULL</b> item to the collection.
1854 Internally if the Parameter object is not <b>NULL</b> it is retained by ParameterList,
1855 so it is safe to release it after this method returns.
1856
1857 @return TRUE if the specified item is added to the collection, otherwise FALSE.
1858
1859 @see \ref Library "Parameter creating methods in Library"
1860 @see \ref object_management "Object Management Topic"
1861 */
1862 virtual bool_t add(Parameter* item) = 0;
1863
1864 /**
1865 Removes a parameter from the collection.
1866
1867 @param itemIndex [in] The index of the parameter that should be removed from the collection.
1868 Indexing starts from 0.
1869
1870 @return TRUE if the specified item is removed from the collection, otherwise FALSE.
1871
1872 When a Parameter object is removed from the collection it is also released.
1873
1874 @see \ref object_management "Object Management"
1875 */
1876 virtual bool_t remove(int32_t itemIndex) = 0;
1877
1878 /**
1879 Removes all parameters from the collection.
1880
1881 When removed from the collection each Parameter object is released.
1882
1883 @return TRUE if the collection is cleared, otherwise FALSE.
1884
1885 @see \ref object_management "Object Management"
1886 */
1887 virtual bool_t clear() = 0;
1888
1889 /**
1890 Returns the number of parameters in the collection.
1891
1892 @return number of items in the collection.
1893 */
1894 virtual int32_t count() const = 0;
1895
1896 /**
1897 Returns a parameter specified by index.
1898
1899 @param index [in] The index of the parameter to be returned. Indexing starts from 0.
1900
1901 @return A pointer to the Parameter object specified by index or <b>NULL</b> if the index is invalid.
1902
1903 The caller is not required to release the returned object.
1904 @see \ref object_management "Object Management"
1905 */
1906 virtual Parameter* at(int32_t index) const = 0;
1907
1908 /**
1909 Returns a parameter specified by its name.
1910
1911 @param name [in] A pointer to a parameter name for which a Parameter object shall be returned.
1912 The name is case sensitive and only the first 64 characters are compared.
1913
1914 @return A pointer to a Parameter object which has the name specified by the <i>name</i> parameter.
1915 <b>NULL</b> if there's no parameter with the specified name in the collection.
1916
1917
1918 If two or more parameters in the collection have the same name the one with the lowest index is returned.
1919 */
1920 virtual Parameter* itemByName(const char* name) const = 0;
1921
1922 /**
1923 Sets a new parameter at the specified index.
1924
1925 @param itemIndex [in] The index in the collection where the new item shall be set.
1926 This must be a valid index in the collection. Indexing starts from 0.
1927
1928 @param item [in] A pointer to the Parameter object that shall be set.
1929 It is allowed to set a <b>NULL</b> value to the collection.
1930 Internally the new item is retained (if not <b>NULL</b>), so it is safe to release it
1931 after this method returns. The old item is released (if not <b>NULL</b>).
1932
1933 @return TRUE The item is set, FALSE otherwise.
1934 @see \ref object_management "Object Management"
1935 */
1936 virtual bool_t setAt(int32_t itemIndex, Parameter* item) = 0;
1937
1938 /**
1939 Inserts a parameter at the specified index.
1940
1941 @param itemIndex [in] The index in the collection where the new item shall be inserted.
1942 This must be a valid index in the collection. Indexing starts from 0.
1943 After the new item is inserted in the collection its index is the value of the <i>itemIndex</i> param.
1944
1945 @param item [in] A pointer to the Parameter object that shall be inserted.
1946 It is allowed to insert a <b>NULL</b> value in the collection.
1947 Internally the new item is retained (if not <b>NULL</b>), so it is safe to release it
1948 after this method returns.
1949
1950 @return TRUE The item is set, FALSE otherwise.
1951 @see \ref object_management "Object Management"
1952 */
1953 virtual bool_t insert(int32_t itemIndex, Parameter* item) = 0;
1954
1955 /**
1956 Creates an IntParameter and adds it to the collection.
1957
1958 @param name [in] The parameter name. A pointer to zero terminated ANSI string.
1959 If <b>NULL</b> it is interpreted as if an empty string is provided.
1960 The string pointed by <i>name</i> is copied internally and is not required to be valid after the method returns.
1961
1962 @param value [in] The parameter value.
1963
1964 @return TRUE if the parameter is added to the collection, otherwise FALSE.
1965
1966 @see Library::createIntParameter
1967 */
1968 virtual bool_t addInt(const char* name, int64_t value) = 0;
1969
1970 /**
1971 Creates a FloatParameter and adds it to the collection.
1972
1973 @param name [in] The parameter name. A pointer to zero terminated ANSI string.
1974 If <b>NULL</b> it is interpreted as if an empty string is provided.
1975 The string pointed by <i>name</i> is copied internally and is not required to be valid after the method returns.
1976
1977 @param value [in] The parameter value.
1978
1979 @return TRUE if the parameter is added to the collection, otherwise FALSE.
1980
1981 @see Library::createFloatParameter
1982 */
1983 virtual bool_t addFloat(const char* name, double value) = 0;
1984
1985 /**
1986 Creates a StringParameter and adds it to the collection.
1987
1988 @param name [in] The parameter name. A pointer to zero terminated ANSI string.
1989 If <b>NULL</b> it is interpreted as if an empty string is provided.
1990 The string pointed by <i>name</i> is copied internally and is not required to be valid after the method returns.
1991
1992 @param value [in] The parameter value.
1993
1994 @return TRUE if the parameter is added to the collection, otherwise FALSE.
1995
1996 @see Library::createStringParameter
1997 */
1998 virtual bool_t addString(const char* name, const char_t* value) = 0;
1999
2000 /**
2001 Creates a MediaBufferParameter and adds it to the collection.
2002
2003 @param name [in] The parameter name. A pointer to zero terminated ANSI string.
2004 If <b>NULL</b> it is interpreted as if an empty string is provided.
2005 The string pointed by <i>name</i> is copied internally and is not required to be valid after the method returns.
2006
2007 @param value [in] A pointer to MediaBuffer that will be stored in the parameter.
2008
2009 @return TRUE if the parameter is added to the collection, otherwise FALSE.
2010
2011 @see Library::createMediaBufferParameter
2012 */
2013 virtual bool_t addMediaBuffer(const char* name, primo::codecs::MediaBuffer* value) = 0;
2014
2015 /**
2016 Creates a VideoStreamInfoParameter and adds it to the collection.
2017
2018 @param name [in] The parameter name. A pointer to zero terminated ANSI string.
2019 If <b>NULL</b> it is interpreted as if an empty string is provided.
2020 The string pointed by <i>name</i> is copied internally and is not required to be valid after the method returns.
2021
2022 @param value [in] A pointer to VideoStreamInfo that will be stored in the parameter.
2023
2024 @return TRUE if the parameter is added to the collection, otherwise FALSE.
2025
2026 @see Library::createVideoStreamInfoParameter
2027 */
2028 virtual bool_t addVideoStreamInfo(const char* name, codecs::VideoStreamInfo* value) = 0;
2029
2030 /**
2031 Creates a deep copy of this object.
2032
2033 @return A new ParameterList object.
2034 The caller is responsible for releasing the new object when it is not needed anymore.
2035
2036 @return <b>NULL</b> when there is not enough memory to clone the object.
2037
2038 @remarks
2039 This method clones every parameter in the collection by calling Parameter::clone.
2040
2041 @remarks
2042 When cloned an immutable object becomes mutable.
2043
2044 @see \ref primo::avblocks::Parameter::clone() "Parameter::clone"
2045 @see \ref object_management "Object Management"
2046 */
2047 virtual ParameterList* clone() const = 0;
2048
2049 /**
2050 Returns whether the object is immutable.
2051 An immmutable object cannot be modified and all modifying methods fail to produce a result.
2052
2053 @return TRUE if the object is immutable, FALSE otherwise.
2054
2055 @remarks
2056 An immutable object <b>can</b> be modified by the AVBlocks library.
2057
2058 @remarks
2059 Object immutability spreads to all nested objects.
2060 Therefore it is not possible to add/set an immutable object to a mutable object.
2061
2062 @remarks
2063 When cloned an immutable object becomes mutable.
2064 */
2065 virtual bool_t immutable() const = 0;
2066
2067 protected:
2068 /**
2069 This object can be destroyed only by the AVBlocks library.
2070 */
2071 ~ParameterList() {}
2072 };
2073
2074
2075 /**
2076 MediaPin represents an elementary media stream.
2077
2078 MediaPin object can exist for audio, video or any other type of stream.
2079 However, AVBlocks can process only the audio and video streams.
2080 MediaPin objects are used as inputs and outputs of Transcoder.
2081
2082 @see Library::createMediaPin
2083 @see \ref object_management "Object Management"
2084 */
2085 class MediaPin: public primo::Reference
2086 {
2087 public:
2088 /**
2089 Returns the Pin connection ID. This should not be confused with the stream ID that is defined for certain stream types.
2090
2091 @return Connection ID which is either an unique value or a special value from the PinConnection::Enum.
2092
2093 A Transcoder object matches and connects input and output pins by their connection ID.
2094 The Transcoder processes the connected pins and ignores the unconnected pins.
2095
2096 Pins are connected to one another according to the following rules:
2097 <ul>
2098 <li>Input pins with connection ID greater than PinConnection::Auto are connected to output pins with the same connection ID.
2099 In this case the Transcoder requires that a single unique connection ID is used by exactly one input and one output pin.
2100 </li>
2101 <li>Input and output pins with connection ID equal to PinConnection::Auto are connected automatically based on their media type (audio or video)</li>
2102 <li>Input and output pins with connection ID equal to PinConnection::Disabled are ignored.</li>
2103 </ul>
2104
2105 @see PinConnection::Enum
2106 @see Transcoder
2107 */
2108 virtual int32_t connection() const = 0;
2109
2110 /**
2111 Sets the Pin connection ID. This should not be confused with the stream ID that is defined for certain stream types.
2112
2113 @param connectionID [in] Pin connection ID should be either an unique value or a special value from the PinConnection::Enum.
2114
2115 A Transcoder object matches and connects input and output pins by their connection ID.
2116 The Transcoder processes the connected pins and ignores the unconnected pins.
2117
2118 Pins are connected to one another according to the following rules:
2119 <ul>
2120 <li>Input pins with connection ID greater than PinConnection::Auto are connected to output pins with the same connection ID.
2121 In this case the Transcoder requires that a single unique connection ID is used by exactly one input and one output pin.
2122 </li>
2123 <li>Input and output pins with connection ID equal to PinConnection::Auto are connected automatically based on their media type (audio or video)</li>
2124 <li>Input and output pins with connection ID equal to PinConnection::Disabled are ignored.</li>
2125 </ul>
2126
2127 @return TRUE if the connection ID is successfully set, otherwise FALSE.
2128
2129 @see PinConnection::Enum
2130 @see Transcoder
2131 */
2132 virtual bool_t setConnection(int32_t connectionID) = 0;
2133
2134 /**
2135 Returns information about the elementary stream represented by this pin.
2136
2137 @return A \link primo::codecs::StreamInfo StreamInfo\endlink object.
2138
2139 The Transcoder ignores pins that are not audio or video elementary streams.
2140
2141 If the media type of the returned \link primo::codecs::StreamInfo StreamInfo\endlink object
2142 is \link primo::codecs::MediaType::Audio MediaType::Audio\endlink,
2143 it is safe to cast it to \link primo::codecs::AudioStreamInfo AudioStreamInfo\endlink.
2144
2145 If the media type of the returned \link primo::codecs::StreamInfo StreamInfo\endlink object
2146 is \link primo::codecs::MediaType::Video MediaType::Video\endlink,
2147 it is safe to cast it to \link primo::codecs::VideoStreamInfo VideoStreamInfo\endlink.
2148
2149 The caller is not required to release the returned object.
2150
2151 @see \ref object_management "Object Management"
2152 */
2153 virtual primo::codecs::StreamInfo* streamInfo() const = 0;
2154
2155 /**
2156 Sets the stream information for the pin.
2157
2158 @param streamInfo [in] A pointer to a StreamInfo object. If <b>NULL</b> the stream info is cleared.
2159 Internally the StreamInfo object is retained by the MediaPin, so it is safe to release it after this method returns.
2160
2161 @see MediaPin::streamInfo
2162 @see \ref object_management "Object Management"
2163 */
2164 virtual bool_t setStreamInfo(primo::codecs::StreamInfo* streamInfo) = 0;
2165
2166 /**
2167 Returns a collection of pin parameters.
2168 These parameters affect the processing of the elementary stream represented by this pin.
2169
2170 @return A ParameterList object. Can be <b>NULL</b> if the collection is not set. The default value is an empty list.
2171
2172 The caller is not required to release the returned object.
2173 @see \ref object_management "Object Management"
2174 */
2175 virtual ParameterList* params() const = 0;
2176
2177 /**
2178 Sets the filter parameters for the pin.
2179
2180 @param params [in] A pointer to a ParameterList object. If <b>NULL</b> the stored collection is reset to <b>NULL</b>.
2181 Internally the ParameterList object is retained by the MediaPin, so it is safe to release it after this method returns.
2182
2183 @return TRUE if the parameter list is successfully set, otherwise FALSE.
2184
2185 @see \ref object_management "Object Management"
2186 */
2187 virtual bool_t setParams(ParameterList* params) = 0;
2188
2189 /**
2190 Creates a deep copy of this object.
2191
2192 @return A new MediaPin object.
2193 The caller is responsible for releasing the new object when it is not needed anymore.
2194
2195 @return
2196 <b>NULL</b> if there is not enough memory to clone the object.
2197
2198 @remarks
2199 This method uses the \link primo::codecs::StreamInfo::clone StreamInfo::clone \linkend and \link primo::avblocks::ParameterList::clone ParameterList::clone \linkend methods
2200 to clone the streamInfo and the params members.
2201
2202 @remarks
2203 When cloned an immutable object becomes mutable.
2204
2205 @see \ref object_management "Object Management"
2206 */
2207 virtual MediaPin* clone() const = 0;
2208
2209 /**
2210 Returns whether the object is immutable.
2211 An immmutable object cannot be modified and all modifying methods fail to produce a result.
2212
2213 @return TRUE if the object is immutable, FALSE otherwise.
2214
2215 @remarks
2216 An immutable object <b>can</b> be modified by the AVBlocks library.
2217
2218 @remarks
2219 Object immutability spreads to all nested objects.
2220 Therefore it is not possible to add/set an immutable object to a mutable object.
2221
2222 @remarks
2223 When cloned an immutable object becomes mutable.
2224 */
2225 virtual bool_t immutable() const = 0;
2226
2227 protected:
2228 /**
2229 This object can be destroyed only by the AVBlocks library.
2230 */
2231 ~MediaPin() {}
2232 };
2233
2234 /**
2235 MediaPinList represents the elementary pins within a MediaSocket object.
2236
2237 This is a modifiable and indexable collection that exists only in the context of a MediaSocket
2238 and cannot be created separately from it, nor detached.
2239 */
2240 class MediaPinList
2241 {
2242 public:
2243
2244 /**
2245 Adds a pin (elementary stream) to the collection.
2246
2247 @param item [in] A pointer to a MediaPin object that should be added to the collection.
2248 It is allowed to add a <b>NULL</b> item to the collection.
2249 Internally if the MediaPin object is not <b>NULL</b> it is retained by MediaPinList,
2250 so it is safe to release it after this method returns.
2251
2252 @return TRUE if the specified item is add to the collection, otherwise FALSE.
2253
2254 @see Library::createMediaPin
2255 @see \ref object_management "Object Management"
2256 */
2257 virtual bool_t add(MediaPin* item) = 0;
2258
2259 /**
2260 Removes a pin (elementary stream) from the collection.
2261
2262 @param itemIndex [in] The index of the pin that should be removed from the collection.
2263 Indexing starts from 0.
2264
2265 @return TRUE if the specified item is removed from the collection, otherwise FALSE.
2266
2267 When an MediaPin object is removed from the collection it is also released.
2268
2269 @see \ref object_management "Object Management"
2270 */
2271 virtual bool_t remove(int32_t itemIndex) = 0;
2272
2273 /**
2274 Removes all pins from the collection.
2275
2276 When removed from the collection each MediaPin object is released.
2277
2278 @return TRUE if the collection is cleared, otherwise FALSE.
2279
2280 @see \ref object_management "Object Management"
2281 */
2282 virtual bool_t clear() = 0;
2283
2284 /**
2285 Returns the number of pins in the collection.
2286
2287 @return number of items in the collection.
2288 */
2289 virtual int32_t count() const = 0;
2290
2291 /**
2292 Returns a pin (elementary stream) specified by index.
2293
2294 @param itemIndex The index of the elementary pin to be returned. Indexing starts from 0.
2295
2296 @return A pointer to the MediaPin object specified by <i>itemIndex</i>.
2297
2298 The caller is not required to release the returned object.
2299
2300 @see \ref object_management "Object Management"
2301 */
2302 virtual MediaPin* at(int32_t itemIndex) const = 0;
2303
2304 /**
2305 Sets a new pin at the specified index.
2306
2307 @param itemIndex [in] The index in the collection where the new item shall be set.
2308 This must be a valid index in the collection. Indexing starts from 0.
2309
2310 @param item [in] A pointer to the MediaPin object that shall be set.
2311 It is allowed to set a <b>NULL</b> value to the collection.
2312 Internally the new item is retained (if not <b>NULL</b>), so it is safe to release it
2313 after this method returns. The old item is released (if not <b>NULL</b>).
2314
2315 @return TRUE The item is set, FALSE otherwise.
2316
2317 @see \ref object_management "Object Management"
2318 */
2319 virtual bool_t setAt(int32_t itemIndex, MediaPin* item) = 0;
2320
2321 /**
2322 Inserts a pin at the specified index.
2323
2324 @param itemIndex [in] The index in the collection where the new item shall be inserted.
2325 This must be a valid index in the collection. Indexing starts from 0.
2326 After the new item is inserted in the collection its index is the value of the <i>itemIndex</i> param.
2327
2328 @param item [in] A pointer to the MediaPin object that shall be inserted.
2329 It is allowed to insert a <b>NULL</b> value in the collection.
2330 Internally the new item is retained (if not <b>NULL</b>), so it is safe to release it
2331 after this method returns.
2332
2333 @return TRUE The item is inserted, FALSE otherwise.
2334
2335 @see \ref object_management "Object Management"
2336 */
2337 virtual bool_t insert(int32_t itemIndex, MediaPin* item) = 0;
2338
2339 /**
2340 Returns whether the object is immutable.
2341 An immmutable object cannot be modified and all modifying methods fail to produce a result.
2342
2343 @return TRUE if the object is immutable, FALSE otherwise.
2344
2345 @remarks
2346 An immutable object <b>can</b> be modified by the AVBlocks library.
2347
2348 @remarks
2349 Object immutability spreads to all nested objects.
2350 Therefore it is not possible to add/set an immutable object to a mutable object.
2351 */
2352 virtual bool_t immutable() const = 0;
2353
2354 protected:
2355 /**
2356 This object can be destroyed only by the AVBlocks library.
2357 */
2358 ~MediaPinList() {}
2359 };
2360
2361 /**
2362 Defines output presets supported by AVBlocks.
2363
2364 Each AVBlocks preset represents a collection of audio and video properties and parameters.
2365 It can be used as an easy way to specify the required output of the transcoder.
2366
2367 @see Library::createMediaSocket (const char* preset)
2368 */
2369 namespace Preset
2370 {
2371 /**
2372 Describes output audio presets structured by codec and device type.
2373 */
2374 namespace Audio
2375 {
2376 /**
2377 Generic audio presets (unrelated to specific devices)
2378 */
2379 namespace Generic
2380 {
2381 /**
2382 AAC audio stream in ADTS format, stereo, 128 kbps
2383 */
2384 static const char AAC[] = "aac";
2385 /*!<
2386 ### Socket
2387 | Property | Value |
2388 | ---------------------------------------------------- | :-----------: |
2389 | [StreamType](@ref primo::codecs::StreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
2390
2391 ### %Audio Pin
2392 | Property | Value |
2393 | ---------------------------------------------------- | :-----------: |
2394 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
2395 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_ADTS](@ref primo::codecs::StreamSubType::AAC_ADTS) |
2396 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
2397 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2398 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2399 */
2400
2401 /** M4A presets (AAC audio in MP4 container) */
2402 namespace M4A
2403 {
2404 /**
2405 AAC audio stream in MP4 container, 44100 Hz, stereo, 96 kbps, CBR
2406 */
2407 static const char LowQuality[] = "mp4.aac.low.quality";
2408 /*!<
2409 ### Socket
2410 | Property | Value |
2411 | ---------------------------------------------------- | :-----------: |
2412 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
2413
2414 ### %Audio Pin
2415 | Property | Value |
2416 | ---------------------------------------------------- | :-----------: |
2417 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
2418 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
2419 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
2420 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 96000 bps |
2421 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2422 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2423 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2424 */
2425
2426 /**
2427 AAC audio stream in MP4 container, 44100 Hz, stereo, 128 kbps, CBR
2428 */
2429 static const char GoodQuality[] = "mp4.aac.good.quality";
2430 /*!<
2431 ### Socket
2432 | Property | Value |
2433 | ---------------------------------------------------- | :-----------: |
2434 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
2435
2436 ### %Audio Pin
2437 | Property | Value |
2438 | ---------------------------------------------------- | :-----------: |
2439 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
2440 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
2441 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
2442 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
2443 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2444 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2445 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2446 */
2447
2448 /**
2449 AAC audio stream in MP4 container, 44100 Hz, stereo, 160 kbps, CBR
2450 */
2451 static const char HighQuality[] = "mp4.aac.high.quality";
2452 /*!<
2453 ### Socket
2454 | Property | Value |
2455 | ---------------------------------------------------- | :-----------: |
2456 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
2457
2458 ### %Audio Pin
2459 | Property | Value |
2460 | ---------------------------------------------------- | :-----------: |
2461 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
2462 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
2463 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
2464 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 160000 bps |
2465 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2466 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2467 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2468 */
2469
2470 // TODO: Possible duplicate of Generic::M4A::GoodQuality?
2471 /**
2472 AAC audio stream in MP4 container, 44100 Hz, stereo, 128 kbps, CBR<br/>
2473 Normal (standard) quality.
2474 */
2475 static const char CBR_128kbps[] = "mp4.aac.44100hz.128kbps";
2476 /*!<
2477 ### Socket
2478 | Property | Value |
2479 | ---------------------------------------------------- | :-----------: |
2480 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
2481
2482 ### %Audio Pin
2483 | Property | Value |
2484 | ---------------------------------------------------- | :-----------: |
2485 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
2486 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
2487 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
2488 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2489 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2490 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2491 */
2492
2493 /**
2494 AAC audio stream in MP4 format, 44100 Hz, stereo, 256 kbps, CBR<br />
2495 High quality.
2496 */
2497 static const char CBR_256kbps[] = "mp4.aac.44100hz.256kbps";
2498 /*!<
2499 ### Socket
2500 | Property | Value |
2501 | ---------------------------------------------------- | :-----------: |
2502 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
2503
2504 ### %Audio Pin
2505 | Property | Value |
2506 | ---------------------------------------------------- | :-----------: |
2507 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
2508 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
2509 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 256000 bps |
2510 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2511 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2512 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2513 */
2514 }
2515
2516 /** MP3 presets (MPEG-1 Layer 3) */
2517 namespace MP3
2518 {
2519 /**
2520 MPEG-1 Layer 3 audio, 44100Hz, stereo, 128 kbps, CBR<br />
2521 */
2522 static const char CBR_128kbps[] = "mp3.44100hz.128kbps";
2523 /*!<
2524 ### Socket
2525 | Property | Value |
2526 | ---------------------------------------------------- | :-----------: |
2527 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2528
2529 ### %Audio Pin
2530 | Property | Value |
2531 | ---------------------------------------------------- | :-----------: |
2532 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2533 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer3](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer3) |
2534 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
2535 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2536 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2537 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2538 */
2539
2540 /**
2541 MPEG-1 Layer 3 audio, 44100Hz, stereo, 256 kbps, CBR <br />
2542 */
2543 static const char CBR_256kbps[] = "mp3.44100hz.256kbps";
2544 /*!<
2545 ### Socket
2546 | Property | Value |
2547 | ---------------------------------------------------- | :-----------: |
2548 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2549
2550 ### %Audio Pin
2551 | Property | Value |
2552 | ---------------------------------------------------- | :-----------: |
2553 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2554 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer3](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer3) |
2555 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 256000 bps |
2556 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2557 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2558 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2559 */
2560
2561 /**
2562 MPEG-1 Layer 3 audio, 44100 Hz, mono, 32 kbps, CBR
2563 */
2564 static const char AMRadio[] = "mp3.am.radio.32kbps";
2565 /*!<
2566 ### Socket
2567 | Property | Value |
2568 | ---------------------------------------------------- | :-----------: |
2569 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2570
2571 ### %Audio Pin
2572 | Property | Value |
2573 | ---------------------------------------------------- | :-----------: |
2574 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2575 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer3](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer3) |
2576 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 32000 bps |
2577 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutMono](@ref primo::codecs::AudioChannelFlags::LayoutMono) |
2578 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 1 |
2579 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2580 */
2581
2582 /**
2583 MPEG-1 Layer 3 audio, 44100 Hz, stereo, 96 kbps, CBR
2584 */
2585 static const char FMRadio[] = "mp3.fm.radio.32kbps";
2586 /*!<
2587 ### Socket
2588 | Property | Value |
2589 | ---------------------------------------------------- | :-----------: |
2590 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2591
2592 ### %Audio Pin
2593 | Property | Value |
2594 | ---------------------------------------------------- | :-----------: |
2595 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2596 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer3](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer3) |
2597 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 96000 bps |
2598 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2599 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2600 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2601 */
2602
2603 /**
2604 MPEG-1 Layer 3 audio, 44100 Hz, mono, 64 kbps, CBR
2605 */
2606 static const char Voice[] = "mp3.voice.64kbps";
2607 /*!<
2608 ### Socket
2609 | Property | Value |
2610 | ---------------------------------------------------- | :-----------: |
2611 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2612
2613 ### %Audio Pin
2614 | Property | Value |
2615 | ---------------------------------------------------- | :-----------: |
2616 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2617 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer3](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer3) |
2618 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 64000 bps |
2619 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutMono](@ref primo::codecs::AudioChannelFlags::LayoutMono) |
2620 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 1 |
2621 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2622 */
2623
2624 /**
2625 MPEG-1 Layer 3 audio, 44100 Hz, stereo, 112 kbps, CBR
2626 */
2627 static const char Radio[] = "mp3.radio.112kbps";
2628 /*!<
2629 ### Socket
2630 | Property | Value |
2631 | ---------------------------------------------------- | :-----------: |
2632 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2633
2634 ### %Audio Pin
2635 | Property | Value |
2636 | ---------------------------------------------------- | :-----------: |
2637 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2638 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer3](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer3) |
2639 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 112000 bps |
2640 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2641 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2642 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2643 */
2644
2645 /**
2646 <b>Audio</b>: MPEG-1 Layer 3 audio, 44100 Hz, stereo, 128 kbps, CBR <br/>
2647 <b>Container</b>: MP3 <br/>
2648 */
2649 static const char Tape[] = "mp3.tape.128kbps";
2650 /*!<
2651 ### Socket
2652 | Property | Value |
2653 | ---------------------------------------------------- | :-----------: |
2654 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2655
2656 ### %Audio Pin
2657 | Property | Value |
2658 | ---------------------------------------------------- | :-----------: |
2659 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2660 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer3](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer3) |
2661 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
2662 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2663 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2664 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2665 */
2666
2667 /**
2668 <b>Audio</b>: MPEG-1 Layer 3 audio, 44100 Hz, stereo, 160 kbps, CBR <br/>
2669 <b>Container</b>: MP3 <br/>
2670 */
2671 static const char HiFi[] = "mp3.hi.fi.160kbps";
2672 /*!<
2673 ### Socket
2674 | Property | Value |
2675 | ---------------------------------------------------- | :-----------: |
2676 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2677
2678 ### %Audio Pin
2679 | Property | Value |
2680 | ---------------------------------------------------- | :-----------: |
2681 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2682 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer3](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer3) |
2683 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [VBR](@ref primo::codecs::BitrateMode::VBR) |
2684 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 160000 bps |
2685 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2686 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2687 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2688 */
2689
2690 /**
2691 <b>Audio</b>: MPEG-1 Layer 3 audio, 44100 Hz, stereo, 192 kbps, CBR <br/>
2692 <b>Container</b>: MP3 <br/>
2693 */
2694 static const char CD[] = "mp3.audiocd.192kbps";
2695 /*!<
2696 ### Socket
2697 | Property | Value |
2698 | ---------------------------------------------------- | :-----------: |
2699 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2700
2701 ### %Audio Pin
2702 | Property | Value |
2703 | ---------------------------------------------------- | :-----------: |
2704 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2705 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer3](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer3) |
2706 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 192000 bps |
2707 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2708 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2709 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2710 */
2711
2712 /**
2713 <b>Audio</b>: MPEG-1 Layer 3 audio, 44100 Hz, stereo, 256 kbps, CBR <br/>
2714 <b>Container</b>: MP3 <br/>
2715 */
2716 static const char Studio[] = "mp3.studio.256kbps";
2717 /*!<
2718 ### Socket
2719 | Property | Value |
2720 | ---------------------------------------------------- | :-----------: |
2721 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2722
2723 ### %Audio Pin
2724 | Property | Value |
2725 | ---------------------------------------------------- | :-----------: |
2726 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
2727 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer3](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer3) |
2728 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 256000 bps |
2729 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2730 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2731 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2732 */
2733 }
2734
2735 /** Presets for Windows Media Audio */
2736 namespace WMA
2737 {
2738 /** Presets for the WMA standard codec */
2739 namespace Standard
2740 {
2741 /**
2742 <b>Audio</b>: Windows Media Standard, 44100 Hz, stereo, 64 kbps, CBR<br/>
2743 <b>Container</b>: [ASF](@ref primo::codecs::StreamType::ASF) <br/>
2744 */
2745 static const char CBR_64kbps[] = "wma.cbr.64kbps";
2746 /*!<
2747 ### Socket
2748 | Property | Value |
2749 | ---------------------------------------------------- | :-----------: |
2750 | [StreamType](@ref primo::codecs::StreamType) | [ASF](@ref primo::codecs::StreamType::ASF) |
2751
2752 ### %Audio Pin
2753 | Property | Value |
2754 | ---------------------------------------------------- | :-----------: |
2755 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [WMA](@ref primo::codecs::StreamType::WMA) |
2756 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 64000 bps |
2757 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
2758 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2759 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2760 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2761 */
2762
2763 /**
2764 <b>Audio</b>: Windows Media Standard, 44100 Hz, stereo, 96 kbps, CBR <br/>
2765 <b>Container</b>: [ASF](@ref primo::codecs::StreamType::ASF) <br/>
2766 */
2767 static const char CBR_96kbps[] = "wma.cbr.96kbps";
2768 /*!<
2769 ### Socket
2770 | Property | Value |
2771 | ---------------------------------------------------- | :-----------: |
2772 | [StreamType](@ref primo::codecs::StreamType) | [ASF](@ref primo::codecs::StreamType::ASF) |
2773
2774 ### %Audio Pin
2775 | Property | Value |
2776 | ---------------------------------------------------- | :-----------: |
2777 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [WMA](@ref primo::codecs::StreamType::WMA) |
2778 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 96000 bps |
2779 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
2780 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2781 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2782 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2783 */
2784
2785 /**
2786 <b>Audio</b>: Windows Media Standard, 44100 Hz, stereo, 128 kbps, CBR <br/>
2787 <b>Container</b>: [ASF](@ref primo::codecs::StreamType::ASF) <br/>
2788 */
2789 static const char CBR_128kbps[] = "wma.cbr.128kbps";
2790 /*!<
2791 ### Socket
2792 | Property | Value |
2793 | ---------------------------------------------------- | :-----------: |
2794 | [StreamType](@ref primo::codecs::StreamType) | [ASF](@ref primo::codecs::StreamType::ASF) |
2795
2796 ### %Audio Pin
2797 | Property | Value |
2798 | ---------------------------------------------------- | :-----------: |
2799 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [WMA](@ref primo::codecs::StreamType::WMA) |
2800 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
2801 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
2802 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2803 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2804 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2805 */
2806
2807 /**
2808 <b>Audio</b>: Windows Media Standard, 44100 Hz, stereo, 160 kbps, CBR <br/>
2809 <b>Container</b>: [ASF](@ref primo::codecs::StreamType::ASF) <br/>
2810 */
2811 static const char CBR_160kbps[] = "wma.cbr.160kbps";
2812 /*!<
2813 ### Socket
2814 | Property | Value |
2815 | ---------------------------------------------------- | :-----------: |
2816 | [StreamType](@ref primo::codecs::StreamType) | [ASF](@ref primo::codecs::StreamType::ASF) |
2817
2818 ### %Audio Pin
2819 | Property | Value |
2820 | ---------------------------------------------------- | :-----------: |
2821 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [WMA](@ref primo::codecs::StreamType::WMA) |
2822 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 160000 bps |
2823 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
2824 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2825 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2826 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2827 */
2828 }
2829
2830 /** Presets for the WMA Pro codec */
2831 namespace Professional
2832 {
2833 /**
2834 <b>Audio</b>: Windows Media Professional, 44100 Hz, stereo, Quality 75 (0-100), VBR <br/>
2835 <b>Container</b>: [ASF](@ref primo::codecs::StreamType::ASF) <br/>
2836
2837 Normal quality VBR with average bitrate close to 128 kbps.
2838 */
2839 static const char VBR_Q75[] = "wma.pro.q75";
2840 /*!<
2841 ### Socket
2842 | Property | Value |
2843 | ---------------------------------------------------- | :-----------: |
2844 | [StreamType](@ref primo::codecs::StreamType) | [ASF](@ref primo::codecs::StreamType::ASF) |
2845
2846 ### %Audio Pin
2847 | Property | Value |
2848 | ---------------------------------------------------- | :-----------: |
2849 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [WMA_Professional](@ref primo::codecs::StreamType::WMA_Professional) |
2850 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [VBR](@ref primo::codecs::BitrateMode::VBR) |
2851 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2852 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2853 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2854 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
2855
2856 ### %Audio Pin %Parameters
2857 | %Parameter | Value |
2858 | ---------------------------------------------------- | :-----------: |
2859 | [Quality](@ref primo::avblocks::Param::Encoder::Audio::WMA) | 75 |
2860 */
2861
2862 /**
2863 <b>Audio</b>: Windows Media Professional, 44100 Hz, stereo, Quality 90 (0-100), VBR <br/>
2864 <b>Container</b>: [ASF](@ref primo::codecs::StreamType::ASF) <br/>
2865
2866 High quality VBR with average bitrate close to 192 kbps.
2867 */
2868 static const char VBR_Q90[] = "wma.pro.q90";
2869 /*!<
2870 ### Socket
2871 | Property | Value |
2872 | ---------------------------------------------------- | :-----------: |
2873 | [StreamType](@ref primo::codecs::StreamType) | [ASF](@ref primo::codecs::StreamType::ASF) |
2874
2875 ### %Audio Pin
2876 | Property | Value |
2877 | ---------------------------------------------------- | :-----------: |
2878 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [WMA_Professional](@ref primo::codecs::StreamType::WMA_Professional) |
2879 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [VBR](@ref primo::codecs::BitrateMode::VBR) |
2880 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2881 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2882 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2883 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
2884
2885 ### %Audio Pin %Parameters
2886 | %Parameter | Value |
2887 | ---------------------------------------------------- | :-----------: |
2888 | [Quality](@ref primo::avblocks::Param::Encoder::Audio::WMA) | 90 |
2889 */
2890
2891 /**
2892 <b>Audio</b>: Windows Media Professional, 44100 Hz, stereo, Quality 100 (0-100), VBR <br/>
2893 <b>Container</b>: [ASF](@ref primo::codecs::StreamType::ASF) <br/>
2894
2895 High quality VBR with average bitrate close to 256 kbps.
2896 */
2897 static const char VBR_Q100[] = "wma.pro.q100";
2898 /*!<
2899 ### Socket
2900 | Property | Value |
2901 | ---------------------------------------------------- | :-----------: |
2902 | [StreamType](@ref primo::codecs::StreamType) | [ASF](@ref primo::codecs::StreamType::ASF) |
2903
2904 ### %Audio Pin
2905 | Property | Value |
2906 | ---------------------------------------------------- | :-----------: |
2907 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [WMA_Professional](@ref primo::codecs::StreamType::WMA_Professional) |
2908 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [VBR](@ref primo::codecs::BitrateMode::VBR) |
2909 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2910 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2911 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2912 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
2913
2914 ### %Audio Pin %Parameters
2915 | %Parameter | Value |
2916 | ---------------------------------------------------- | :-----------: |
2917 | [Quality](@ref primo::avblocks::Param::Encoder::Audio::WMA) | 100 |
2918 */
2919 }
2920
2921 /** Presets for the WMA Lossless codec */
2922 namespace Lossless
2923 {
2924 /**
2925 <b>Audio</b>: Windows Media Lossless, 44100 Hz, stereo <br/>
2926 <b>Container</b>: [ASF](@ref primo::codecs::StreamType::ASF) <br/>
2927
2928 Windows Media Lossless Audio (CD Quality)
2929 */
2930 static const char CD[] = "wma.lossless.audiocd";
2931 /*!<
2932 ### Socket
2933 | Property | Value |
2934 | ---------------------------------------------------- | :-----------: |
2935 | [StreamType](@ref primo::codecs::StreamType) | [ASF](@ref primo::codecs::StreamType::ASF) |
2936
2937 ### %Audio Pin
2938 | Property | Value |
2939 | ---------------------------------------------------- | :-----------: |
2940 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [WMA_Lossless](@ref primo::codecs::StreamType::WMA_Lossless) |
2941 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
2942 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
2943 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
2944 */
2945 }
2946 }
2947
2948 /** Presets for Vorbis audio in Ogg container */
2949 namespace OggVorbis
2950 {
2951 /**
2952 <b>Audio</b>: Vorbis, frequency not explicitly specified, quality 0.4 (from -0.1 to 1.0), VBR<br/>
2953 <b>Container</b>: [OGG](@ref primo::codecs::StreamType::OGG) <br/>
2954
2955 Normal quality VBR with average bitrate close to 128 kbps at 44100 Hz.
2956 */
2957 static const char VBR_Q4[] = "ogg.vorbis.q4";
2958 /*!<
2959 ### Socket
2960 | Property | Value |
2961 | ---------------------------------------------------- | :-----------: |
2962 | [StreamType](@ref primo::codecs::StreamType) | [OGG](@ref primo::codecs::StreamType::OGG) |
2963
2964 ### %Audio Pin
2965 | Property | Value |
2966 | ---------------------------------------------------- | :-----------: |
2967 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [Vorbis](@ref primo::codecs::StreamType::Vorbis) |
2968
2969 ### %Audio Pin %Parameters
2970 | %Parameter | Value |
2971 | ---------------------------------------------------- | :-----------: |
2972 | [Quality](@ref primo::avblocks::Param::Encoder::Audio::Vorbis) | 0.4 |
2973 */
2974
2975 /**
2976 <b>Audio</b>: Vorbis, frequency not explicitly specified, quality 0.8 (from -0.1 to 1.0), VBR<br/>
2977 <b>Container</b>: [OGG](@ref primo::codecs::StreamType::OGG) <br/>
2978
2979 High quality VBR with average bitrate close to 256 kbps at 44100 Hz.
2980 */
2981 static const char VBR_Q8[] = "ogg.vorbis.q8";
2982 /*!<
2983 ### Socket
2984 | Property | Value |
2985 | ---------------------------------------------------- | :-----------: |
2986 | [StreamType](@ref primo::codecs::StreamType) | [OGG](@ref primo::codecs::StreamType::OGG) |
2987
2988 ### %Audio Pin
2989 | Property | Value |
2990 | ---------------------------------------------------- | :-----------: |
2991 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [Vorbis](@ref primo::codecs::StreamType::Vorbis) |
2992
2993 ### %Audio Pin %Parameters
2994 | %Parameter | Value |
2995 | ---------------------------------------------------- | :-----------: |
2996 | [Quality](@ref primo::avblocks::Param::Encoder::Audio::Vorbis) | 0.8 |
2997 */
2998 }
2999 }
3000
3001 /** Presets for audio compatible with AudioCD (LPCM, 44100 Hz, stereo, 16-bit) */
3002 namespace AudioCD
3003 {
3004 /**
3005 <b>Audio</b>: WAV with parameters as in Audio CD (PCM, 44100 Hz, 16-bit, stereo)<br/>
3006 <b>Container</b>: [WAVE](@ref primo::codecs::StreamType::WAVE) <br/>
3007 */
3008 static const char WAV[] = "wav.audiocd";
3009 /*!<
3010 ### Socket
3011 | Property | Value |
3012 | ---------------------------------------------------- | :-----------: |
3013 | [StreamType](@ref primo::codecs::StreamType) | [WAVE](@ref primo::codecs::StreamType::WAVE) |
3014
3015 ### %Audio Pin
3016 | Property | Value |
3017 | ---------------------------------------------------- | :-----------: |
3018 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [LPCM](@ref primo::codecs::StreamType::LPCM) |
3019 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3020 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3021 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
3022 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
3023 | [BytesPerFrame (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBytesPerFrame) | 4 |
3024 */
3025 }
3026
3027 /** Presets for audio compatible with DVD-Video */
3028 namespace DVD
3029 {
3030 /**
3031 MPEG-1 Layer 2 audio, 48000 Hz (suitable for DVD) <br />
3032 */
3033 static const char MP2[] = "mp2.dvd";
3034 /*!<
3035 ### Socket
3036 | Property | Value |
3037 | ---------------------------------------------------- | :-----------: |
3038 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
3039
3040 ### %Audio Pin
3041 | Property | Value |
3042 | ---------------------------------------------------- | :-----------: |
3043 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
3044 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer2](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer2) |
3045 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 192000 bps |
3046 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3047 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3048 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
3049 */
3050 }
3051 }
3052
3053 /**
3054 Describes output video presets structured by codec and device type.
3055 */
3056 namespace Video
3057 {
3058 /**
3059 Generic video presets. These presets are not related to any specific device.
3060 */
3061 namespace Generic
3062 {
3063 /**
3064 Generic MP4 presets (audio and video streams in MP4 container). These presets are not related to any specific device.
3065 */
3066 namespace MP4
3067 {
3068 /**
3069 Video: H.264, 29.97 fps, 1920x1080, bitrate 5400 kbps, profile Baseline, aspect 16:9, Level 4 <br />
3070 Audio: AAC, 44100 Hz, stereo, bitrate 160 kbps<br />
3071 Container: MP4<br />
3072 */
3073 static const char H264_1080p[] = "generic.mp4.h264.1080p";
3074 /*!<
3075 ### Socket
3076 | Property | Value |
3077 | ---------------------------------------------------- | :-----------: |
3078 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
3079
3080 ### %Video Pin
3081 | Property | Value |
3082 | ---------------------------------------------------- | :-----------: |
3083 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
3084 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
3085 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 5400000 bps |
3086 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1920 |
3087 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
3088 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
3089 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
3090 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
3091 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3092
3093 ### %Video Pin %Parameters
3094 | %Parameter | Value |
3095 | ---------------------------------------------------- | :-----------: |
3096 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
3097 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
3098 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
3099 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
3100 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
3101 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
3102 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
3103 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 4.0 |
3104 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
3105
3106 ### %Audio Pin
3107 | Property | Value |
3108 | ---------------------------------------------------- | :-----------: |
3109 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
3110 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
3111 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 160000 bps |
3112 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3113 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3114 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
3115 */
3116
3117 /**
3118 Video: H.264, 29.97 fps, 1280x720, bitrate 2400kbps, profile Baseline, aspect 16:9, Level 3.1 <br />
3119 Audio: AAC, 44100 Hz, stereo, bitrate 160 kbps<br />
3120 Container: MP4<br />
3121 */
3122 static const char H264_720p[] = "generic.mp4.h264.720p";
3123 /*!<
3124 ### Socket
3125 | Property | Value |
3126 | ---------------------------------------------------- | :-----------: |
3127 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
3128
3129 ### %Video Pin
3130 | Property | Value |
3131 | ---------------------------------------------------- | :-----------: |
3132 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
3133 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
3134 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 2400000 bps |
3135 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
3136 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
3137 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
3138 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
3139 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
3140 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3141
3142 ### %Video Pin %Parameters
3143 | %Parameter | Value |
3144 | ---------------------------------------------------- | :-----------: |
3145 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
3146 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
3147 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
3148 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
3149 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
3150 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
3151 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
3152 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.1 |
3153 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
3154
3155 ### %Audio Pin
3156 | Property | Value |
3157 | ---------------------------------------------------- | :-----------: |
3158 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
3159 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
3160 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 160000 bps |
3161 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3162 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3163 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
3164 */
3165
3166 /**
3167 Video: H.264, 29.97 fps, 854x480, bitrate 1200 kbps, profile Baseline, aspect 16:9, Level 3.1 <br />
3168 Audio: AAC, 44100 Hz, stereo, bitrate 128 kbps
3169 Container: MP4
3170 */
3171 static const char H264_Wide_480p[] = "generic.mp4.h264.wide.480p";
3172 /*!<
3173 ### Socket
3174 | Property | Value |
3175 | ---------------------------------------------------- | :-----------: |
3176 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
3177
3178 ### %Video Pin
3179 | Property | Value |
3180 | ---------------------------------------------------- | :-----------: |
3181 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
3182 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
3183 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 1200000 bps |
3184 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 854 |
3185 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
3186 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
3187 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
3188 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
3189 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3190
3191 ### %Video Pin %Parameters
3192 | %Parameter | Value |
3193 | ---------------------------------------------------- | :-----------: |
3194 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
3195 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
3196 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
3197 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
3198 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
3199 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
3200 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
3201 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.1 |
3202 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
3203
3204 ### %Audio Pin
3205 | Property | Value |
3206 | ---------------------------------------------------- | :-----------: |
3207 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
3208 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
3209 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
3210 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3211 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3212 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
3213 */
3214
3215 /**
3216 Video: H264, 29.97 fps, 640x480, bitrate 900 kbps, profile Baseline, aspect 4:3, Level 3 <br />
3217 Audio: AAC, 44100 Hz, stereo, bitrate 128 kbps<br />
3218 Container: MP4<br />
3219 */
3220 static const char H264_480p[] = "generic.mp4.h264.480p";
3221 /*!<
3222 ### Socket
3223 | Property | Value |
3224 | ---------------------------------------------------- | :-----------: |
3225 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
3226
3227 ### %Video Pin
3228 | Property | Value |
3229 | ---------------------------------------------------- | :-----------: |
3230 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
3231 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
3232 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 900000 bps |
3233 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 640 |
3234 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
3235 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 4 |
3236 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 3 |
3237 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
3238 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3239
3240 ### %Video Pin %Parameters
3241 | %Parameter | Value |
3242 | ---------------------------------------------------- | :-----------: |
3243 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
3244 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
3245 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
3246 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
3247 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
3248 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
3249 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
3250 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.0 |
3251 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
3252
3253 ### %Audio Pin
3254 | Property | Value |
3255 | ---------------------------------------------------- | :-----------: |
3256 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
3257 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
3258 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
3259 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3260 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3261 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
3262 */
3263
3264 /**
3265 Video: H.264, 29.97 fps, 640x360, bitrate 720 kbps, profile Baseline, aspect 16:9, Level 3 <br />
3266 Audio: AAC, 44100 Hz, stereo, bitrate 128 kbps<br />
3267 Container: MP4<br />
3268 */
3269 static const char H264_Wide_360p[] = "generic.mp4.h264.wide.360p";
3270 /*!<
3271 ### Socket
3272 | Property | Value |
3273 | ---------------------------------------------------- | :-----------: |
3274 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
3275
3276 ### %Video Pin
3277 | Property | Value |
3278 | ---------------------------------------------------- | :-----------: |
3279 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
3280 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
3281 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 720000 bps |
3282 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 640 |
3283 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 360 |
3284 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
3285 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
3286 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
3287 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3288
3289 ### %Video Pin %Parameters
3290 | %Parameter | Value |
3291 | ---------------------------------------------------- | :-----------: |
3292 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
3293 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
3294 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
3295 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
3296 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
3297 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
3298 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
3299 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.0 |
3300 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
3301
3302 ### %Audio Pin
3303 | Property | Value |
3304 | ---------------------------------------------------- | :-----------: |
3305 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
3306 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
3307 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
3308 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3309 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3310 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
3311 */
3312
3313 /**
3314 Video: H.264, 29.97 fps, 480x360, bitrate 600 kbps, profile Baseline, aspect 4:3, Level 3 <br />
3315 Audio: AAC, 44100 Hz, stereo, bitrate 128 kbps<br />
3316 Container: MP4<br />
3317 */
3318 static const char H264_360p[] = "generic.mp4.h264.360p";
3319 /*!<
3320 ### Socket
3321 | Property | Value |
3322 | ---------------------------------------------------- | :-----------: |
3323 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
3324
3325 ### %Video Pin
3326 | Property | Value |
3327 | ---------------------------------------------------- | :-----------: |
3328 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
3329 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
3330 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 600000 bps |
3331 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 480 |
3332 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 360 |
3333 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 4 |
3334 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 3 |
3335 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
3336 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3337
3338 ### %Video Pin %Parameters
3339 | %Parameter | Value |
3340 | ---------------------------------------------------- | :-----------: |
3341 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
3342 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
3343 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
3344 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
3345 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
3346 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
3347 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
3348 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.0 |
3349 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
3350
3351 ### %Audio Pin
3352 | Property | Value |
3353 | ---------------------------------------------------- | :-----------: |
3354 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
3355 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
3356 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
3357 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3358 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3359 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
3360 */
3361
3362 /**
3363 Video: H264, 15 fps, 320x240, bitrate 300 kbps, profile Baseline, aspect 4:3, Level 1.3 <br />
3364 Audio: AAC, 22050 Hz, stereo, bitrate 64 kbps<br />
3365 Container: MP4<br />
3366 */
3367 static const char H264_240p[] = "generic.mp4.h264.240p";
3368 /*!<
3369 ### Socket
3370 | Property | Value |
3371 | ---------------------------------------------------- | :-----------: |
3372 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
3373
3374 ### %Video Pin
3375 | Property | Value |
3376 | ---------------------------------------------------- | :-----------: |
3377 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
3378 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
3379 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 300000 bps |
3380 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 320 |
3381 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 240 |
3382 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 4 |
3383 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 3 |
3384 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 15 |
3385 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3386
3387 ### %Video Pin %Parameters
3388 | %Parameter | Value |
3389 | ---------------------------------------------------- | :-----------: |
3390 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
3391 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
3392 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
3393 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
3394 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
3395 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
3396 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
3397 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 1.3 |
3398 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
3399
3400 ### %Audio Pin
3401 | Property | Value |
3402 | ---------------------------------------------------- | :-----------: |
3403 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
3404 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
3405 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 64000 bps |
3406 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3407 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3408 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 22050 Hz |
3409 */
3410
3411 /**
3412 Video: H.264<br/>
3413 Audio: AAC<br/>
3414 Container: MP4<br/>
3415
3416 Besides the video codec, audio codec and the container, this encoding preset does not enforce any specific audio and video properties.
3417 Width, height, frame rate, audio sampling rate, and other properties will be taken from the input.
3418 */
3419 static const char Base_H264_AAC[] = "mp4.h264.aac";
3420 /*!<
3421 ### Socket
3422 | Property | Value |
3423 | ---------------------------------------------------- | :-----------: |
3424 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
3425
3426 ### %Video Pin
3427 | Property | Value |
3428 | ---------------------------------------------------- | :-----------: |
3429 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
3430 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
3431
3432 ### %Audio Pin
3433 | Property | Value |
3434 | ---------------------------------------------------- | :-----------: |
3435 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
3436 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
3437 */
3438 }
3439
3440 /** WebM presets */
3441 namespace WebM
3442 {
3443 /**
3444 Video: VP8<br/>
3445 Audio: Vorbis<br/>
3446 Container: %WebM<br/>
3447
3448 Besides the video codec, audio codec and the container, this encoding preset does not enforce any specific audio and video properties.
3449 Width, height, frame rate, audio sampling rate, and other properties will be taken from the input.
3450 */
3451 static const char Base_VP8_Vorbis[] = "webm.vp8.vorbis";
3452 /*!<
3453 ### Socket
3454 | Property | Value |
3455 | ---------------------------------------------------- | :-----------: |
3456 | [StreamType](@ref primo::codecs::StreamType) | [WebM](@ref primo::codecs::StreamType::WebM) |
3457
3458 ### %Video Pin
3459 | Property | Value |
3460 | ---------------------------------------------------- | :-----------: |
3461 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [VP8](@ref primo::codecs::StreamType::VP8) |
3462
3463 ### %Audio Pin
3464 | Property | Value |
3465 | ---------------------------------------------------- | :-----------: |
3466 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [Vorbis](@ref primo::codecs::StreamType::Vorbis) |
3467 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3468 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3469 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
3470 */
3471
3472 /**
3473 Video: VP9<br/>
3474 Audio: Vorbis<br/>
3475 Container: %WebM<br/>
3476
3477 Besides the video codec, audio codec and the container, this encoding preset does not enforce any specific audio and video properties.
3478 Width, height, frame rate, audio sampling rate, and other properties will be taken from the input.
3479
3480 @version 3.3
3481 */
3482 static const char Base_VP9_Vorbis[] = "webm.vp9.vorbis";
3483 /*!<
3484 ### Socket
3485 | Property | Value |
3486 | ---------------------------------------------------- | :-----------: |
3487 | [StreamType](@ref primo::codecs::StreamType) | [WebM](@ref primo::codecs::StreamType::WebM) |
3488
3489 ### %Video Pin
3490 | Property | Value |
3491 | ---------------------------------------------------- | :-----------: |
3492 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [VP9](@ref primo::codecs::StreamType::VP9) |
3493
3494 ### %Audio Pin
3495 | Property | Value |
3496 | ---------------------------------------------------- | :-----------: |
3497 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [Vorbis](@ref primo::codecs::StreamType::Vorbis) |
3498 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3499 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3500 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
3501 */
3502
3503 /**
3504 Video: VP8, 24 fps, 320x240, bitrate 350 kbps, VBR, keyframe distance 120 <br />
3505 Audio: Vorbis, 44100 Hz, 64 kbit, 2 channels, VBR <br />
3506 Container: %WebM
3507 */
3508 static const char VP8_3G_240p_350K_Vorbis_64K[] = "webm.vp8.3g.240p.350k.vorbis.64k";
3509 /*!<
3510 ### Socket
3511 | Property | Value |
3512 | ---------------------------------------------------- | :-----------: |
3513 | [StreamType](@ref primo::codecs::StreamType) | [WebM](@ref primo::codecs::StreamType::WebM) |
3514
3515 ### %Video Pin
3516 | Property | Value |
3517 | ---------------------------------------------------- | :-----------: |
3518 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [VP8](@ref primo::codecs::StreamType::VP8) |
3519 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 350000 bps |
3520 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 320 |
3521 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 240 |
3522 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 24 |
3523 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3524
3525 ### %Video Pin %Parameters
3526 | %Parameter | Value |
3527 | ---------------------------------------------------- | :-----------: |
3528 | [KeyFrameMaxDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMaxDistance) | 120 |
3529 | [KeyFrameMinDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMinDistance) | 120 |
3530
3531 ### %Audio Pin
3532 | Property | Value |
3533 | ---------------------------------------------------- | :-----------: |
3534 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [Vorbis](@ref primo::codecs::StreamType::Vorbis) |
3535 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 64000 bps |
3536 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [ABR](@ref primo::codecs::BitrateMode::ABR) |
3537 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3538 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3539 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
3540 */
3541
3542 /**
3543 Video: VP8, 24 fps, 426x240, bitrate 350 kbps, VBR, keyframe distance 120 <br />
3544 Audio: Vorbis, 44100 Hz, 64 kbit, 2 channels, VBR <br />
3545 Container: %WebM
3546 */
3547 static const char VP8_Wide_3G_240p_350K_Vorbis_64K[] = "webm.vp8.wide.3g.240p.350k.vorbis.64k";
3548 /*!<
3549 ### Socket
3550 | Property | Value |
3551 | ---------------------------------------------------- | :-----------: |
3552 | [StreamType](@ref primo::codecs::StreamType) | [WebM](@ref primo::codecs::StreamType::WebM) |
3553
3554 ### %Video Pin
3555 | Property | Value |
3556 | ---------------------------------------------------- | :-----------: |
3557 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [VP8](@ref primo::codecs::StreamType::VP8) |
3558 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 350000 bps |
3559 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 426 |
3560 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 240 |
3561 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 24 |
3562 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3563
3564 ### %Video Pin %Parameters
3565 | %Parameter | Value |
3566 | ---------------------------------------------------- | :-----------: |
3567 | [KeyFrameMaxDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMaxDistance) | 120 |
3568 | [KeyFrameMinDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMinDistance) | 120 |
3569
3570 ### %Audio Pin
3571 | Property | Value |
3572 | ---------------------------------------------------- | :-----------: |
3573 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [Vorbis](@ref primo::codecs::StreamType::Vorbis) |
3574 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 64000 bps |
3575 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [ABR](@ref primo::codecs::BitrateMode::ABR) |
3576 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3577 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3578 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
3579 */
3580
3581 /**
3582 Video: VP8, 30 fps, 480x360, bitrate 700 kbps, VBR, keyframe distance 150 <br />
3583 Audio: Vorbis, 44100 Hz, 64 kbit, 2 channels, VBR <br />
3584 Container: %WebM
3585 */
3586 static const char VP8_4G_360p_700K_Vorbis_64K[] = "webm.vp8.4g.360p.700k.vorbis.64k";
3587 /*!<
3588 ### Socket
3589 | Property | Value |
3590 | ---------------------------------------------------- | :-----------: |
3591 | [StreamType](@ref primo::codecs::StreamType) | [WebM](@ref primo::codecs::StreamType::WebM) |
3592
3593 ### %Video Pin
3594 | Property | Value |
3595 | ---------------------------------------------------- | :-----------: |
3596 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [VP8](@ref primo::codecs::StreamType::VP8) |
3597 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 700000 bps |
3598 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 480 |
3599 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 360 |
3600 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
3601 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3602
3603 ### %Video Pin %Parameters
3604 | %Parameter | Value |
3605 | ---------------------------------------------------- | :-----------: |
3606 | [KeyFrameMaxDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMaxDistance) | 150 |
3607 | [KeyFrameMinDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMinDistance) | 150 |
3608
3609 ### %Audio Pin
3610 | Property | Value |
3611 | ---------------------------------------------------- | :-----------: |
3612 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [Vorbis](@ref primo::codecs::StreamType::Vorbis) |
3613 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 64000 bps |
3614 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [ABR](@ref primo::codecs::BitrateMode::ABR) |
3615 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3616 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3617 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
3618 */
3619
3620 /**
3621 Video: VP8, 30 fps, 640x360, bitrate 700 kbps, VBR, keyframe distance 150 <br />
3622 Audio: Vorbis, 44100 Hz, 64 kbit, 2 channels, VBR <br />
3623 Container: %WebM
3624 */
3625 static const char VP8_Wide_4G_360p_700K_Vorbis_64K[] = "webm.vp8.wide.4g.360p.700k.vorbis.64k";
3626 /*!<
3627 ### Socket
3628 | Property | Value |
3629 | ---------------------------------------------------- | :-----------: |
3630 | [StreamType](@ref primo::codecs::StreamType) | [WebM](@ref primo::codecs::StreamType::WebM) |
3631
3632 ### %Video Pin
3633 | Property | Value |
3634 | ---------------------------------------------------- | :-----------: |
3635 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [VP8](@ref primo::codecs::StreamType::VP8) |
3636 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 700000 bps |
3637 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 640 |
3638 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 360 |
3639 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
3640 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3641
3642 ### %Video Pin %Parameters
3643 | %Parameter | Value |
3644 | ---------------------------------------------------- | :-----------: |
3645 | [KeyFrameMaxDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMaxDistance) | 150 |
3646 | [KeyFrameMinDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMinDistance) | 150 |
3647
3648 ### %Audio Pin
3649 | Property | Value |
3650 | ---------------------------------------------------- | :-----------: |
3651 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [Vorbis](@ref primo::codecs::StreamType::Vorbis) |
3652 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 64000 bps |
3653 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [ABR](@ref primo::codecs::BitrateMode::ABR) |
3654 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3655 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3656 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
3657 */
3658
3659 /**
3660 Video: VP8, 30 fps, 640x480, bitrate 1200 kbps, VBR, keyframe distance 300 <br />
3661 Audio: Vorbis, 44100 Hz, 128 kbit, 2 channels, VBR <br />
3662 Container: %WebM
3663 */
3664 static const char VP8_SD_480p_1200K_Vorbis_128K[] = "webm.vp8.sd.480p.1200k.vorbis.128k";
3665 /*!<
3666 ### Socket
3667 | Property | Value |
3668 | ---------------------------------------------------- | :-----------: |
3669 | [StreamType](@ref primo::codecs::StreamType) | [WebM](@ref primo::codecs::StreamType::WebM) |
3670
3671 ### %Video Pin
3672 | Property | Value |
3673 | ---------------------------------------------------- | :-----------: |
3674 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [VP8](@ref primo::codecs::StreamType::VP8) |
3675 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 1200000 bps |
3676 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 640 |
3677 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
3678 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
3679 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3680
3681 ### %Video Pin %Parameters
3682 | %Parameter | Value |
3683 | ---------------------------------------------------- | :-----------: |
3684 | [KeyFrameMaxDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMaxDistance) | 300 |
3685 | [KeyFrameMinDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMinDistance) | 300 |
3686
3687 ### %Audio Pin
3688 | Property | Value |
3689 | ---------------------------------------------------- | :-----------: |
3690 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [Vorbis](@ref primo::codecs::StreamType::Vorbis) |
3691 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
3692 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [ABR](@ref primo::codecs::BitrateMode::ABR) |
3693 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3694 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3695 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
3696 */
3697
3698 /**
3699 Video: VP8, 30 fps, 854x480, bitrate 1200 kbps, VBR, keyframe distance 300 <br />
3700 Audio: Vorbis, 44100 Hz, 128 kbit, 2 channels, VBR <br />
3701 Container: %WebM
3702 */
3703 static const char VP8_Wide_SD_480p_1200K_Vorbis_128K[] = "webm.vp8.wide.sd.480p.1200k.vorbis.128k";
3704 /*!<
3705 ### Socket
3706 | Property | Value |
3707 | ---------------------------------------------------- | :-----------: |
3708 | [StreamType](@ref primo::codecs::StreamType) | [WebM](@ref primo::codecs::StreamType::WebM) |
3709
3710 ### %Video Pin
3711 | Property | Value |
3712 | ---------------------------------------------------- | :-----------: |
3713 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [VP8](@ref primo::codecs::StreamType::VP8) |
3714 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 1200000 bps |
3715 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 854 |
3716 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
3717 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
3718 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3719
3720 ### %Video Pin %Parameters
3721 | %Parameter | Value |
3722 | ---------------------------------------------------- | :-----------: |
3723 | [KeyFrameMaxDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMaxDistance) | 300 |
3724 | [KeyFrameMinDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMinDistance) | 300 |
3725
3726 ### %Audio Pin
3727 | Property | Value |
3728 | ---------------------------------------------------- | :-----------: |
3729 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [Vorbis](@ref primo::codecs::StreamType::Vorbis) |
3730 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
3731 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [ABR](@ref primo::codecs::BitrateMode::ABR) |
3732 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3733 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3734 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
3735 */
3736
3737 /**
3738 Video: VP8, 25 fps, 720x576, bitrate 1600 kbps, VBR, keyframe distance 250 <br />
3739 Audio: Vorbis, 44100 Hz, 128 kbit, 2 channels, VBR <br />
3740 Container: %WebM
3741 */
3742 static const char VP8_SD_576p_1600K_Vorbis_128K[] = "webm.vp8.sd.576p.1600k.vorbis.128k";
3743 /*!<
3744 ### Socket
3745 | Property | Value |
3746 | ---------------------------------------------------- | :-----------: |
3747 | [StreamType](@ref primo::codecs::StreamType) | [WebM](@ref primo::codecs::StreamType::WebM) |
3748
3749 ### %Video Pin
3750 | Property | Value |
3751 | ---------------------------------------------------- | :-----------: |
3752 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [VP8](@ref primo::codecs::StreamType::VP8) |
3753 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 1600000 bps |
3754 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 720 |
3755 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 576 |
3756 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 25 |
3757 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3758
3759 ### %Video Pin %Parameters
3760 | %Parameter | Value |
3761 | ---------------------------------------------------- | :-----------: |
3762 | [KeyFrameMaxDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMaxDistance) | 250 |
3763 | [KeyFrameMinDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMinDistance) | 250 |
3764
3765 ### %Audio Pin
3766 | Property | Value |
3767 | ---------------------------------------------------- | :-----------: |
3768 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [Vorbis](@ref primo::codecs::StreamType::Vorbis) |
3769 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
3770 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [ABR](@ref primo::codecs::BitrateMode::ABR) |
3771 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3772 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3773 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
3774 */
3775
3776 /**
3777 Video: VP8, 25 fps, 1024x576, bitrate 1600 kbps, VBR, keyframe distance 250 <br />
3778 Audio: Vorbis, 44100 Hz, 128 kbit, 2 channels, VBR <br />
3779 Container: %WebM
3780 */
3781 static const char VP8_Wide_SD_576p_1600K_Vorbis_128K[] = "webm.vp8.wide.sd.576p.1600k.vorbis.128k";
3782 /*!<
3783 ### Socket
3784 | Property | Value |
3785 | ---------------------------------------------------- | :-----------: |
3786 | [StreamType](@ref primo::codecs::StreamType) | [WebM](@ref primo::codecs::StreamType::WebM) |
3787
3788 ### %Video Pin
3789 | Property | Value |
3790 | ---------------------------------------------------- | :-----------: |
3791 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [VP8](@ref primo::codecs::StreamType::VP8) |
3792 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 1600000 bps |
3793 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1024 |
3794 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 576 |
3795 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 25 |
3796 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3797
3798 ### %Video Pin %Parameters
3799 | %Parameter | Value |
3800 | ---------------------------------------------------- | :-----------: |
3801 | [KeyFrameMaxDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMaxDistance) | 250 |
3802 | [KeyFrameMinDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMinDistance) | 250 |
3803
3804 ### %Audio Pin
3805 | Property | Value |
3806 | ---------------------------------------------------- | :-----------: |
3807 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [Vorbis](@ref primo::codecs::StreamType::Vorbis) |
3808 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
3809 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [ABR](@ref primo::codecs::BitrateMode::ABR) |
3810 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3811 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3812 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
3813 */
3814
3815 /**
3816 Video: VP8, 30 fps, 1280x720, bitrate 2500 kbps, VBR, keyframe distance 300 <br />
3817 Audio: Vorbis, 48000 Hz, 192 kbit, 2 channels, VBR <br />
3818 Container: %WebM
3819 */
3820 static const char VP8_Wide_HD_720p_2500K_Vorbis_192K[] = "webm.vp8.wide.hd.720p.2500k.vorbis.192k";
3821 /*!<
3822 ### Socket
3823 | Property | Value |
3824 | ---------------------------------------------------- | :-----------: |
3825 | [StreamType](@ref primo::codecs::StreamType) | [WebM](@ref primo::codecs::StreamType::WebM) |
3826
3827 ### %Video Pin
3828 | Property | Value |
3829 | ---------------------------------------------------- | :-----------: |
3830 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [VP8](@ref primo::codecs::StreamType::VP8) |
3831 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 2500000 bps |
3832 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
3833 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
3834 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
3835 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3836
3837 ### %Video Pin %Parameters
3838 | %Parameter | Value |
3839 | ---------------------------------------------------- | :-----------: |
3840 | [KeyFrameMaxDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMaxDistance) | 300 |
3841 | [KeyFrameMinDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMinDistance) | 300 |
3842
3843 ### %Audio Pin
3844 | Property | Value |
3845 | ---------------------------------------------------- | :-----------: |
3846 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [Vorbis](@ref primo::codecs::StreamType::Vorbis) |
3847 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 192000 bps |
3848 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [ABR](@ref primo::codecs::BitrateMode::ABR) |
3849 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3850 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3851 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
3852 */
3853
3854 /**
3855 Video: VP8, 30 fps, 1920x1080, bitrate 5000 kbps, VBR, keyframe distance 300 <br />
3856 Audio: Vorbis, 48000 Hz, 192 kbit, 2 channels, VBR <br />
3857 Container: %WebM
3858 */
3859 static const char VP8_Wide_HD_1080p_5000K_Vorbis_192K[] = "webm.vp8.wide.hd.1080p.5000k.vorbis.192k";
3860 /*!<
3861 ### Socket
3862 | Property | Value |
3863 | ---------------------------------------------------- | :-----------: |
3864 | [StreamType](@ref primo::codecs::StreamType) | [WebM](@ref primo::codecs::StreamType::WebM) |
3865
3866 ### %Video Pin
3867 | Property | Value |
3868 | ---------------------------------------------------- | :-----------: |
3869 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [VP8](@ref primo::codecs::StreamType::VP8) |
3870 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 5000000 bps |
3871 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1920 |
3872 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
3873 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
3874 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3875
3876 ### %Video Pin %Parameters
3877 | %Parameter | Value |
3878 | ---------------------------------------------------- | :-----------: |
3879 | [KeyFrameMaxDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMaxDistance) | 300 |
3880 | [KeyFrameMinDistance](@ref primo::avblocks::Param::Encoder::Video::VP8::KeyFrameMinDistance) | 300 |
3881
3882 ### %Audio Pin
3883 | Property | Value |
3884 | ---------------------------------------------------- | :-----------: |
3885 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [Vorbis](@ref primo::codecs::StreamType::Vorbis) |
3886 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 192000 bps |
3887 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [ABR](@ref primo::codecs::BitrateMode::ABR) |
3888 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3889 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3890 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
3891 */
3892 }
3893 }
3894
3895 /** Kindle presets */
3896 namespace Kindle
3897 {
3898 /**
3899 Video: H264, 30 fps, 1920x1080, bitrate 5400 kbps, profile Main, aspect 16:9, Level 4 <br />
3900 Audio: AAC, 48000 Hz, stereo, bitrate 160 kbps<br />
3901 Container: MP4<br />
3902 */
3903 static const char KindleFireHD_8_9_MP4_H264_1080p[] = "KindleFireHD8.9.mp4.h264.1080p";
3904 /*!<
3905 ### Socket
3906 | Property | Value |
3907 | ---------------------------------------------------- | :-----------: |
3908 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
3909
3910 ### %Video Pin
3911 | Property | Value |
3912 | ---------------------------------------------------- | :-----------: |
3913 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
3914 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
3915 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 5400000 bps |
3916 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1920 |
3917 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
3918 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
3919 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
3920 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
3921 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3922
3923 ### %Video Pin %Parameters
3924 | %Parameter | Value |
3925 | ---------------------------------------------------- | :-----------: |
3926 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Main](@ref primo::codecs::H264Profile::Main) |
3927 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
3928 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
3929 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
3930 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
3931 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
3932 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
3933 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 4.0 |
3934 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
3935
3936 ### %Audio Pin
3937 | Property | Value |
3938 | ---------------------------------------------------- | :-----------: |
3939 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
3940 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
3941 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 160000 bps |
3942 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3943 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3944 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
3945 */
3946
3947 /**
3948 Video: H264, 30 fps, 1280x720, bitrate 2200 kbps, profile Main, aspect 16:9, Level 4 <br />
3949 Audio: AAC, 48000 Hz, stereo, bitrate 160 kbps<br />
3950 Container: MP4<br />
3951 */
3952 static const char KindleFireHD_MP4_H264_720p[] = "KindleFireHD.mp4.h264.720p";
3953 /*!<
3954 ### Socket
3955 | Property | Value |
3956 | ---------------------------------------------------- | :-----------: |
3957 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
3958
3959 ### %Video Pin
3960 | Property | Value |
3961 | ---------------------------------------------------- | :-----------: |
3962 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
3963 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
3964 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 2200000 bps |
3965 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
3966 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
3967 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
3968 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
3969 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
3970 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
3971
3972 ### %Video Pin %Parameters
3973 | %Parameter | Value |
3974 | ---------------------------------------------------- | :-----------: |
3975 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Main](@ref primo::codecs::H264Profile::Main) |
3976 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
3977 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
3978 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
3979 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
3980 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
3981 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
3982 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 4.0 |
3983 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
3984
3985 ### %Audio Pin
3986 | Property | Value |
3987 | ---------------------------------------------------- | :-----------: |
3988 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
3989 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
3990 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 160000 bps |
3991 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
3992 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
3993 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
3994 */
3995
3996 /**
3997 Video: H264, 30 fps, 1024x576, bitrate 1600 kbps, profile Main, aspect 16:9, Level 3.1 <br />
3998 Audio: AAC, 48000 Hz, stereo, bitrate 160 kbps<br />
3999 Container: MP4<br />
4000 */
4001 static const char KindleFire_MP4_H264_576p[] = "KindleFire.mp4.h264.576p";
4002 /*!<
4003 ### Socket
4004 | Property | Value |
4005 | ---------------------------------------------------- | :-----------: |
4006 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
4007
4008 ### %Video Pin
4009 | Property | Value |
4010 | ---------------------------------------------------- | :-----------: |
4011 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
4012 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
4013 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 1600000 bps |
4014 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1024 |
4015 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 576 |
4016 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
4017 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
4018 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
4019 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
4020
4021 ### %Video Pin %Parameters
4022 | %Parameter | Value |
4023 | ---------------------------------------------------- | :-----------: |
4024 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Main](@ref primo::codecs::H264Profile::Main) |
4025 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
4026 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
4027 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
4028 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
4029 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
4030 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
4031 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.1 |
4032 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
4033
4034 ### %Audio Pin
4035 | Property | Value |
4036 | ---------------------------------------------------- | :-----------: |
4037 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
4038 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
4039 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 160000 bps |
4040 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4041 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4042 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4043 */
4044 }
4045
4046 /** Web Video Presets*/
4047 namespace Web
4048 {
4049 /**
4050 Web MP4 Presets
4051 */
4052 namespace MP4
4053 {
4054 /**
4055 Video: H264, 30 fps, 1280x720, bitrate 2200 kbps, profile Main, aspect 16:9, Level 3.1<br />
4056 Audio: AAC, 44100 Hz, stereo, bitrate 160 kbps<br />
4057 Container: MP4<br />
4058 */
4059 static const char H264_720p[] = "Web.mp4.h264.720p";
4060 /*!<
4061 ### Socket
4062 | Property | Value |
4063 | ---------------------------------------------------- | :-----------: |
4064 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
4065
4066 ### %Video Pin
4067 | Property | Value |
4068 | ---------------------------------------------------- | :-----------: |
4069 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
4070 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
4071 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 2200000 bps |
4072 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
4073 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
4074 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
4075 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
4076 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
4077 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
4078
4079 ### %Video Pin %Parameters
4080 | %Parameter | Value |
4081 | ---------------------------------------------------- | :-----------: |
4082 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Main](@ref primo::codecs::H264Profile::Main) |
4083 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
4084 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
4085 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
4086 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
4087 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
4088 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
4089 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.1 |
4090 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
4091
4092 ### %Audio Pin
4093 | Property | Value |
4094 | ---------------------------------------------------- | :-----------: |
4095 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
4096 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
4097 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 160000 bps |
4098 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4099 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4100 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
4101 */
4102 }
4103 }
4104
4105 /** Presets for DVD-Video */
4106 namespace DVD
4107 {
4108 /**
4109 Video: MPEG-2, 25 fps, 720 x 576, aspect 4:3<br/>
4110 Audio: MPEG-1 Layer 2, 48000 Hz, stereo <br />
4111 Container: MPEG_PS <br \>
4112 */
4113 static const char PAL_4x3_MP2[] = "dvd.pal.4x3.mp2";
4114 /*!<
4115 ### Socket
4116 | Property | Value |
4117 | ---------------------------------------------------- | :-----------: |
4118 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_PS](@ref primo::codecs::StreamType::MPEG_PS) |
4119
4120 ### %Video Pin
4121 | Property | Value |
4122 | ---------------------------------------------------- | :-----------: |
4123 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG2_Video](@ref primo::codecs::StreamType::MPEG2_Video) |
4124 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 6000000 bps |
4125 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
4126 | [ColorFormat (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setColorFormat) | [YUV420](@ref primo::codecs::ColorFormat::YUV420) |
4127 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 720 |
4128 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 576 |
4129 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 4 |
4130 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 3 |
4131 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 25.0 |
4132 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
4133
4134 ### %Video Pin %Parameters
4135 | %Parameter | Value |
4136 | ---------------------------------------------------- | :-----------: |
4137 | [GOPSize](@ref primo::avblocks::Param::Encoder::Video::MPEG2::GOPSize) | 15 |
4138 | [FrameRateConverter::Use](@ref primo::avblocks::Param::Video::FrameRateConverter) | [On](@ref primo::avblocks::Use::On) |
4139
4140 ### %Audio Pin
4141 | Property | Value |
4142 | ---------------------------------------------------- | :-----------: |
4143 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
4144 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer2](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer2) |
4145 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 192000 bps |
4146 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
4147 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4148 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4149 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4150
4151 ### %Audio Pin %Parameters
4152 | %Parameter | Value |
4153 | ---------------------------------------------------- | :-----------: |
4154 | [ForceV1](@ref primo::avblocks::Param::Encoder::Audio::MPEG1) | TRUE |
4155 */
4156
4157 /**
4158 Video: MPEG-2, 25 fps, 720 x 576, aspect 16:9<br/>
4159 Audio: MPEG-1 Layer 2, 48000 Hz, stereo <br \>
4160 Container: MPEG_PS <br \>
4161 */
4162 static const char PAL_16x9_MP2[] = "dvd.pal.16x9.mp2";
4163 /*!<
4164 ### Socket
4165 | Property | Value |
4166 | ---------------------------------------------------- | :-----------: |
4167 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_PS](@ref primo::codecs::StreamType::MPEG_PS) |
4168
4169 ### %Video Pin
4170 | Property | Value |
4171 | ---------------------------------------------------- | :-----------: |
4172 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG2_Video](@ref primo::codecs::StreamType::MPEG2_Video) |
4173 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 6000000 bps |
4174 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
4175 | [ColorFormat (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setColorFormat) | [YUV420](@ref primo::codecs::ColorFormat::YUV420) |
4176 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 720 |
4177 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 576 |
4178 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
4179 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
4180 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 25.0 |
4181 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
4182
4183 ### %Video Pin %Parameters
4184 | %Parameter | Value |
4185 | ---------------------------------------------------- | :-----------: |
4186 | [GOPSize](@ref primo::avblocks::Param::Encoder::Video::MPEG2::GOPSize) | 15 |
4187 | [FrameRateConverter::Use](@ref primo::avblocks::Param::Video::FrameRateConverter) | [On](@ref primo::avblocks::Use::On) |
4188
4189 ### %Audio Pin
4190 | Property | Value |
4191 | ---------------------------------------------------- | :-----------: |
4192 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
4193 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer2](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer2) |
4194 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 192000 bps |
4195 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
4196 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4197 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4198 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4199
4200 ### %Audio Pin %Parameters
4201 | %Parameter | Value |
4202 | ---------------------------------------------------- | :-----------: |
4203 | [ForceV1](@ref primo::avblocks::Param::Encoder::Audio::MPEG1) | TRUE |
4204 */
4205
4206 /**
4207 Video: MPEG-2, 29.97 fps, 720 x 480, aspect 4:3 <br />
4208 Audio: PCM, 16-bit, 48000 Hz, stereo <br />
4209 Container: PS (MPEG-2 Program Stream) <br />
4210 */
4211 static const char NTSC_4x3_PCM[] = "dvd.ntsc.4x3.pcm";
4212 /*!<
4213 ### Socket
4214 | Property | Value |
4215 | ---------------------------------------------------- | :-----------: |
4216 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_PS](@ref primo::codecs::StreamType::MPEG_PS) |
4217
4218 ### %Video Pin
4219 | Property | Value |
4220 | ---------------------------------------------------- | :-----------: |
4221 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG2_Video](@ref primo::codecs::StreamType::MPEG2_Video) |
4222 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 6000000 bps |
4223 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
4224 | [ColorFormat (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setColorFormat) | [YUV420](@ref primo::codecs::ColorFormat::YUV420) |
4225 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 720 |
4226 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
4227 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 4 |
4228 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 3 |
4229 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
4230 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
4231
4232 ### %Video Pin %Parameters
4233 | %Parameter | Value |
4234 | ---------------------------------------------------- | :-----------: |
4235 | [GOPSize](@ref primo::avblocks::Param::Encoder::Video::MPEG2::GOPSize) | 18 |
4236 | [FrameRateConverter::Use](@ref primo::avblocks::Param::Video::FrameRateConverter) | [On](@ref primo::avblocks::Use::On) |
4237
4238 ### %Audio Pin
4239 | Property | Value |
4240 | ---------------------------------------------------- | :-----------: |
4241 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [LPCM](@ref primo::codecs::StreamType::LPCM) |
4242 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
4243 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4244 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4245 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4246 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
4247 | [BytesPerFrame (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBytesPerFrame) | 4 |
4248 */
4249
4250 /**
4251 Video: MPEG-2, 29.97 fps, 720 x 480, aspect 4:3 <br />
4252 Audio: MPEG-1 Layer 2, 48000 Hz, stereo <br />
4253 Container: PS (MPEG-2 Program Stream) <br />
4254 */
4255 static const char NTSC_4x3_MP2[] = "dvd.ntsc.4x3.mp2";
4256 /*!<
4257 ### Socket
4258 | Property | Value |
4259 | ---------------------------------------------------- | :-----------: |
4260 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_PS](@ref primo::codecs::StreamType::MPEG_PS) |
4261
4262 ### %Video Pin
4263 | Property | Value |
4264 | ---------------------------------------------------- | :-----------: |
4265 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG2_Video](@ref primo::codecs::StreamType::MPEG2_Video) |
4266 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 6000000 bps |
4267 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
4268 | [ColorFormat (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setColorFormat) | [YUV420](@ref primo::codecs::ColorFormat::YUV420) |
4269 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 720 |
4270 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
4271 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 4 |
4272 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 3 |
4273 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
4274 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
4275
4276 ### %Video Pin %Parameters
4277 | %Parameter | Value |
4278 | ---------------------------------------------------- | :-----------: |
4279 | [GOPSize](@ref primo::avblocks::Param::Encoder::Video::MPEG2::GOPSize) | 18 |
4280 | [FrameRateConverter::Use](@ref primo::avblocks::Param::Video::FrameRateConverter) | [On](@ref primo::avblocks::Use::On) |
4281
4282 ### %Audio Pin
4283 | Property | Value |
4284 | ---------------------------------------------------- | :-----------: |
4285 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
4286 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer2](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer2) |
4287 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 192000 bps |
4288 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
4289 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4290 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4291 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4292
4293 ### %Audio Pin %Parameters
4294 | %Parameter | Value |
4295 | ---------------------------------------------------- | :-----------: |
4296 | [ForceV1](@ref primo::avblocks::Param::Encoder::Audio::MPEG1) | TRUE |
4297 */
4298
4299 /**
4300 Video: MPEG-2, 29.97 fps, 720 x 480, aspect 16:9 <br />
4301 Audio: PCM, 16-bit, 48000 Hz, stereo <br />
4302 Container: PS (MPEG-2 Program Stream) <br />
4303 */
4304 static const char NTSC_16x9_PCM[] = "dvd.ntsc.16x9.pcm";
4305 /*!<
4306 ### Socket
4307 | Property | Value |
4308 | ---------------------------------------------------- | :-----------: |
4309 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_PS](@ref primo::codecs::StreamType::MPEG_PS) |
4310
4311 ### %Video Pin
4312 | Property | Value |
4313 | ---------------------------------------------------- | :-----------: |
4314 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG2_Video](@ref primo::codecs::StreamType::MPEG2_Video) |
4315 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 6000000 bps |
4316 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
4317 | [ColorFormat (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setColorFormat) | [YUV420](@ref primo::codecs::ColorFormat::YUV420) |
4318 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 720 |
4319 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
4320 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
4321 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
4322 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
4323 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
4324
4325 ### %Video Pin %Parameters
4326 | %Parameter | Value |
4327 | ---------------------------------------------------- | :-----------: |
4328 | [GOPSize](@ref primo::avblocks::Param::Encoder::Video::MPEG2::GOPSize) | 18 |
4329 | [FrameRateConverter::Use](@ref primo::avblocks::Param::Video::FrameRateConverter) | [On](@ref primo::avblocks::Use::On) |
4330
4331 ### %Audio Pin
4332 | Property | Value |
4333 | ---------------------------------------------------- | :-----------: |
4334 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [LPCM](@ref primo::codecs::StreamType::LPCM) |
4335 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
4336 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4337 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4338 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4339 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
4340 | [BytesPerFrame (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBytesPerFrame) | 4 |
4341 */
4342
4343 /**
4344 Video: MPEG-2, 29.97 fps, 720 x 480, aspect 16:9 <br />
4345 Audio: MPEG-1 Layer 2, 48000 Hz, stereo <br />
4346 Container: PS (MPEG-2 Program Stream) <br />
4347 */
4348 static const char NTSC_16x9_MP2[] = "dvd.ntsc.16x9.mp2";
4349 /*!<
4350 ### Socket
4351 | Property | Value |
4352 | ---------------------------------------------------- | :-----------: |
4353 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_PS](@ref primo::codecs::StreamType::MPEG_PS) |
4354
4355 ### %Video Pin
4356 | Property | Value |
4357 | ---------------------------------------------------- | :-----------: |
4358 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG2_Video](@ref primo::codecs::StreamType::MPEG2_Video) |
4359 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 6000000 bps |
4360 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
4361 | [ColorFormat (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setColorFormat) | [YUV420](@ref primo::codecs::ColorFormat::YUV420) |
4362 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 720 |
4363 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
4364 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
4365 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
4366 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
4367 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
4368
4369 ### %Video Pin %Parameters
4370 | %Parameter | Value |
4371 | ---------------------------------------------------- | :-----------: |
4372 | [GOPSize](@ref primo::avblocks::Param::Encoder::Video::MPEG2::GOPSize) | 18 |
4373 | [FrameRateConverter::Use](@ref primo::avblocks::Param::Video::FrameRateConverter) | [On](@ref primo::avblocks::Use::On)
4374
4375 ### %Audio Pin
4376 | Property | Value |
4377 | ---------------------------------------------------- | :-----------: |
4378 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
4379 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer2](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer2) |
4380 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 192000 bps |
4381 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
4382 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4383 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4384 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4385
4386 ### %Audio Pin %Parameters
4387 | %Parameter | Value |
4388 | ---------------------------------------------------- | :-----------: |
4389 | [ForceV1](@ref primo::avblocks::Param::Encoder::Audio::MPEG1) | TRUE |
4390 */
4391 }
4392
4393 /** Presets for Video CD */
4394 namespace VCD
4395 {
4396 /**
4397 Video: MPEG-1, 25fps, 352 x 288, 1100 kbps<br/>
4398 Audio: MPEG-1 Layer 2, 44100Hz, stereo, 192 kbps<br/>
4399 Container: MPEG Program Stream<br/>
4400 Video CD (PAL)
4401 */
4402 static const char PAL[] = "vcd.pal";
4403 /*!<
4404 ### Socket
4405 | Property | Value |
4406 | ---------------------------------------------------- | :-----------: |
4407 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_PS](@ref primo::codecs::StreamType::MPEG_PS) |
4408 | [StreamSubType](@ref primo::codecs::StreamSubType) | [MPEG1_System](@ref primo::codecs::StreamSubType::MPEG1_System) |
4409
4410 ### %Video Pin
4411 | Property | Value |
4412 | ---------------------------------------------------- | :-----------: |
4413 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG1_Video](@ref primo::codecs::StreamType::MPEG1_Video) |
4414 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 1100000 bps |
4415 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 352 |
4416 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 288 |
4417 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 4 |
4418 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 3 |
4419 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 25 |
4420
4421 ### %Audio Pin
4422 | Property | Value |
4423 | ---------------------------------------------------- | :-----------: |
4424 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
4425 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer2](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer2) |
4426 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 192000 bps |
4427 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4428 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4429 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
4430 */
4431
4432 /**
4433 Video: MPEG-1, 29.97 fps, 352 x 240, 1100 kbps<br/>
4434 Audio: MPEG-1 Layer 2, 44100Hz, stereo, 192 kbps<br/>
4435 Container: MPEG Program Stream<br/>
4436 Video CD (NTSC)
4437 */
4438 static const char NTSC[] = "vcd.ntsc";
4439 /*!<
4440 ### Socket
4441 | Property | Value |
4442 | ---------------------------------------------------- | :-----------: |
4443 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_PS](@ref primo::codecs::StreamType::MPEG_PS) |
4444 | [StreamSubType](@ref primo::codecs::StreamSubType) | [MPEG1_System](@ref primo::codecs::StreamSubType::MPEG1_System) |
4445
4446 ### %Video Pin
4447 | Property | Value |
4448 | ---------------------------------------------------- | :-----------: |
4449 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG1_Video](@ref primo::codecs::StreamType::MPEG1_Video) |
4450 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 1100000 bps |
4451 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 352 |
4452 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 240 |
4453 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 4 |
4454 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 3 |
4455 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
4456
4457 ### %Audio Pin
4458 | Property | Value |
4459 | ---------------------------------------------------- | :-----------: |
4460 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
4461 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer2](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer2) |
4462 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 192000 bps |
4463 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4464 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4465 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 44100 Hz |
4466 */
4467 }
4468
4469 /** Presets for iPad devices */
4470 namespace iPad
4471 {
4472 /**
4473 Video: H.264, 30 fps, 768 x 576, 2500 kbps <br/>
4474 Audio: AAC, 48000 Hz, stereo, 128 kbps <br/>
4475 Container: MP4<br/>
4476 Standard Definition Video, optimized for iPad.
4477 */
4478 static const char H264_576p[] = "ipad.mp4.h264.576p";
4479 /*!<
4480 ### Socket
4481 | Property | Value |
4482 | ---------------------------------------------------- | :-----------: |
4483 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
4484
4485 ### %Video Pin
4486 | Property | Value |
4487 | ---------------------------------------------------- | :-----------: |
4488 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
4489 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
4490 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 2500000 bps |
4491 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 768 |
4492 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 576 |
4493 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
4494
4495 ### %Audio Pin
4496 | Property | Value |
4497 | ---------------------------------------------------- | :-----------: |
4498 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
4499 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
4500 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
4501 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4502 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4503 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4504 */
4505
4506 /**
4507 Video: H.264, 30 fps, 1280 x 720, 4000 kbps<br/>
4508 Audio: AAC, 48000 Hz, stereo, 128 kbps <br/>
4509 Container: MP4<br/>
4510 High Definition Video, optimized for iPad.
4511 */
4512 static const char H264_720p[] = "ipad.mp4.h264.720p";
4513 /*!<
4514 ### Socket
4515 | Property | Value |
4516 | ---------------------------------------------------- | :-----------: |
4517 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
4518
4519 ### %Video Pin
4520 | Property | Value |
4521 | ---------------------------------------------------- | :-----------: |
4522 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
4523 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
4524 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 4000000 bps |
4525 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
4526 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
4527 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
4528
4529 ### %Audio Pin
4530 | Property | Value |
4531 | ---------------------------------------------------- | :-----------: |
4532 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
4533 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
4534 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
4535 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4536 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4537 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4538 */
4539
4540 /**
4541 Video: MPEG-4 Visual, 30 fps, 640 x 480, 2500 kbps <br/>
4542 Audio: AAC, 48000 Hz, 128 kbps, stereo<br/>
4543 Container: MP4<br/>
4544 Near Standard Definition Video, optimized for iPad.
4545 */
4546 static const char MPEG4_480p[] = "ipad.mp4.mpeg4.480p";
4547 /*!<
4548 ### Socket
4549 | Property | Value |
4550 | ---------------------------------------------------- | :-----------: |
4551 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
4552
4553 ### %Video Pin
4554 | Property | Value |
4555 | ---------------------------------------------------- | :-----------: |
4556 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG4_Video](@ref primo::codecs::StreamType::MPEG4_Video) |
4557 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 2500000 bps |
4558 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 640 |
4559 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
4560 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
4561
4562 ### %Audio Pin
4563 | Property | Value |
4564 | ---------------------------------------------------- | :-----------: |
4565 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
4566 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
4567 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
4568 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4569 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4570 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4571 */
4572 }
4573
4574 /** Presets for AppleTV devices */
4575 namespace AppleTV
4576 {
4577 /**
4578 Video: H.264, 24 fps, 640 x 480, 1500 kbps <br/>
4579 Audio: AAC, 48000 Hz, stereo, 48 kbps <br/>
4580 Container: MP4 <br/>
4581 Optimized for Apple TV, 1st generation.
4582 */
4583 static const char H264_480p[] = "appletv.h264.480p";
4584 /*!<
4585 ### Socket
4586 | Property | Value |
4587 | ---------------------------------------------------- | :-----------: |
4588 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
4589
4590 ### %Video Pin
4591 | Property | Value |
4592 | ---------------------------------------------------- | :-----------: |
4593 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
4594 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
4595 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 1500000 bps |
4596 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 640 |
4597 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
4598 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 24 |
4599
4600 ### %Audio Pin
4601 | Property | Value |
4602 | ---------------------------------------------------- | :-----------: |
4603 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
4604 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
4605 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 48000 bps |
4606 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4607 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4608 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4609 */
4610
4611 /**
4612 Video: H.264, 24 fps, 1280 x 720, 4000 kbps <br/>
4613 Audio: AAC, 48000 Hz, stereo, 48 kbps<br/>
4614 Container: MP4<br/>
4615 Optimized for Apple TV, 2nd generation.
4616 */
4617 static const char H264_720p[] = "appletv.h264.720p";
4618 /*!<
4619 ### Socket
4620 | Property | Value |
4621 | ---------------------------------------------------- | :-----------: |
4622 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
4623
4624 ### %Video Pin
4625 | Property | Value |
4626 | ---------------------------------------------------- | :-----------: |
4627 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
4628 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
4629 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 4000000 bps |
4630 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
4631 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
4632 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 24 |
4633
4634 ### %Audio Pin
4635 | Property | Value |
4636 | ---------------------------------------------------- | :-----------: |
4637 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
4638 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
4639 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 48000 bps |
4640 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4641 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4642 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4643 */
4644
4645 /**
4646 Video: MPEG-4 Visual, 24 fps, 640 x 480, 2000 kbps <br/>
4647 Audio: AAC, 48000 Hz, stereo, 48 kbps<br/>
4648 Container: MP4<br/>
4649 Optimized for Apple TV, 1st generation.
4650 */
4651 static const char MPEG4_480p[] = "appletv.mpeg4.480p";
4652 /*!<
4653 ### Socket
4654 | Property | Value |
4655 | ---------------------------------------------------- | :-----------: |
4656 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
4657
4658 ### %Video Pin
4659 | Property | Value |
4660 | ---------------------------------------------------- | :-----------: |
4661 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG4_Video](@ref primo::codecs::StreamType::MPEG4_Video) |
4662 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 2000000 bps |
4663 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 640 |
4664 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
4665 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 24 |
4666
4667 ### %Audio Pin
4668 | Property | Value |
4669 | ---------------------------------------------------- | :-----------: |
4670 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
4671 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
4672 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 48000 bps |
4673 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4674 */
4675
4676 /**
4677 Video: H.264, 30 fps, 1280x720, bitrate 5000 kbps, profile Main, aspect 16:9, Level 3.1<br />
4678 Audio: AAC, 48000 Hz, stereo, bitrate 160 kbps<br />
4679 Container: MP4<br />
4680 */
4681 static const char AppleTV2G_MP4_H264_720p[] = "appleTV2g.mp4.h264.720p";
4682 /*!<
4683 ### Socket
4684 | Property | Value |
4685 | ---------------------------------------------------- | :-----------: |
4686 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
4687
4688 ### %Video Pin
4689 | Property | Value |
4690 | ---------------------------------------------------- | :-----------: |
4691 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
4692 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
4693 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 5000000 bps |
4694 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
4695 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
4696 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
4697 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
4698 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
4699 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
4700
4701 ### %Video Pin %Parameters
4702 | %Parameter | Value |
4703 | ---------------------------------------------------- | :-----------: |
4704 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Main](@ref primo::codecs::H264Profile::Main) |
4705 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
4706 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
4707 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
4708 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
4709 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
4710 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
4711 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.1 |
4712 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
4713
4714 ### %Audio Pin
4715 | Property | Value |
4716 | ---------------------------------------------------- | :-----------: |
4717 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
4718 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
4719 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 160000 bps |
4720 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4721 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4722 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4723 */
4724
4725 /**
4726 Video: H.264, 30 fps, 1920x1080, bitrate 5000 kbps, profile High, aspect 16:9, Level 4<br />
4727 Audio: AAC, 48000 Hz, stereo, bitrate 160 kbps<br />
4728 Container: MP4<br />
4729 */
4730 static const char AppleTV3G_MP4_H264_1080p[] = "appleTV3g.mp4.h264.1080p";
4731 /*!<
4732 ### Socket
4733 | Property | Value |
4734 | ---------------------------------------------------- | :-----------: |
4735 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
4736
4737 ### %Video Pin
4738 | Property | Value |
4739 | ---------------------------------------------------- | :-----------: |
4740 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
4741 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
4742 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 5000000 bps |
4743 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1920 |
4744 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
4745 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
4746 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
4747 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
4748 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
4749
4750 ### %Video Pin %Parameters
4751 | %Parameter | Value |
4752 | ---------------------------------------------------- | :-----------: |
4753 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [High](@ref primo::codecs::H264Profile::High) |
4754 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
4755 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
4756 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
4757 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | TRUE |
4758 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
4759 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
4760 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 4.0 |
4761 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
4762
4763 ### %Audio Pin
4764 | Property | Value |
4765 | ---------------------------------------------------- | :-----------: |
4766 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
4767 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
4768 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 160000 bps |
4769 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4770 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4771 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4772 */
4773 }
4774
4775 /** Presets for iPhone devices */
4776 namespace iPhone
4777 {
4778 /**
4779 Video: H.264, 25 fps, 640 x 480, 1000 kbps<br/>
4780 Audio: AAC, 48000 Hz, stereo, 96 kbps<br/>
4781 Container: MP4<br/>
4782 Optimized for iPhone.
4783 */
4784 static const char H264_480p[] = "iphone.mp4.h264.480p";
4785 /*!<
4786 ### Socket
4787 | Property | Value |
4788 | ---------------------------------------------------- | :-----------: |
4789 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
4790
4791 ### %Video Pin
4792 | Property | Value |
4793 | ---------------------------------------------------- | :-----------: |
4794 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
4795 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
4796 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 1000000 bps |
4797 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 640 |
4798 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
4799 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 25 |
4800
4801 ### %Audio Pin
4802 | Property | Value |
4803 | ---------------------------------------------------- | :-----------: |
4804 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
4805 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
4806 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 96000 bps |
4807 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4808 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4809 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4810 */
4811
4812 /**
4813 Video: MPEG-4 Visual, 25 fps, 640 x 480, 2000 kbps<br/>
4814 Audio: AAC, 48000 Hz, stereo, 64 kbps<br/>
4815 Container: MP4<br/>
4816 Optimized for iPhone.
4817 */
4818 static const char MPEG4_480p[] = "iphone.mp4.mpeg4.480p";
4819 /*!<
4820 ### Socket
4821 | Property | Value |
4822 | ---------------------------------------------------- | :-----------: |
4823 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
4824
4825 ### %Video Pin
4826 | Property | Value |
4827 | ---------------------------------------------------- | :-----------: |
4828 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG4_Video](@ref primo::codecs::StreamType::MPEG4_Video) |
4829 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 2000000 bps |
4830 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 640 |
4831 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
4832 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 25 |
4833
4834 ### %Audio Pin
4835 | Property | Value |
4836 | ---------------------------------------------------- | :-----------: |
4837 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
4838 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
4839 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 64000 bps |
4840 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4841 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4842 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4843 */
4844
4845 /**
4846 Video: H.264, 30 fps, 1280x720, bitrate 2200 kbps, profile Main, aspect 16:9, Level 3.1<br />
4847 Audio: AAC, 48000 Hz, stereo, bitrate 160 kbps<br />
4848 Container: MP4<br />
4849 */
4850 static const char iPhone4_MP4_H264_720p[] = "iPhone4.mp4.h264.720p";
4851 /*!<
4852 ### Socket
4853 | Property | Value |
4854 | ---------------------------------------------------- | :-----------: |
4855 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
4856
4857 ### %Video Pin
4858 | Property | Value |
4859 | ---------------------------------------------------- | :-----------: |
4860 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
4861 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
4862 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 2200000 bps |
4863 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
4864 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
4865 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
4866 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
4867 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
4868 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
4869
4870 ### %Video Pin %Parameters
4871 | %Parameter | Value |
4872 | ---------------------------------------------------- | :-----------: |
4873 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Main](@ref primo::codecs::H264Profile::Main) |
4874 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
4875 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
4876 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
4877 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
4878 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
4879 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
4880 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.1 |
4881 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
4882
4883 ### %Audio Pin
4884 | Property | Value |
4885 | ---------------------------------------------------- | :-----------: |
4886 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
4887 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
4888 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 160000 bps |
4889 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4890 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4891 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4892 */
4893
4894 /**
4895 Video: H.264, 30 fps, 1920x1080, bitrate 5000 kbps, profile High, aspect 16:9, Level 4.1<br />
4896 Audio: AAC, 48000 Hz, stereo, bitrate 160 kbps<br />
4897 Container: MP4<br />
4898 */
4899 static const char iPhone4S_MP4_H264_1080p[] = "iPhone4s.mp4.h264.1080p";
4900 /*!<
4901 ### Socket
4902 | Property | Value |
4903 | ---------------------------------------------------- | :-----------: |
4904 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
4905
4906 ### %Video Pin
4907 | Property | Value |
4908 | ---------------------------------------------------- | :-----------: |
4909 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
4910 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
4911 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 5000000 bps |
4912 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1920 |
4913 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
4914 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
4915 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
4916 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
4917 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
4918
4919 ### %Video Pin %Parameters
4920 | %Parameter | Value |
4921 | ---------------------------------------------------- | :-----------: |
4922 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [High](@ref primo::codecs::H264Profile::High) |
4923 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
4924 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
4925 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
4926 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | TRUE |
4927 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
4928 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
4929 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 4.1 |
4930 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
4931
4932 ### %Audio Pin
4933 | Property | Value |
4934 | ---------------------------------------------------- | :-----------: |
4935 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
4936 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
4937 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 160000 bps |
4938 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4939 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4940 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4941 */
4942
4943 /**
4944 Video: H.264, 30 fps, 640x480, bitrate 600 kbps, profile Baseline, aspect 4:3, Level 3<br />
4945 Audio: AAC, 48000 Hz, stereo, bitrate 160 kbps<br />
4946 Container: MP4<br />
4947 */
4948 static const char iPhone3GS_MP4_H264_480[] = "iPhone3gs.mp4.h264.480p";
4949 /*!<
4950 ### Socket
4951 | Property | Value |
4952 | ---------------------------------------------------- | :-----------: |
4953 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
4954
4955 ### %Video Pin
4956 | Property | Value |
4957 | ---------------------------------------------------- | :-----------: |
4958 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
4959 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
4960 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 600000 bps |
4961 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 640 |
4962 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
4963 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 4 |
4964 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 3 |
4965 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
4966 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
4967
4968 ### %Video Pin %Parameters
4969 | %Parameter | Value |
4970 | ---------------------------------------------------- | :-----------: |
4971 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
4972 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
4973 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
4974 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
4975 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
4976 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
4977 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
4978 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.0 |
4979 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
4980
4981 ### %Audio Pin
4982 | Property | Value |
4983 | ---------------------------------------------------- | :-----------: |
4984 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
4985 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
4986 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 160000 bps |
4987 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
4988 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
4989 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
4990 */
4991 }
4992
4993 /** Preset for iPod devices */
4994 namespace iPod
4995 {
4996 /**
4997 Video: H.264 Baseline Profile, 25 fps, 320 x 240, 300 kbps<br/>
4998 Audio: AAC, 48000 Hz, stereo, 64 kbps<br/>
4999 Container: MP4<br/>
5000 Optimized for iPod.
5001 */
5002 static const char H264_240p[] = "ipod.mp4.h264.240p";
5003 /*!<
5004 ### Socket
5005 | Property | Value |
5006 | ---------------------------------------------------- | :-----------: |
5007 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
5008
5009 ### %Video Pin
5010 | Property | Value |
5011 | ---------------------------------------------------- | :-----------: |
5012 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5013 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
5014 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 300000 bps |
5015 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 320 |
5016 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 240 |
5017 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 25 |
5018
5019 ### %Video Pin %Parameters
5020 | %Parameter | Value |
5021 | ---------------------------------------------------- | :-----------: |
5022 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
5023 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
5024 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
5025 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 1 |
5026 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5027 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 25 |
5028 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5029 | [AccessUnitDelimiters](@ref primo::avblocks::Param::Encoder::Video::H264::AccessUnitDelimiters) | TRUE |
5030
5031 ### %Audio Pin
5032 | Property | Value |
5033 | ---------------------------------------------------- | :-----------: |
5034 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5035 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
5036 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 64000 bps |
5037 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5038 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5039 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5040 */
5041
5042 /**
5043 Video: MPEG-4 Visual, 25 fps, 320 x 240, 600 kbps<br/>
5044 Audio: AAC, 48000 Hz, stereo, 64 kbps<br/>
5045 Container: MP4<br/>
5046 Optimized for iPod.
5047 */
5048 static const char MPEG4_240p[] = "ipod.mp4.mpeg4.240p";
5049 /*!<
5050 ### Socket
5051 | Property | Value |
5052 | ---------------------------------------------------- | :-----------: |
5053 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
5054
5055 ### %Video Pin
5056 | Property | Value |
5057 | ---------------------------------------------------- | :-----------: |
5058 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG4_Video](@ref primo::codecs::StreamType::MPEG4_Video) |
5059 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 600000 bps |
5060 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 320 |
5061 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 240 |
5062 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 25 |
5063
5064 ### %Audio Pin
5065 | Property | Value |
5066 | ---------------------------------------------------- | :-----------: |
5067 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5068 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
5069 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 64000 bps |
5070 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5071 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5072 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5073 */
5074
5075 /**
5076 Video: H.264, 30 fps, 640x480, bitrate 1500 kbps, profile Baseline, aspect 4:3, Level 3<br />
5077 Audio: AAC, 48000 Hz, stereo, bitrate 160 kbps<br />
5078 Container: MP4<br />
5079 */
5080 static const char iPodTouch_MP4_H264_480p[] = "iPodTouch.mp4.h264.480p";
5081 /*!<
5082 ### Socket
5083 | Property | Value |
5084 | ---------------------------------------------------- | :-----------: |
5085 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
5086
5087 ### %Video Pin
5088 | Property | Value |
5089 | ---------------------------------------------------- | :-----------: |
5090 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5091 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
5092 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 1500000 bps |
5093 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 640 |
5094 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
5095 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 4 |
5096 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 3 |
5097 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
5098 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
5099
5100 ### %Video Pin %Parameters
5101 | %Parameter | Value |
5102 | ---------------------------------------------------- | :-----------: |
5103 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
5104 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
5105 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
5106 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
5107 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5108 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
5109 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5110 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.0 |
5111 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
5112
5113 ### %Audio Pin
5114 | Property | Value |
5115 | ---------------------------------------------------- | :-----------: |
5116 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5117 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
5118 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 160000 bps |
5119 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5120 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5121 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5122 */
5123 }
5124
5125 /** Apple HTTP Live Streaming Presets*/
5126 namespace AppleLiveStreaming
5127 {
5128 /**
5129 Apple HTTP Live Streaming: 11128 Kbps <br />
5130 Video: H.264, 1920x1080, bitrate 11000 kbps, 29.97 fps, aspect ratio 16:9, profile High, Level 4.0, MaxReferenceFrame 3 <br />
5131 Audio: AAC, 48000 Hz, stereo, bitrate 128 kbps <br />
5132 Container: TS (MPEG-2 Transport Stream)<br />
5133 */
5134 static const char WiFi_Wide_H264_1920x1080_30p_11000K_AAC_128K[] = "wifi.wide.h264.1920x1080.30p.11000k.aac.128k";
5135 /*!<
5136 ### Socket
5137 | Property | Value |
5138 | ---------------------------------------------------- | :-----------: |
5139 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
5140
5141 ### %Video Pin
5142 | Property | Value |
5143 | ---------------------------------------------------- | :-----------: |
5144 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5145 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 11000000 bps |
5146 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1920 |
5147 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
5148 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
5149 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
5150 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
5151 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
5152
5153 ### %Video Pin %Parameters
5154 | %Parameter | Value |
5155 | ---------------------------------------------------- | :-----------: |
5156 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [High](@ref primo::codecs::H264Profile::High) |
5157 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
5158 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
5159 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
5160 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | TRUE |
5161 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
5162 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5163 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 4.0 |
5164 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
5165
5166 ### %Audio Pin
5167 | Property | Value |
5168 | ---------------------------------------------------- | :-----------: |
5169 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5170 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
5171 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5172 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5173 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5174 */
5175
5176 /**
5177 Apple HTTP Live Streaming: 4628 Kbps <br />
5178 Video: H.264, 1280x720, bitrate 4500 kbps, 29.97 fps, aspect ratio 16:9, profile Main, Level 3.1, MaxReferenceFrame 3 <br />
5179 Audio: AAC, 48000 Hz, stereo, bitrate 128 kbps <br />
5180 Container: TS (MPEG-2 Transport Stream)<br />
5181 */
5182 static const char WiFi_Wide_H264_1280x720_30p_4500K_AAC_128K[] = "wifi.wide.h264.1280x720.30p.4500k.aac.128k";
5183 /*!<
5184 ### Socket
5185 | Property | Value |
5186 | ---------------------------------------------------- | :-----------: |
5187 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
5188
5189 ### %Video Pin
5190 | Property | Value |
5191 | ---------------------------------------------------- | :-----------: |
5192 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5193 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 4500000 bps |
5194 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
5195 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
5196 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
5197 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
5198 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
5199 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
5200
5201 ### %Video Pin %Parameters
5202 | %Parameter | Value |
5203 | ---------------------------------------------------- | :-----------: |
5204 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Main](@ref primo::codecs::H264Profile::Main) |
5205 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
5206 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
5207 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
5208 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5209 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
5210 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5211 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.1 |
5212 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
5213
5214 ### %Audio Pin
5215 | Property | Value |
5216 | ---------------------------------------------------- | :-----------: |
5217 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5218 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
5219 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5220 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5221 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5222 */
5223
5224 /**
5225 Apple HTTP Live Streaming: 2628 Kbps <br />
5226 Video: H.264, 1280x720, bitrate 2500 kbps, 29.97 fps, aspect ratio 16:9, profile Main, Level 3.1, MaxReferenceFrame 3 <br />
5227 Audio: AAC, 48000 Hz, stereo, bitrate 128 kbps <br />
5228 Container: TS (MPEG-2 Transport Stream)<br />
5229 */
5230 static const char WiFi_Wide_H264_1280x720_30p_2500K_AAC_128K[] = "wifi.wide.h264.1280x720.30p.2500k.aac.128k";
5231 /*!<
5232 ### Socket
5233 | Property | Value |
5234 | ---------------------------------------------------- | :-----------: |
5235 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
5236
5237 ### %Video Pin
5238 | Property | Value |
5239 | ---------------------------------------------------- | :-----------: |
5240 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5241 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 2500000 bps |
5242 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
5243 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
5244 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
5245 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
5246 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
5247 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
5248
5249 ### %Video Pin %Parameters
5250 | %Parameter | Value |
5251 | ---------------------------------------------------- | :-----------: |
5252 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Main](@ref primo::codecs::H264Profile::Main) |
5253 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
5254 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
5255 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
5256 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5257 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
5258 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5259 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.1 |
5260 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
5261
5262 ### %Audio Pin
5263 | Property | Value |
5264 | ---------------------------------------------------- | :-----------: |
5265 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5266 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
5267 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5268 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5269 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5270 */
5271
5272 /**
5273 Apple HTTP Live Streaming: 1928 Kbps <br />
5274 Video: H.264, 960x540, bitrate 1800 kbps, 29.97 fps, aspect ratio 16:9, profile Main, Level 3.1, MaxReferenceFrame 3 <br />
5275 Audio: AAC, 48000 Hz, stereo, bitrate 128 kbps <br />
5276 Container: TS (MPEG-2 Transport Stream)<br />
5277 */
5278 static const char WiFi_Wide_H264_960x540_30p_1800K_AAC_128K[] = "wifi.wide.h264.960x540.30p.1800k.aac.128k";
5279 /*!<
5280 ### Socket
5281 | Property | Value |
5282 | ---------------------------------------------------- | :-----------: |
5283 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
5284
5285 ### %Video Pin
5286 | Property | Value |
5287 | ---------------------------------------------------- | :-----------: |
5288 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5289 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 1800000 bps |
5290 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 960 |
5291 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 540 |
5292 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
5293 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
5294 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
5295 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
5296
5297 ### %Video Pin %Parameters
5298 | %Parameter | Value |
5299 | ---------------------------------------------------- | :-----------: |
5300 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Main](@ref primo::codecs::H264Profile::Main) |
5301 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
5302 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
5303 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
5304 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5305 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
5306 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5307 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.1 |
5308 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
5309
5310 ### %Audio Pin
5311 | Property | Value |
5312 | ---------------------------------------------------- | :-----------: |
5313 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5314 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
5315 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5316 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5317 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5318 */
5319
5320 /**
5321 Apple HTTP Live Streaming: 1296 Kbps <br />
5322 Video: H.264, 640x360, bitrate 1200 kbps, 29.97 fps, aspect ratio 16:9, profile Main, Level 3.1, MaxReferenceFrame 3 <br />
5323 Audio: AAC, 48000 Hz, stereo, bitrate 96 kbps <br />
5324 Container: TS (MPEG-2 Transport Stream)<br />
5325 */
5326 static const char WiFi_Wide_H264_640x360_30p_1200K_AAC_96K[] = "wifi.wide.h264.640x360.30p.1200k.aac.96k";
5327 /*!<
5328 ### Socket
5329 | Property | Value |
5330 | ---------------------------------------------------- | :-----------: |
5331 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
5332
5333 ### %Video Pin
5334 | Property | Value |
5335 | ---------------------------------------------------- | :-----------: |
5336 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5337 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 1200000 bps |
5338 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 640 |
5339 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 360 |
5340 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
5341 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
5342 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
5343 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
5344
5345 ### %Video Pin %Parameters
5346 | %Parameter | Value |
5347 | ---------------------------------------------------- | :-----------: |
5348 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Main](@ref primo::codecs::H264Profile::Main) |
5349 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
5350 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
5351 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
5352 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5353 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
5354 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5355 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.1 |
5356 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
5357
5358 ### %Audio Pin
5359 | Property | Value |
5360 | ---------------------------------------------------- | :-----------: |
5361 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5362 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 96000 bps |
5363 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5364 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5365 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5366 */
5367
5368 /**
5369 Apple HTTP Live Streaming: 696 Kbps <br />
5370 Video: H.264, 640x360, bitrate 600 kbps, 29.97 fps, aspect ratio 16:9, profile Baseline, Level 3.0, MaxReferenceFrame 1 <br />
5371 Audio: AAC, 48000 Hz, stereo, bitrate 96 kbps <br />
5372 Container: TS (MPEG-2 Transport Stream)<br />
5373 */
5374 static const char WiFi_Wide_H264_640x360_30p_600K_AAC_96K[] = "wifi.wide.h264.640x360.30p.600k.aac.96k";
5375 /*!<
5376 ### Socket
5377 | Property | Value |
5378 | ---------------------------------------------------- | :-----------: |
5379 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
5380
5381 ### %Video Pin
5382 | Property | Value |
5383 | ---------------------------------------------------- | :-----------: |
5384 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5385 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 600000 bps |
5386 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 640 |
5387 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 360 |
5388 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
5389 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
5390 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
5391 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
5392
5393 ### %Video Pin %Parameters
5394 | %Parameter | Value |
5395 | ---------------------------------------------------- | :-----------: |
5396 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
5397 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
5398 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
5399 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 1 |
5400 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5401 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
5402 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5403 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.0 |
5404 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
5405
5406 ### %Audio Pin
5407 | Property | Value |
5408 | ---------------------------------------------------- | :-----------: |
5409 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5410 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 96000 bps |
5411 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5412 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5413 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5414 */
5415
5416 /**
5417 Apple HTTP Live Streaming: 4628 Kbps <br />
5418 Video: H.264, 1280x960, bitrate 4500 kbps, 29.97 fps, aspect ratio 4:3, profile Main, Level 3.1, MaxReferenceFrame 3 <br />
5419 Audio: AAC, 48000 Hz, stereo, bitrate 128 kbps <br />
5420 Container: TS (MPEG-2 Transport Stream)<br />
5421 */
5422 static const char WiFi_H264_1280x960_30p_4500K_AAC_128K[] = "wifi.h264.1280x960.30p.4500k.aac.128k";
5423 /*!<
5424 ### Socket
5425 | Property | Value |
5426 | ---------------------------------------------------- | :-----------: |
5427 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
5428
5429 ### %Video Pin
5430 | Property | Value |
5431 | ---------------------------------------------------- | :-----------: |
5432 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5433 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 4500000 bps |
5434 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
5435 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 960 |
5436 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 4 |
5437 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 3 |
5438 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
5439 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
5440
5441 ### %Video Pin %Parameters
5442 | %Parameter | Value |
5443 | ---------------------------------------------------- | :-----------: |
5444 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Main](@ref primo::codecs::H264Profile::Main) |
5445 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
5446 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
5447 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
5448 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5449 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
5450 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5451 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.1 |
5452 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
5453
5454 ### %Audio Pin
5455 | Property | Value |
5456 | ---------------------------------------------------- | :-----------: |
5457 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5458 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
5459 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5460 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5461 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5462 */
5463
5464 /**
5465 Apple HTTP Live Streaming: 2628 Kbps <br />
5466 Video: H.264, 960x720, bitrate 2500 kbps, 29.97 fps, aspect ratio 4:3, profile Main, Level 3.1, MaxReferenceFrame 3 <br />
5467 Audio: AAC, 48000 Hz, stereo, bitrate 128 kbps <br />
5468 Container: TS (MPEG-2 Transport Stream)<br />
5469 */
5470 static const char WiFi_H264_960x720_30p_2500K_AAC_128K[] = "wifi.h264.960x720.30p.2500k.aac.128k";
5471 /*!<
5472 ### Socket
5473 | Property | Value |
5474 | ---------------------------------------------------- | :-----------: |
5475 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
5476
5477 ### %Video Pin
5478 | Property | Value |
5479 | ---------------------------------------------------- | :-----------: |
5480 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5481 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 2500000 bps |
5482 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 960 |
5483 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
5484 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 4 |
5485 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 3 |
5486 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
5487 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
5488
5489 ### %Video Pin %Parameters
5490 | %Parameter | Value |
5491 | ---------------------------------------------------- | :-----------: |
5492 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Main](@ref primo::codecs::H264Profile::Main) |
5493 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
5494 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
5495 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
5496 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5497 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
5498 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5499 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.1 |
5500 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
5501
5502 ### %Audio Pin
5503 | Property | Value |
5504 | ---------------------------------------------------- | :-----------: |
5505 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5506 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
5507 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5508 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5509 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5510 */
5511
5512 /**
5513 Apple HTTP Live Streaming: 1296 Kbps <br />
5514 Video: H.264, 960x720, bitrate 1200 kbps, 29.97 fps, aspect ratio 4:3, profile Main, Level 3.1, MaxReferenceFrame 3 <br />
5515 Audio: AAC, 48000 Hz, stereo, bitrate 96 kbps <br />
5516 Container: TS (MPEG-2 Transport Stream)<br />
5517 */
5518 static const char WiFi_H264_960x720_30p_1200K_AAC_96K[] = "wifi.h264.960x720.30p.1200k.aac.96k";
5519 /*!<
5520 ### Socket
5521 | Property | Value |
5522 | ---------------------------------------------------- | :-----------: |
5523 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
5524
5525 ### %Video Pin
5526 | Property | Value |
5527 | ---------------------------------------------------- | :-----------: |
5528 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5529 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 2500000 bps |
5530 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 960 |
5531 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
5532 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 4 |
5533 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 3 |
5534 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
5535 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
5536
5537 ### %Video Pin %Parameters
5538 | %Parameter | Value |
5539 | ---------------------------------------------------- | :-----------: |
5540 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Main](@ref primo::codecs::H264Profile::Main) |
5541 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
5542 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
5543 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
5544 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5545 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
5546 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5547 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.1 |
5548 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
5549
5550 ### %Audio Pin
5551 | Property | Value |
5552 | ---------------------------------------------------- | :-----------: |
5553 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5554 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
5555 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5556 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5557 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5558 */
5559
5560 /**
5561 Apple Live Streaming: 1296 Kbps <br />
5562 Video: H.264, 640x480, bitrate 1200 kbps, 29.97 fps, aspect ratio 4:3, profile Main, Level 3.1, MaxReferenceFrame 3 <br />
5563 Audio: AAC, 48000 Hz, stereo, bitrate 96 kbps <br />
5564 Container: TS (MPEG-2 Transport Stream)<br />
5565 */
5566 static const char WiFi_H264_640x480_30p_1200K_AAC_96K[] = "wifi.h264.640x480.30p.1200k.aac.96k";
5567 /*!<
5568 ### Socket
5569 | Property | Value |
5570 | ---------------------------------------------------- | :-----------: |
5571 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
5572
5573 ### %Video Pin
5574 | Property | Value |
5575 | ---------------------------------------------------- | :-----------: |
5576 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5577 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 1200000 bps |
5578 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 640 |
5579 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
5580 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 4 |
5581 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 3 |
5582 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
5583 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
5584
5585 ### %Video Pin %Parameters
5586 | %Parameter | Value |
5587 | ---------------------------------------------------- | :-----------: |
5588 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Main](@ref primo::codecs::H264Profile::Main) |
5589 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
5590 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
5591 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
5592 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5593 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
5594 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5595 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.1 |
5596 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
5597
5598 ### %Audio Pin
5599 | Property | Value |
5600 | ---------------------------------------------------- | :-----------: |
5601 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5602 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 96000 bps |
5603 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5604 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5605 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5606 */
5607
5608 /**
5609 Apple HTTP Live Streaming: 896 Kbps <br />
5610 Video: H.264, 640x480, bitrate 800 kbps, 29.97 fps, aspect ratio 4:3, profile Main, Level 3.1, MaxReferenceFrame 3 <br />
5611 Audio: AAC, 48000 Hz, stereo, bitrate 96 kbps <br />
5612 Container: MPEG-2 Transport Stream
5613 */
5614 static const char WiFi_H264_640x480_30p_800K_AAC_96K[] = "wifi.h264.640x480.30p.800k.aac.96k";
5615 /*!<
5616 ### Socket
5617 | Property | Value |
5618 | ---------------------------------------------------- | :-----------: |
5619 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
5620
5621 ### %Video Pin
5622 | Property | Value |
5623 | ---------------------------------------------------- | :-----------: |
5624 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5625 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 800000 bps |
5626 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 640 |
5627 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
5628 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 4 |
5629 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 3 |
5630 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
5631 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
5632
5633 ### %Video Pin %Parameters
5634 | %Parameter | Value |
5635 | ---------------------------------------------------- | :-----------: |
5636 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Main](@ref primo::codecs::H264Profile::Main) |
5637 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
5638 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 2 |
5639 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 3 |
5640 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5641 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
5642 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5643 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.1 |
5644 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
5645
5646 ### %Audio Pin
5647 | Property | Value |
5648 | ---------------------------------------------------- | :-----------: |
5649 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5650 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 96000 bps |
5651 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5652 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5653 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5654 */
5655
5656 /**
5657 Apple HTTP Live Streaming: 696 Kbps <br />
5658 Video: H.264, 640x480, bitrate 600 kbps, 29.97 fps, aspect ratio 4:3, profile Baseline, Level 3.0, MaxReferenceFrame 1 <br />
5659 Audio: AAC, 48000 Hz, stereo, bitrate 96 kbps <br />
5660 Container: TS (MPEG-2 Transport Stream)<br />
5661 */
5662 static const char WiFi_H264_640x480_30p_600K_AAC_96K[] = "wifi.h264.640x480.30p.600k.aac.96k";
5663 /*!<
5664 ### Socket
5665 | Property | Value |
5666 | ---------------------------------------------------- | :-----------: |
5667 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
5668
5669 ### %Video Pin
5670 | Property | Value |
5671 | ---------------------------------------------------- | :-----------: |
5672 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5673 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 600000 bps |
5674 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 640 |
5675 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 480 |
5676 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 4 |
5677 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 3 |
5678 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
5679 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
5680
5681 ### %Video Pin %Parameters
5682 | %Parameter | Value |
5683 | ---------------------------------------------------- | :-----------: |
5684 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
5685 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
5686 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
5687 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 1 |
5688 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5689 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
5690 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5691 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.0 |
5692 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
5693
5694 ### %Audio Pin
5695 | Property | Value |
5696 | ---------------------------------------------------- | :-----------: |
5697 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5698 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 96000 bps |
5699 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5700 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5701 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5702 */
5703
5704 /**
5705 Apple HTTP Live Streaming: 440 Kbps <br />
5706 Video: H264, 400x224, bitrate 400 kbps, 29.97 fps, aspect ratio 16:9, profile Baseline, Level 3.0, MaxReferenceFrame 1 <br />
5707 Audio: AAC, 22050 Hz, stereo, bitrate 40 kbps <br />
5708 Container: TS (MPEG-2 Transport Stream)<br />
5709 */
5710 static const char Cellular_Wide_H264_400x224_30p_400K_AAC_40K[] = "cellular.wide.h264.400x224.30p.400k.aac.40k";
5711 /*!<
5712 ### Socket
5713 | Property | Value |
5714 | ---------------------------------------------------- | :-----------: |
5715 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
5716
5717 ### %Video Pin
5718 | Property | Value |
5719 | ---------------------------------------------------- | :-----------: |
5720 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5721 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 400000 bps |
5722 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 400 |
5723 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 224 |
5724 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
5725 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
5726 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
5727 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
5728
5729 ### %Video Pin %Parameters
5730 | %Parameter | Value |
5731 | ---------------------------------------------------- | :-----------: |
5732 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
5733 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
5734 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
5735 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 1 |
5736 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5737 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
5738 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5739 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.0 |
5740 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
5741
5742 ### %Audio Pin
5743 | Property | Value |
5744 | ---------------------------------------------------- | :-----------: |
5745 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5746 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 40000 bps |
5747 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5748 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5749 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 22050 Hz |
5750 */
5751
5752 /**
5753 Apple HTTP Live Streaming: 440 Kbps <br />
5754 Video: H264, 400x300, bitrate 400 kbps, 29.97 fps, aspect ratio 4:3, profile Baseline, Level 3.0, MaxReferenceFrame 1 <br />
5755 Audio: AAC, 22050 Hz, stereo, bitrate 40 kbps <br />
5756 Container: TS (MPEG-2 Transport Stream)<br />
5757 */
5758 static const char Cellular_H264_400x300_30p_400K_AAC_40K[] = "cellular.h264.400x300.30p.400k.aac.40k";
5759 /*!<
5760 ### Socket
5761 | Property | Value |
5762 | ---------------------------------------------------- | :-----------: |
5763 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
5764
5765 ### %Video Pin
5766 | Property | Value |
5767 | ---------------------------------------------------- | :-----------: |
5768 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5769 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 400000 bps |
5770 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 400 |
5771 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 300 |
5772 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 4 |
5773 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 3 |
5774 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
5775 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
5776
5777 ### %Video Pin %Parameters
5778 | %Parameter | Value |
5779 | ---------------------------------------------------- | :-----------: |
5780 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
5781 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
5782 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
5783 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 1 |
5784 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5785 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 90 |
5786 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5787 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 3.0 |
5788 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
5789
5790 ### %Audio Pin
5791 | Property | Value |
5792 | ---------------------------------------------------- | :-----------: |
5793 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5794 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 40000 bps |
5795 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5796 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5797 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 22050 Hz |
5798 */
5799
5800 /**
5801 Alias for \see primo::avblocks::Preset::Video::AppleLiveStreaming::WiFi_H264_640x480_30p_1200K_AAC_96K
5802 */
5803 const char* const H264_480p = Preset::Video::AppleLiveStreaming::WiFi_H264_640x480_30p_1200K_AAC_96K;
5804
5805 /**
5806 Alias for \see Preset::Video::AppleLiveStreaming::WiFi_Wide_H264_1280x720_30p_4500K_AAC_128K
5807 */
5808 const char* const H264_720p = Preset::Video::AppleLiveStreaming::WiFi_Wide_H264_1280x720_30p_4500K_AAC_128K;
5809 }
5810
5811 /** Presets for Android phones */
5812 namespace AndroidPhone
5813 {
5814 /**
5815 Video: H.264 Baseline Profile, 30 fps, 480 x 360, 800 kbps<br/>
5816 Audio: AAC, 48000 Hz, stereo, 128 kbps<br/>
5817 Container: MP4<br/>
5818 */
5819 static const char H264_360p[] = "android-phone.mp4.h264.360p";
5820 /*!<
5821 ### Socket
5822 | Property | Value |
5823 | ---------------------------------------------------- | :-----------: |
5824 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
5825
5826 ### %Video Pin
5827 | Property | Value |
5828 | ---------------------------------------------------- | :-----------: |
5829 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5830 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
5831 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 800000 bps |
5832 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 480 |
5833 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 360 |
5834 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
5835
5836 ### %Video Pin %Parameters
5837 | %Parameter | Value |
5838 | ---------------------------------------------------- | :-----------: |
5839 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
5840 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
5841 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
5842 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 1 |
5843 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5844 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 30 |
5845 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5846
5847 ### %Audio Pin
5848 | Property | Value |
5849 | ---------------------------------------------------- | :-----------: |
5850 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5851 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
5852 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
5853 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5854 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5855 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5856 */
5857
5858 /**
5859 Video: H.264 Baseline Profile, 30 fps, 1280 x 720, 2000 kbps<br/>
5860 Audio: AAC, 48000 Hz, stereo, 128 kbps<br/>
5861 Container: MP4<br/>
5862 */
5863 static const char H264_720p[] = "android-phone.mp4.h264.720p";
5864 /*!<
5865 ### Socket
5866 | Property | Value |
5867 | ---------------------------------------------------- | :-----------: |
5868 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
5869
5870 ### %Video Pin
5871 | Property | Value |
5872 | ---------------------------------------------------- | :-----------: |
5873 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5874 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
5875 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 2000000 bps |
5876 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
5877 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
5878 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
5879
5880 ### %Video Pin %Parameters
5881 | %Parameter | Value |
5882 | ---------------------------------------------------- | :-----------: |
5883 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
5884 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
5885 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
5886 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 1 |
5887 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5888 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 30 |
5889 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5890
5891 ### %Audio Pin
5892 | Property | Value |
5893 | ---------------------------------------------------- | :-----------: |
5894 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5895 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
5896 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 128000 bps |
5897 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5898 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5899 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5900 */
5901 }
5902
5903 /** Presets for Android tablets */
5904 namespace AndroidTablet
5905 {
5906 /**
5907 Video: H.264 Baseline Profile, 30 fps, 1280 x 720, 4000 kbps<br/>
5908 Audio: AAC, 48000 Hz, stereo, 192 kbps<br/>
5909 Container: MP4<br/>
5910 */
5911 static const char H264_720p[] = "android-tablet.mp4.h264.720p";
5912 /*!<
5913 ### Socket
5914 | Property | Value |
5915 | ---------------------------------------------------- | :-----------: |
5916 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
5917
5918 ### %Video Pin
5919 | Property | Value |
5920 | ---------------------------------------------------- | :-----------: |
5921 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
5922 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
5923 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 4000000 bps |
5924 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
5925 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
5926 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
5927
5928 ### %Video Pin %Parameters
5929 | %Parameter | Value |
5930 | ---------------------------------------------------- | :-----------: |
5931 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
5932 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
5933 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
5934 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 1 |
5935 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
5936 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 30 |
5937 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
5938
5939 ### %Audio Pin
5940 | Property | Value |
5941 | ---------------------------------------------------- | :-----------: |
5942 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
5943 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
5944 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 192000 bps |
5945 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5946 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5947 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5948 */
5949
5950 /**
5951 Video: VP8, 30 fps, 1280 x 720, 4000 kbps<br/>
5952 Audio: Vorbis, 48000 Hz, stereo, 192 kbps<br/>
5953 Container: WebM<br/>
5954 */
5955 static const char WebM_VP8_720p[] = "android-tablet.webm.vp8.720p";
5956 /*!<
5957 ### Socket
5958 | Property | Value |
5959 | ---------------------------------------------------- | :-----------: |
5960 | [StreamType](@ref primo::codecs::StreamType) | [WebM](@ref primo::codecs::StreamType::WebM) |
5961
5962 ### %Video Pin
5963 | Property | Value |
5964 | ---------------------------------------------------- | :-----------: |
5965 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [VP8](@ref primo::codecs::StreamType::VP8) |
5966 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 4000000 bps |
5967 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
5968 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
5969 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 30 |
5970
5971 ### %Audio Pin
5972 | Property | Value |
5973 | ---------------------------------------------------- | :-----------: |
5974 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [Vorbis](@ref primo::codecs::StreamType::Vorbis) |
5975 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 192000 bps |
5976 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [ABR](@ref primo::codecs::BitrateMode::ABR) |
5977 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
5978 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
5979 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
5980 */
5981 }
5982
5983 /** Presets for Blu-ray Disc Audio-Visual MPEG-2 Transport Stream */
5984 namespace BDAV
5985 {
5986 /**
5987 Video: H.264, 1920 x 1080, 29.97 fps interlaced, aspect ratio 16:9, 25000 kbps<br/>
5988 Audio: LPCM, 48000 Hz, 16-bit<br/>
5989 Container: BDAV MPEG-2 Transport Stream (m2ts)<br/>
5990 */
5991 static const char H264_1920x1080_5994i_PCM[] = "bdav-h264-1920x1080-59.94i-pcm";
5992 /*!<
5993 ### Socket
5994 | Property | Value |
5995 | ---------------------------------------------------- | :-----------: |
5996 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
5997 | [StreamSubType](@ref primo::codecs::StreamType) | [MPEG_TS_BDAV](@ref primo::codecs::StreamSubType::MPEG_TS_BDAV) |
5998
5999 ### %Video Pin
6000 | Property | Value |
6001 | ---------------------------------------------------- | :-----------: |
6002 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
6003 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 25000000 bps |
6004 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [VBR](@ref primo::codecs::BitrateMode::VBR) |
6005 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1920 |
6006 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
6007 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6008 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6009 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 59.94 |
6010 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [TopFieldFirst](@ref primo::codecs::ScanType::TopFieldFirst) |
6011
6012 ### %Video Pin %Parameters
6013 | %Parameter | Value |
6014 | ---------------------------------------------------- | :-----------: |
6015 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [High](@ref primo::codecs::H264Profile::High) |
6016 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
6017 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 3 |
6018 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 2 |
6019 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | TRUE |
6020 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 20 |
6021 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
6022 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 41 |
6023 | [PictureCodingType](@ref primo::avblocks::Param::Encoder::Video::H264::PictureCodingType) | 1 |
6024 | [NumSlices](@ref primo::avblocks::Param::Encoder::Video::H264::NumSlices) | 4 |
6025 | [AccessUnitDelimiters](@ref primo::avblocks::Param::Encoder::Video::H264::AccessUnitDelimiters) | TRUE |
6026 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
6027
6028 ### %Audio Pin
6029 | Property | Value |
6030 | ---------------------------------------------------- | :-----------: |
6031 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [LPCM](@ref primo::codecs::StreamType::LPCM) |
6032 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6033 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6034 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6035 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6036 | [BytesPerFrame (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBytesPerFrame) | 4 |
6037 */
6038
6039 /**
6040 Video: H.264, 1920 x 1080, 25 fps interlaced, aspect ratio 16:9, 25000 kbps<br/>
6041 Audio: LPCM, 48000 Hz, 16-bit<br/>
6042 Container: BDAV MPEG-2 Transport Stream (m2ts)<br/>
6043 */
6044 static const char H264_1920x1080_50i_PCM[] = "bdav-h264-1920x1080-50i-pcm";
6045 /*!<
6046 ### Socket
6047 | Property | Value |
6048 | ---------------------------------------------------- | :-----------: |
6049 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6050 | [StreamSubType](@ref primo::codecs::StreamType) | [MPEG_TS_BDAV](@ref primo::codecs::StreamSubType::MPEG_TS_BDAV) |
6051
6052 ### %Video Pin
6053 | Property | Value |
6054 | ---------------------------------------------------- | :-----------: |
6055 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
6056 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 25000000 bps |
6057 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [VBR](@ref primo::codecs::BitrateMode::VBR) |
6058 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1920 |
6059 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
6060 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6061 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6062 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 50 |
6063 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [TopFieldFirst](@ref primo::codecs::ScanType::TopFieldFirst) |
6064
6065 ### %Video Pin %Parameters
6066 | %Parameter | Value |
6067 | ---------------------------------------------------- | :-----------: |
6068 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [High](@ref primo::codecs::H264Profile::High) |
6069 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
6070 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 3 |
6071 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 2 |
6072 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | TRUE |
6073 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 20 |
6074 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
6075 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 41 |
6076 | [PictureCodingType](@ref primo::avblocks::Param::Encoder::Video::H264::PictureCodingType) | 1 |
6077 | [NumSlices](@ref primo::avblocks::Param::Encoder::Video::H264::NumSlices) | 4 |
6078 | [AccessUnitDelimiters](@ref primo::avblocks::Param::Encoder::Video::H264::AccessUnitDelimiters) | TRUE |
6079 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
6080
6081 ### %Audio Pin
6082 | Property | Value |
6083 | ---------------------------------------------------- | :-----------: |
6084 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [LPCM](@ref primo::codecs::StreamType::LPCM) |
6085 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6086 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6087 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6088 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6089 | [BytesPerFrame (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBytesPerFrame) | 4 |
6090 */
6091
6092 /**
6093 Video: H.264, 1920 x 1080, 24 fps progressive, aspect ratio 16:9, 25000 kbps<br/>
6094 Audio: LPCM, 48000 Hz, 16-bit<br/>
6095 Container: BDAV MPEG-2 Transport Stream (m2ts)<br/>
6096 */
6097 static const char H264_1920x1080_24p_PCM[] = "bdav-h264-1920x1080-24p-pcm";
6098 /*!<
6099 ### Socket
6100 | Property | Value |
6101 | ---------------------------------------------------- | :-----------: |
6102 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6103 | [StreamSubType](@ref primo::codecs::StreamType) | [MPEG_TS_BDAV](@ref primo::codecs::StreamSubType::MPEG_TS_BDAV) |
6104
6105 ### %Video Pin
6106 | Property | Value |
6107 | ---------------------------------------------------- | :-----------: |
6108 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
6109 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 25000000 bps |
6110 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [VBR](@ref primo::codecs::BitrateMode::VBR) |
6111 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1920 |
6112 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
6113 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6114 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6115 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 24 |
6116 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
6117
6118 ### %Video Pin %Parameters
6119 | %Parameter | Value |
6120 | ---------------------------------------------------- | :-----------: |
6121 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [High](@ref primo::codecs::H264Profile::High) |
6122 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
6123 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 3 |
6124 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 2 |
6125 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | TRUE |
6126 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 20 |
6127 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
6128 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 41 |
6129 | [PictureCodingType](@ref primo::avblocks::Param::Encoder::Video::H264::PictureCodingType) | 0 |
6130 | [NumSlices](@ref primo::avblocks::Param::Encoder::Video::H264::NumSlices) | 4 |
6131 | [AccessUnitDelimiters](@ref primo::avblocks::Param::Encoder::Video::H264::AccessUnitDelimiters) | TRUE |
6132 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
6133
6134 ### %Audio Pin
6135 | Property | Value |
6136 | ---------------------------------------------------- | :-----------: |
6137 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [LPCM](@ref primo::codecs::StreamType::LPCM) |
6138 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6139 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6140 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6141 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6142 | [BytesPerFrame (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBytesPerFrame) | 4 |
6143 */
6144
6145 /**
6146 Video: H.264, 1920 x 1080, 23.976 fps progressive, aspect ratio 16:9, 25000 kbps<br/>
6147 Audio: LPCM, 48000 Hz, 16-bit<br/>
6148 Container: BDAV MPEG-2 Transport Stream (m2ts)<br/>
6149 */
6150 static const char H264_1920x1080_2398p_PCM[] = "bdav-h264-1920x1080-23.976p-pcm";
6151 /*!<
6152 ### Socket
6153 | Property | Value |
6154 | ---------------------------------------------------- | :-----------: |
6155 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6156 | [StreamSubType](@ref primo::codecs::StreamType) | [MPEG_TS_BDAV](@ref primo::codecs::StreamSubType::MPEG_TS_BDAV) |
6157
6158 ### %Video Pin
6159 | Property | Value |
6160 | ---------------------------------------------------- | :-----------: |
6161 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
6162 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 25000000 bps |
6163 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [VBR](@ref primo::codecs::BitrateMode::VBR) |
6164 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1920 |
6165 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
6166 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6167 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6168 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 23.976 |
6169 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
6170
6171 ### %Video Pin %Parameters
6172 | %Parameter | Value |
6173 | ---------------------------------------------------- | :-----------: |
6174 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [High](@ref primo::codecs::H264Profile::High) |
6175 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
6176 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 3 |
6177 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 2 |
6178 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | TRUE |
6179 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 20 |
6180 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
6181 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 41 |
6182 | [PictureCodingType](@ref primo::avblocks::Param::Encoder::Video::H264::PictureCodingType) | 0 |
6183 | [NumSlices](@ref primo::avblocks::Param::Encoder::Video::H264::NumSlices) | 4 |
6184 | [AccessUnitDelimiters](@ref primo::avblocks::Param::Encoder::Video::H264::AccessUnitDelimiters) | TRUE |
6185 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
6186
6187 ### %Audio Pin
6188 | Property | Value |
6189 | ---------------------------------------------------- | :-----------: |
6190 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [LPCM](@ref primo::codecs::StreamType::LPCM) |
6191 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6192 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6193 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6194 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6195 | [BytesPerFrame (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBytesPerFrame) | 4 |
6196 */
6197
6198 /**
6199 Video: H.264, 1440 x 1080, 29.97 fps interlaced, aspect ratio 16:9, 25000 kbps<br/>
6200 Audio: LPCM, 48000 Hz, 16-bit<br/>
6201 Container: BDAV MPEG-2 Transport Stream (m2ts)<br/>
6202 */
6203 static const char H264_1440x1080_5994i_PCM[] = "bdav-h264-1440x1080-59.94i-pcm";
6204 /*!<
6205 ### Socket
6206 | Property | Value |
6207 | ---------------------------------------------------- | :-----------: |
6208 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6209 | [StreamSubType](@ref primo::codecs::StreamType) | [MPEG_TS_BDAV](@ref primo::codecs::StreamSubType::MPEG_TS_BDAV) |
6210
6211 ### %Video Pin
6212 | Property | Value |
6213 | ---------------------------------------------------- | :-----------: |
6214 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
6215 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 25000000 bps |
6216 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [VBR](@ref primo::codecs::BitrateMode::VBR) |
6217 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1440 |
6218 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
6219 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6220 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6221 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 59.94 |
6222 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [TopFieldFirst](@ref primo::codecs::ScanType::TopFieldFirst) |
6223
6224 ### %Video Pin %Parameters
6225 | %Parameter | Value |
6226 | ---------------------------------------------------- | :-----------: |
6227 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [High](@ref primo::codecs::H264Profile::High) |
6228 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
6229 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 3 |
6230 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 2 |
6231 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | TRUE |
6232 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 20 |
6233 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
6234 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 41 |
6235 | [PictureCodingType](@ref primo::avblocks::Param::Encoder::Video::H264::PictureCodingType) | 1 |
6236 | [NumSlices](@ref primo::avblocks::Param::Encoder::Video::H264::NumSlices) | 4 |
6237 | [AccessUnitDelimiters](@ref primo::avblocks::Param::Encoder::Video::H264::AccessUnitDelimiters) | TRUE |
6238 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
6239
6240 ### %Audio Pin
6241 | Property | Value |
6242 | ---------------------------------------------------- | :-----------: |
6243 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [LPCM](@ref primo::codecs::StreamType::LPCM) |
6244 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6245 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6246 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6247 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6248 | [BytesPerFrame (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBytesPerFrame) | 4 |
6249 */
6250
6251 /**
6252 Video: H.264, 1440 x 1080, 25 fps interlaced, aspect ratio 16:9, 25000 kbps<br/>
6253 Audio: LPCM, 48000 Hz, 16-bit<br/>
6254 Container: BDAV MPEG-2 Transport Stream (m2ts)<br/>
6255 */
6256 static const char H264_1440x1080_50i_PCM[] = "bdav-h264-1440x1080-50i-pcm";
6257 /*!<
6258 ### Socket
6259 | Property | Value |
6260 | ---------------------------------------------------- | :-----------: |
6261 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6262 | [StreamSubType](@ref primo::codecs::StreamType) | [MPEG_TS_BDAV](@ref primo::codecs::StreamSubType::MPEG_TS_BDAV) |
6263
6264 ### %Video Pin
6265 | Property | Value |
6266 | ---------------------------------------------------- | :-----------: |
6267 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
6268 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 25000000 bps |
6269 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [VBR](@ref primo::codecs::BitrateMode::VBR) |
6270 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1440 |
6271 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
6272 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6273 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6274 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 50 |
6275 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [TopFieldFirst](@ref primo::codecs::ScanType::TopFieldFirst) |
6276
6277 ### %Video Pin %Parameters
6278 | %Parameter | Value |
6279 | ---------------------------------------------------- | :-----------: |
6280 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [High](@ref primo::codecs::H264Profile::High) |
6281 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
6282 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 3 |
6283 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 2 |
6284 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | TRUE |
6285 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 20 |
6286 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
6287 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 41 |
6288 | [PictureCodingType](@ref primo::avblocks::Param::Encoder::Video::H264::PictureCodingType) | 1 |
6289 | [NumSlices](@ref primo::avblocks::Param::Encoder::Video::H264::NumSlices) | 4 |
6290 | [AccessUnitDelimiters](@ref primo::avblocks::Param::Encoder::Video::H264::AccessUnitDelimiters) | TRUE |
6291 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
6292
6293 ### %Audio Pin
6294 | Property | Value |
6295 | ---------------------------------------------------- | :-----------: |
6296 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [LPCM](@ref primo::codecs::StreamType::LPCM) |
6297 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6298 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6299 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6300 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6301 | [BytesPerFrame (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBytesPerFrame) | 4 |
6302 */
6303
6304 /**
6305 Video: H.264, 1440 x 1080, 24 fps progressive, aspect ratio 16:9, 25000 kbps<br/>
6306 Audio: LPCM, 48000 Hz, 16-bit<br/>
6307 Container: BDAV MPEG-2 Transport Stream (m2ts)<br/>
6308 */
6309 static const char H264_1440x1080_24p_PCM[] = "bdav-h264-1440x1080-24p-pcm";
6310 /*!<
6311 ### Socket
6312 | Property | Value |
6313 | ---------------------------------------------------- | :-----------: |
6314 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6315 | [StreamSubType](@ref primo::codecs::StreamType) | [MPEG_TS_BDAV](@ref primo::codecs::StreamSubType::MPEG_TS_BDAV) |
6316
6317 ### %Video Pin
6318 | Property | Value |
6319 | ---------------------------------------------------- | :-----------: |
6320 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
6321 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 25000000 bps |
6322 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [VBR](@ref primo::codecs::BitrateMode::VBR) |
6323 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1440 |
6324 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
6325 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6326 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6327 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 24 |
6328 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
6329
6330 ### %Video Pin %Parameters
6331 | %Parameter | Value |
6332 | ---------------------------------------------------- | :-----------: |
6333 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [High](@ref primo::codecs::H264Profile::High) |
6334 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
6335 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 3 |
6336 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 2 |
6337 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | TRUE |
6338 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 20 |
6339 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
6340 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 41 |
6341 | [PictureCodingType](@ref primo::avblocks::Param::Encoder::Video::H264::PictureCodingType) | 0 |
6342 | [NumSlices](@ref primo::avblocks::Param::Encoder::Video::H264::NumSlices) | 4 |
6343 | [AccessUnitDelimiters](@ref primo::avblocks::Param::Encoder::Video::H264::AccessUnitDelimiters) | TRUE |
6344 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
6345
6346 ### %Audio Pin
6347 | Property | Value |
6348 | ---------------------------------------------------- | :-----------: |
6349 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [LPCM](@ref primo::codecs::StreamType::LPCM) |
6350 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6351 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6352 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6353 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6354 | [BytesPerFrame (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBytesPerFrame) | 4 |
6355 */
6356
6357 /**
6358 Video: H.264, 1440 x 1080, 23.976 fps progressive, aspect ratio 16:9, 25000 kbps<br/>
6359 Audio: LPCM, 48000 Hz, 16-bit<br/>
6360 Container: BDAV MPEG-2 Transport Stream (m2ts)<br/>
6361 */
6362 static const char H264_1440x1080_2398p_PCM[] = "bdav-h264-1440x1080-23.976p-pcm";
6363 /*!<
6364 ### Socket
6365 | Property | Value |
6366 | ---------------------------------------------------- | :-----------: |
6367 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6368 | [StreamSubType](@ref primo::codecs::StreamType) | [MPEG_TS_BDAV](@ref primo::codecs::StreamSubType::MPEG_TS_BDAV) |
6369
6370 ### %Video Pin
6371 | Property | Value |
6372 | ---------------------------------------------------- | :-----------: |
6373 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
6374 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 25000000 bps |
6375 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [VBR](@ref primo::codecs::BitrateMode::VBR) |
6376 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1440 |
6377 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
6378 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6379 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6380 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 23.976 |
6381 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
6382
6383 ### %Video Pin %Parameters
6384 | %Parameter | Value |
6385 | ---------------------------------------------------- | :-----------: |
6386 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [High](@ref primo::codecs::H264Profile::High) |
6387 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
6388 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 3 |
6389 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 2 |
6390 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | TRUE |
6391 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 20 |
6392 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
6393 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 41 |
6394 | [PictureCodingType](@ref primo::avblocks::Param::Encoder::Video::H264::PictureCodingType) | 0 |
6395 | [NumSlices](@ref primo::avblocks::Param::Encoder::Video::H264::NumSlices) | 4 |
6396 | [AccessUnitDelimiters](@ref primo::avblocks::Param::Encoder::Video::H264::AccessUnitDelimiters) | TRUE |
6397 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
6398
6399 ### %Audio Pin
6400 | Property | Value |
6401 | ---------------------------------------------------- | :-----------: |
6402 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [LPCM](@ref primo::codecs::StreamType::LPCM) |
6403 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6404 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6405 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6406 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6407 | [BytesPerFrame (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBytesPerFrame) | 4 |
6408 */
6409
6410 /**
6411 Video: H.264, 1280 x 720, 59.94 fps progressive, aspect ratio 16:9, 15000 kbps<br/>
6412 Audio: LPCM, 48000 Hz, 16-bit<br/>
6413 Container: BDAV MPEG-2 Transport Stream (m2ts)<br/>
6414 */
6415 static const char H264_1280x720_5994p_PCM[] = "bdav-h264-1280x720-59.94p-pcm";
6416 /*!<
6417 ### Socket
6418 | Property | Value |
6419 | ---------------------------------------------------- | :-----------: |
6420 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6421 | [StreamSubType](@ref primo::codecs::StreamType) | [MPEG_TS_BDAV](@ref primo::codecs::StreamSubType::MPEG_TS_BDAV) |
6422
6423 ### %Video Pin
6424 | Property | Value |
6425 | ---------------------------------------------------- | :-----------: |
6426 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
6427 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 15000000 bps |
6428 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [VBR](@ref primo::codecs::BitrateMode::VBR) |
6429 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
6430 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
6431 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6432 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6433 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 59.94 |
6434 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
6435
6436 ### %Video Pin %Parameters
6437 | %Parameter | Value |
6438 | ---------------------------------------------------- | :-----------: |
6439 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [High](@ref primo::codecs::H264Profile::High) |
6440 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
6441 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 3 |
6442 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 2 |
6443 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | TRUE |
6444 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 20 |
6445 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
6446 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 41 |
6447 | [PictureCodingType](@ref primo::avblocks::Param::Encoder::Video::H264::PictureCodingType) | 0 |
6448 | [NumSlices](@ref primo::avblocks::Param::Encoder::Video::H264::NumSlices) | 4 |
6449 | [AccessUnitDelimiters](@ref primo::avblocks::Param::Encoder::Video::H264::AccessUnitDelimiters) | TRUE |
6450 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
6451
6452 ### %Audio Pin
6453 | Property | Value |
6454 | ---------------------------------------------------- | :-----------: |
6455 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [LPCM](@ref primo::codecs::StreamType::LPCM) |
6456 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6457 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6458 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6459 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6460 | [BytesPerFrame (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBytesPerFrame) | 4 |
6461 */
6462
6463 /**
6464 Video: H.264, 1280 x 720, 50 fps progressive, aspect ratio 16:9, 15000 kbps<br/>
6465 Audio: LPCM, 48000 Hz, 16-bit<br/>
6466 Container: BDAV MPEG-2 Transport Stream (m2ts)<br/>
6467 */
6468 static const char H264_1280x720_50p_PCM[] = "bdav-h264-1280x720-50p-pcm";
6469 /*!<
6470 ### Socket
6471 | Property | Value |
6472 | ---------------------------------------------------- | :-----------: |
6473 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6474 | [StreamSubType](@ref primo::codecs::StreamType) | [MPEG_TS_BDAV](@ref primo::codecs::StreamSubType::MPEG_TS_BDAV) |
6475
6476 ### %Video Pin
6477 | Property | Value |
6478 | ---------------------------------------------------- | :-----------: |
6479 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
6480 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 15000000 bps |
6481 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [VBR](@ref primo::codecs::BitrateMode::VBR) |
6482 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
6483 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
6484 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6485 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6486 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 50 |
6487 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
6488
6489 ### %Video Pin %Parameters
6490 | %Parameter | Value |
6491 | ---------------------------------------------------- | :-----------: |
6492 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [High](@ref primo::codecs::H264Profile::High) |
6493 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
6494 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 3 |
6495 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 2 |
6496 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | TRUE |
6497 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 20 |
6498 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
6499 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 41 |
6500 | [PictureCodingType](@ref primo::avblocks::Param::Encoder::Video::H264::PictureCodingType) | 0 |
6501 | [NumSlices](@ref primo::avblocks::Param::Encoder::Video::H264::NumSlices) | 4 |
6502 | [AccessUnitDelimiters](@ref primo::avblocks::Param::Encoder::Video::H264::AccessUnitDelimiters) | TRUE |
6503 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
6504
6505 ### %Audio Pin
6506 | Property | Value |
6507 | ---------------------------------------------------- | :-----------: |
6508 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [LPCM](@ref primo::codecs::StreamType::LPCM) |
6509 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6510 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6511 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6512 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6513 | [BytesPerFrame (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBytesPerFrame) | 4 |
6514 */
6515
6516 /**
6517 Video: H.264, 1280 x 720, 24 fps progressive, aspect ratio 16:9, 15000 kbps<br/>
6518 Audio: LPCM, 48000 Hz, 16-bit<br/>
6519 Container: BDAV MPEG-2 Transport Stream (m2ts)<br/>
6520 */
6521 static const char H264_1280x720_24p_PCM[] = "bdav-h264-1280x720-24p-pcm";
6522 /*!<
6523 ### Socket
6524 | Property | Value |
6525 | ---------------------------------------------------- | :-----------: |
6526 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6527 | [StreamSubType](@ref primo::codecs::StreamType) | [MPEG_TS_BDAV](@ref primo::codecs::StreamSubType::MPEG_TS_BDAV) |
6528
6529 ### %Video Pin
6530 | Property | Value |
6531 | ---------------------------------------------------- | :-----------: |
6532 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
6533 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 15000000 bps |
6534 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [VBR](@ref primo::codecs::BitrateMode::VBR) |
6535 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
6536 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
6537 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6538 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6539 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 24 |
6540 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
6541
6542 ### %Video Pin %Parameters
6543 | %Parameter | Value |
6544 | ---------------------------------------------------- | :-----------: |
6545 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [High](@ref primo::codecs::H264Profile::High) |
6546 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
6547 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 3 |
6548 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 2 |
6549 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | TRUE |
6550 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 20 |
6551 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
6552 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 41 |
6553 | [PictureCodingType](@ref primo::avblocks::Param::Encoder::Video::H264::PictureCodingType) | 0 |
6554 | [NumSlices](@ref primo::avblocks::Param::Encoder::Video::H264::NumSlices) | 4 |
6555 | [AccessUnitDelimiters](@ref primo::avblocks::Param::Encoder::Video::H264::AccessUnitDelimiters) | TRUE |
6556 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
6557
6558 ### %Audio Pin
6559 | Property | Value |
6560 | ---------------------------------------------------- | :-----------: |
6561 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [LPCM](@ref primo::codecs::StreamType::LPCM) |
6562 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6563 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6564 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6565 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6566 | [BytesPerFrame (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBytesPerFrame) | 4 |
6567 */
6568
6569 /**
6570 Video: H.264, 1280 x 720, 23.976 fps progressive, aspect ratio 16:9, 15000 kbps<br/>
6571 Audio: LPCM, 48000 Hz, 16-bit<br/>
6572 Container: BDAV MPEG-2 Transport Stream (m2ts)<br/>
6573 */
6574 static const char H264_1280x720_2398p_PCM[] = "bdav-h264-1280x720-23.976p-pcm";
6575 /*!<
6576 ### Socket
6577 | Property | Value |
6578 | ---------------------------------------------------- | :-----------: |
6579 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6580 | [StreamSubType](@ref primo::codecs::StreamType) | [MPEG_TS_BDAV](@ref primo::codecs::StreamSubType::MPEG_TS_BDAV) |
6581
6582 ### %Video Pin
6583 | Property | Value |
6584 | ---------------------------------------------------- | :-----------: |
6585 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
6586 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 15000000 bps |
6587 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [VBR](@ref primo::codecs::BitrateMode::VBR) |
6588 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
6589 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
6590 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6591 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6592 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 23.976 |
6593 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
6594
6595 ### %Video Pin %Parameters
6596 | %Parameter | Value |
6597 | ---------------------------------------------------- | :-----------: |
6598 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [High](@ref primo::codecs::H264Profile::High) |
6599 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CABAC](@ref primo::codecs::H264EntropyCodingMode::CABAC) |
6600 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 3 |
6601 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 2 |
6602 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | TRUE |
6603 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 20 |
6604 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
6605 | [Level](@ref primo::avblocks::Param::Encoder::Video::H264::Level) | 41 |
6606 | [PictureCodingType](@ref primo::avblocks::Param::Encoder::Video::H264::PictureCodingType) | 0 |
6607 | [NumSlices](@ref primo::avblocks::Param::Encoder::Video::H264::NumSlices) | 4 |
6608 | [AccessUnitDelimiters](@ref primo::avblocks::Param::Encoder::Video::H264::AccessUnitDelimiters) | TRUE |
6609 | [FixedFramerate](@ref primo::avblocks::Param::Encoder::Video::H264::FixedFramerate) | TRUE |
6610
6611 ### %Audio Pin
6612 | Property | Value |
6613 | ---------------------------------------------------- | :-----------: |
6614 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [LPCM](@ref primo::codecs::StreamType::LPCM) |
6615 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6616 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6617 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6618 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6619 | [BytesPerFrame (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBytesPerFrame) | 4 |
6620 */
6621 }
6622
6623 /** Presets for High-definition video MPEG-2 Transport Stream */
6624 namespace HDV
6625 {
6626 /**
6627 Video: MPEG-2, 29.97 fps, 1440x1080, aspect ratio 16:9 <br />
6628 Audio: MPEG-1 Layer 2, 48000 Hz, stereo, 16bits <br />
6629 Container: TS (MPEG-2 Transport Stream)<br />
6630 */
6631 static const char MPEG_1080i_30p[] = "hdv.m2t.1080i.30p";
6632 /*!<
6633 ### Socket
6634 | Property | Value |
6635 | ---------------------------------------------------- | :-----------: |
6636 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6637
6638 ### %Video Pin
6639 | Property | Value |
6640 | ---------------------------------------------------- | :-----------: |
6641 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG2_Video](@ref primo::codecs::StreamType::MPEG2_Video) |
6642 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 25000000 bps |
6643 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6644 | [ColorFormat (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setColorFormat) | [YUV420](@ref primo::codecs::ColorFormat::YUV420) |
6645 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1440 |
6646 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
6647 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6648 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6649 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
6650 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [TopFieldFirst](@ref primo::codecs::ScanType::TopFieldFirst) |
6651
6652 ### %Audio Pin
6653 | Property | Value |
6654 | ---------------------------------------------------- | :-----------: |
6655 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
6656 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer2](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer2) |
6657 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 384000 bps |
6658 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6659 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6660 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6661 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6662 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6663 */
6664
6665 /**
6666 Video: MPEG-2, 25 fps, 1440x1080, aspect ratio 16:9 <br />
6667 Audio: MPEG-1 Layer 2, 48000 Hz, stereo, 16bits<br />
6668 Container: TS (MPEG-2 Transport Stream)<br />
6669 */
6670 static const char MPEG_1080i_25p[] = "hdv.m2t.1080i.25p";
6671 /*!<
6672 ### Socket
6673 | Property | Value |
6674 | ---------------------------------------------------- | :-----------: |
6675 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6676
6677 ### %Video Pin
6678 | Property | Value |
6679 | ---------------------------------------------------- | :-----------: |
6680 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG2_Video](@ref primo::codecs::StreamType::MPEG2_Video) |
6681 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 25000000 bps |
6682 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6683 | [ColorFormat (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setColorFormat) | [YUV420](@ref primo::codecs::ColorFormat::YUV420) |
6684 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1440 |
6685 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
6686 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6687 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6688 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 25 |
6689 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [TopFieldFirst](@ref primo::codecs::ScanType::TopFieldFirst) |
6690
6691 ### %Audio Pin
6692 | Property | Value |
6693 | ---------------------------------------------------- | :-----------: |
6694 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
6695 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer2](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer2) |
6696 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 384000 bps |
6697 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6698 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6699 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6700 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6701 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6702 */
6703
6704 /**
6705 Video: MPEG-2, 29.97 fps, 1440x1080, aspect ratio 16:9 <br />
6706 Audio: MPEG-1 Layer 2, 48000 Hz, stereo, 16bits<br />
6707 Container: TS (MPEG-2 Transport Stream)<br />
6708 */
6709 static const char MPEG_1080p_30p[] = "hdv.m2t.1080p.30p";
6710 /*!<
6711 ### Socket
6712 | Property | Value |
6713 | ---------------------------------------------------- | :-----------: |
6714 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6715
6716 ### %Video Pin
6717 | Property | Value |
6718 | ---------------------------------------------------- | :-----------: |
6719 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG2_Video](@ref primo::codecs::StreamType::MPEG2_Video) |
6720 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 25000000 bps |
6721 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6722 | [ColorFormat (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setColorFormat) | [YUV420](@ref primo::codecs::ColorFormat::YUV420) |
6723 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1440 |
6724 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
6725 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6726 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6727 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
6728 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
6729
6730 ### %Audio Pin
6731 | Property | Value |
6732 | ---------------------------------------------------- | :-----------: |
6733 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
6734 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer2](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer2) |
6735 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 384000 bps |
6736 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6737 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6738 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6739 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6740 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6741 */
6742
6743 /**
6744 Video: MPEG-2, 25 fps, 1440x1080, aspect ratio 16:9 <br />
6745 Audio: MPEG-1 Layer 2, 48000 Hz, stereo, 16bits <br />
6746 Container: TS (MPEG-2 Transport Stream)<br />
6747 */
6748 static const char MPEG_1080p_25p[] = "hdv.m2t.1080p.25p";
6749 /*!<
6750 ### Socket
6751 | Property | Value |
6752 | ---------------------------------------------------- | :-----------: |
6753 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6754
6755 ### %Video Pin
6756 | Property | Value |
6757 | ---------------------------------------------------- | :-----------: |
6758 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG2_Video](@ref primo::codecs::StreamType::MPEG2_Video) |
6759 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 25000000 bps |
6760 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6761 | [ColorFormat (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setColorFormat) | [YUV420](@ref primo::codecs::ColorFormat::YUV420) |
6762 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1440 |
6763 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
6764 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6765 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6766 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 25 |
6767 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
6768
6769 ### %Audio Pin
6770 | Property | Value |
6771 | ---------------------------------------------------- | :-----------: |
6772 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
6773 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer2](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer2) |
6774 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 384000 bps |
6775 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6776 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6777 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6778 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6779 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6780 */
6781
6782 /**
6783 Video: MPEG-2, 23.976 fps, 1440x1080, aspect ratio 16:9 <br />
6784 Audio: MPEG-1 Layer 2, 48000 Hz, stereo, 16bits<br />
6785 Container: TS (MPEG-2 Transport Stream)<br />
6786 */
6787 static const char MPEG_1080p_24p[] = "hdv.m2t.1080p.24p";
6788 /*!<
6789 ### Socket
6790 | Property | Value |
6791 | ---------------------------------------------------- | :-----------: |
6792 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6793
6794 ### %Video Pin
6795 | Property | Value |
6796 | ---------------------------------------------------- | :-----------: |
6797 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG2_Video](@ref primo::codecs::StreamType::MPEG2_Video) |
6798 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 25000000 bps |
6799 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6800 | [ColorFormat (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setColorFormat) | [YUV420](@ref primo::codecs::ColorFormat::YUV420) |
6801 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1440 |
6802 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 1080 |
6803 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6804 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6805 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 23.976 |
6806 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
6807
6808 ### %Audio Pin
6809 | Property | Value |
6810 | ---------------------------------------------------- | :-----------: |
6811 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
6812 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer2](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer2) |
6813 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 384000 bps |
6814 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6815 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6816 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6817 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6818 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6819 */
6820
6821 /**
6822 Video: MPEG-2, 59.94 fps, 1280x720, aspect 16:9 <br />
6823 Audio: MPEG-1 Layer 2, 48000 Hz, stereo, 16bits<br />
6824 Container: TS (MPEG-2 Transport Stream)<br />
6825 */
6826 static const char MPEG_720p_60p[] = "hdv.m2t.720p.60p";
6827 /*!<
6828 ### Socket
6829 | Property | Value |
6830 | ---------------------------------------------------- | :-----------: |
6831 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6832
6833 ### %Video Pin
6834 | Property | Value |
6835 | ---------------------------------------------------- | :-----------: |
6836 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG2_Video](@ref primo::codecs::StreamType::MPEG2_Video) |
6837 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 18300000 bps |
6838 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6839 | [ColorFormat (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setColorFormat) | [YUV420](@ref primo::codecs::ColorFormat::YUV420) |
6840 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
6841 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
6842 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6843 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6844 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 59.94 |
6845 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
6846
6847 ### %Audio Pin
6848 | Property | Value |
6849 | ---------------------------------------------------- | :-----------: |
6850 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
6851 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer2](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer2) |
6852 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 384000 bps |
6853 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6854 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6855 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6856 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6857 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6858 */
6859
6860 /**
6861 Video: MPEG-2, 50 fps, 1280x720, aspect 16:9 <br />
6862 Audio: MPEG-1 Layer 2, 48000 Hz, stereo, 16bits<br />
6863 Container: TS (MPEG-2 Transport Stream)<br />
6864 */
6865 static const char MPEG_720p_50p[] = "hdv.m2t.720p.50p";
6866 /*!<
6867 ### Socket
6868 | Property | Value |
6869 | ---------------------------------------------------- | :-----------: |
6870 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6871
6872 ### %Video Pin
6873 | Property | Value |
6874 | ---------------------------------------------------- | :-----------: |
6875 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG2_Video](@ref primo::codecs::StreamType::MPEG2_Video) |
6876 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 18300000 bps |
6877 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6878 | [ColorFormat (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setColorFormat) | [YUV420](@ref primo::codecs::ColorFormat::YUV420) |
6879 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
6880 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
6881 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6882 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6883 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 50 |
6884 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
6885
6886 ### %Audio Pin
6887 | Property | Value |
6888 | ---------------------------------------------------- | :-----------: |
6889 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
6890 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer2](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer2) |
6891 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 384000 bps |
6892 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6893 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6894 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6895 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6896 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6897 */
6898
6899 /**
6900 Video: MPEG-2, 29.97 fps, 1280x720, aspect 16:9 <br />
6901 Audio: MPEG-1 Layer 2, 48000 Hz, stereo, 16bits <br />
6902 Container: TS (MPEG-2 Transport Stream)<br />
6903 */
6904 static const char MPEG_720p_30p[] = "hdv.m2t.720p.30p";
6905 /*!<
6906 ### Socket
6907 | Property | Value |
6908 | ---------------------------------------------------- | :-----------: |
6909 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6910
6911 ### %Video Pin
6912 | Property | Value |
6913 | ---------------------------------------------------- | :-----------: |
6914 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG2_Video](@ref primo::codecs::StreamType::MPEG2_Video) |
6915 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 18300000 bps |
6916 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6917 | [ColorFormat (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setColorFormat) | [YUV420](@ref primo::codecs::ColorFormat::YUV420) |
6918 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
6919 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
6920 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6921 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6922 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 29.97 |
6923 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
6924
6925 ### %Audio Pin
6926 | Property | Value |
6927 | ---------------------------------------------------- | :-----------: |
6928 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
6929 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer2](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer2) |
6930 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 384000 bps |
6931 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6932 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6933 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6934 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6935 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6936 */
6937
6938 /**
6939 Video: MPEG-2, 25 fps, 1280x720, aspect 16:9 <br />
6940 Audio: MPEG-1 Layer 2, 48000 Hz, stereo, 16bits <br />
6941 Container: TS (MPEG-2 Transport Stream) <br />
6942 */
6943 static const char MPEG_720p_25p[] = "hdv.m2t.720p.25p";
6944 /*!<
6945 ### Socket
6946 | Property | Value |
6947 | ---------------------------------------------------- | :-----------: |
6948 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6949
6950 ### %Video Pin
6951 | Property | Value |
6952 | ---------------------------------------------------- | :-----------: |
6953 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG2_Video](@ref primo::codecs::StreamType::MPEG2_Video) |
6954 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 18300000 bps |
6955 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6956 | [ColorFormat (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setColorFormat) | [YUV420](@ref primo::codecs::ColorFormat::YUV420) |
6957 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
6958 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
6959 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6960 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
6961 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 25 |
6962 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
6963
6964 ### %Audio Pin
6965 | Property | Value |
6966 | ---------------------------------------------------- | :-----------: |
6967 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
6968 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer2](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer2) |
6969 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 384000 bps |
6970 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6971 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
6972 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
6973 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
6974 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
6975 */
6976
6977 /**
6978 Video: MPEG-2, 23.976 fps, 1280x720, aspect 16:9 <br />
6979 Audio: MPEG-1 Layer 2, 48000 Hz, stereo, 16bits <br />
6980 Container: TS (MPEG-2 Transport Stream) <br />
6981 */
6982 static const char MPEG_720p_24p[] = "hdv.m2t.720p.24p";
6983 /*!<
6984 ### Socket
6985 | Property | Value |
6986 | ---------------------------------------------------- | :-----------: |
6987 | [StreamType](@ref primo::codecs::StreamType) | [MPEG_TS](@ref primo::codecs::StreamType::MPEG_TS) |
6988
6989 ### %Video Pin
6990 | Property | Value |
6991 | ---------------------------------------------------- | :-----------: |
6992 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG2_Video](@ref primo::codecs::StreamType::MPEG2_Video) |
6993 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 18300000 bps |
6994 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
6995 | [ColorFormat (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setColorFormat) | [YUV420](@ref primo::codecs::ColorFormat::YUV420) |
6996 | [FrameWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameWidth) | 1280 |
6997 | [FrameHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameHeight) | 720 |
6998 | [DisplayRatioWidth (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioWidth) | 16 |
6999 | [DisplayRatioHeight (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setDisplayRatioHeight) | 9 |
7000 | [FrameRate (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setFrameRate) | 23.976 |
7001 | [ScanType (VideoStreamInfo)](@ref primo::codecs::VideoStreamInfo::setScanType) | [Progressive](@ref primo::codecs::ScanType::Progressive) |
7002
7003 ### %Audio Pin
7004 | Property | Value |
7005 | ---------------------------------------------------- | :-----------: |
7006 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [MPEG_Audio](@ref primo::codecs::StreamType::MPEG_Audio) |
7007 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [MPEG_Audio_Layer2](@ref primo::codecs::StreamSubType::MPEG_Audio_Layer2) |
7008 | [Bitrate (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrate) | 384000 bps |
7009 | [BitrateMode (StreamInfo)](@ref primo::codecs::StreamInfo::setBitrateMode) | [CBR](@ref primo::codecs::BitrateMode::CBR) |
7010 | [ChannelLayout (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannelLayout) | [LayoutStereo](@ref primo::codecs::AudioChannelFlags::LayoutStereo) |
7011 | [Channels (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setChannels) | 2 |
7012 | [SampleRate (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setSampleRate) | 48000 Hz |
7013 | [BitsPerSample (AudioStreamInfo)](@ref primo::codecs::AudioStreamInfo::setBitsPerSample) | 16 |
7014 */
7015 }
7016
7017 /** Presets for fastest possible encoding. These presets are designed for real-time video capture applications. */
7018 namespace Fast
7019 {
7020 /** Fast MP4 presets (audio and video streams in MP4 container) */
7021 namespace MP4
7022 {
7023 /**
7024 Video: H.264<br/>
7025 Audio: AAC<br/>
7026 Container: MP4<br/>
7027
7028 %Fast H.264 encoding.
7029 */
7030 static const char H264_AAC[] = "fast.mp4.h264.aac";
7031 /*!<
7032 ### Socket
7033 | Property | Value |
7034 | ---------------------------------------------------- | :-----------: |
7035 | [StreamType](@ref primo::codecs::StreamType) | [MP4](@ref primo::codecs::StreamType::MP4) |
7036
7037 ### %Video Pin
7038 | Property | Value |
7039 | ---------------------------------------------------- | :-----------: |
7040 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [H264](@ref primo::codecs::StreamType::H264) |
7041 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AVC1](@ref primo::codecs::StreamSubType::AVC1) |
7042
7043 ### %Video Pin %Parameters
7044 | %Parameter | Value |
7045 | ---------------------------------------------------- | :-----------: |
7046 | [H264Profile](@ref primo::avblocks::Param::Encoder::Video::H264::Profile) | [Baseline](@ref primo::codecs::H264Profile::Baseline) |
7047 | [EntropyCodingMode](@ref primo::avblocks::Param::Encoder::Video::H264::EntropyCodingMode) | [CAVLC](@ref primo::codecs::H264EntropyCodingMode::CAVLC) |
7048 | [NumBFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumBFrames) | 0 |
7049 | [NumRefFrames](@ref primo::avblocks::Param::Encoder::Video::H264::NumRefFrames) | 1 |
7050 | [Transform8x8](@ref primo::avblocks::Param::Encoder::Video::H264::Transform8x8) | FALSE |
7051 | [KeyFrameInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameInterval) | 15 |
7052 | [KeyFrameIDRInterval](@ref primo::avblocks::Param::Encoder::Video::H264::KeyFrameIDRInterval) | 1 |
7053 | [QualitySpeed](@ref primo::avblocks::Param::Encoder::Video::H264::QualitySpeed) | 0 |
7054 | [RateControlMethod](@ref primo::avblocks::Param::Encoder::Video::H264::RateControlMethod) | [ConstantQuant](@ref primo::codecs::H264RateControlMethod::ConstantQuant) |
7055 | [RateControlQuantI](@ref primo::avblocks::Param::Encoder::Video::H264::RateControlQuantI) | 26 |
7056 | [RateControlQuantP](@ref primo::avblocks::Param::Encoder::Video::H264::RateControlQuantP) | 26 |
7057 | [DeblockingFilter](@ref primo::avblocks::Param::Encoder::Video::H264::DeblockingFilter) | [InSlice](@ref primo::codecs::H264DeblockingFilter::InSlice) |
7058 | [MESplitMode](@ref primo::avblocks::Param::Encoder::Video::H264::MESplitMode) | [Only16x16](@ref primo::codecs::H264MeSplitMode::Only16x16) |
7059 | [MEMethod](@ref primo::avblocks::Param::Encoder::Video::H264::MEMethod) | [UMH](@ref primo::codecs::H264MeMethod::UMH) |
7060
7061 ### %Audio Pin
7062 | Property | Value |
7063 | ---------------------------------------------------- | :-----------: |
7064 | [StreamType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamType) | [AAC](@ref primo::codecs::StreamType::AAC) |
7065 | [StreamSubType (StreamInfo)](@ref primo::codecs::StreamInfo::setStreamSubType) | [AAC_MP4](@ref primo::codecs::StreamSubType::AAC_MP4) |
7066 */
7067 }
7068 }
7069 }
7070 }
7071
7072
7073 /**
7074 An input or output point of the Transcoder.
7075
7076 A MediaSocket object describes either a container (WAV, AVI, MP4, etc.) with one or more streams or
7077 simply an elementary stream (MP3, M2V, etc.).
7078
7079 When MediaSocket describes a container the child collection of \link MediaSocket::pins media pins\endlink
7080 can contain one or more items (for each contained stream).
7081 The \link MediaSocket::streamType socket stream type\endlink designates the container type.
7082
7083 When MediaSocket describes an elementary stream the child collection of \link MediaSocket::pins media pins\endlink
7084 contains a single item which is the elementary stream itself.
7085 The \link MediaSocket::streamType socket stream type\endlink is the same as the pin stream type.
7086
7087 @see Library::createMediaSocket
7088 @see \ref object_management "Object Management"
7089 */
7090 class MediaSocket: public primo::Reference
7091 {
7092 public:
7093
7094 /**
7095 Creates a deep copy of this object.
7096
7097 @return A new MediaSocket object.
7098 The caller is responsible for releasing the new object when it is not needed anymore.
7099
7100 @return <b>NULL</b> if there is not enough memory to clone the object.
7101
7102 @remarks
7103 When cloned an immutable object becomes mutable.
7104
7105 @see \ref object_management "Object Management"
7106 */
7107 virtual MediaSocket* clone() const = 0;
7108
7109 /**
7110 Sets the file associated with the media socket.
7111
7112 @param filename [in] a filename as a Unicode zero terminated string. If <b>NULL</b> the filename is cleared.
7113 When not <b>NULL</b> the filename is copied internally and is not required after the method returns.
7114
7115 @return TRUE if the file name is successfully set, otherwise FALSE.
7116 */
7117 virtual bool_t setFile(const char_t* filename) = 0;
7118
7119 /**
7120 Returns the file associated with the media socket and previously set via setFile().
7121
7122 @return A filename as a Unicode zero terminated string. Can be <b>NULL</b> if the file is not set. The default value is <b>NULL</b>.
7123 */
7124 virtual const char_t* file() const = 0;
7125
7126 /**
7127 Sets the user stream associated with the media socket. This is an alternative to setFile().
7128
7129 @param stream [in] A pointer to a Stream object. If <b>NULL</b> the stream object is cleared.
7130 Internally the Stream object is retained by MediaSocket, so it is safe to release it after this method returns.
7131
7132 When both a file and a user stream are associated with a socket the transcoder prefers the stream.
7133
7134 @return TRUE if the stream is successfully set, otherwise FALSE.
7135
7136 @see \ref object_management "Object Management"
7137 */
7138 virtual bool_t setStream(primo::Stream* stream) = 0;
7139
7140 /**
7141 Returns the associated user stream previously set via setStream().
7142
7143 @return A Stream object. Can be <b>NULL</b> if the associated stream is not set. The default value is <b>NULL</b>.
7144 */
7145 virtual primo::Stream* stream() const = 0;
7146
7147 /**
7148 Sets explicitly the format of the associated file or stream.
7149
7150 @param streamType [in] stream type such as AVI, WAV, MP4, etc.
7151
7152 The Transcoder uses this format and the associated file or stream
7153 according to following rules:
7154
7155 <table>
7156 <caption>Using File, Stream and Type in MediaSocket</caption>
7157 <tr>
7158 <td>File</td>
7159 <td>Stream</td>
7160 <td>Type</td>
7161 <td>How MediaSocket is treated by Transcoder</td>
7162 </tr>
7163 <tr>
7164 <td> Y </td>
7165 <td> N </td>
7166 <td> N </td>
7167 <td> OK - the socket defines a file whose type is implicitly determined by
7168 the file extension.</td>
7169 </tr>
7170 <tr>
7171 <td> Y </td>
7172 <td> N </td>
7173 <td> Y </td>
7174 <td> OK - the socket defines a file whose type is explicitly specified by
7175 the stream type.</td>
7176 </tr>
7177 <tr>
7178 <td> Y,N </td>
7179 <td> Y </td>
7180 <td> Y </td>
7181 <td> OK - the socket defines a user stream whose type is explicitly specified.</td>
7182 </tr>
7183 <tr>
7184 <td> Y,N </td>
7185 <td> Y </td>
7186 <td> N </td>
7187 <td> Error - the socket defines a user stream but its type is unknown.</td>
7188 </tr>
7189 <tr>
7190 <td> N </td>
7191 <td> N </td>
7192 <td> Y </td>
7193 <td> OK - the socket does not have a physical storage.
7194 it only describes the input/output data.
7195 This is the required definition for input sockets when the push() method is used and
7196 also the required definition for output sockets when the pull() method is used.
7197 </td>
7198 </tr>
7199 <tr>
7200 <td> N </td>
7201 <td> N </td>
7202 <td> N </td>
7203 <td> Error - undefined socket.
7204 </td>
7205 </tr>
7206 </table>
7207
7208 @return TRUE if the stream type is successfully set, otherwise FALSE.
7209 @see primo::codecs::StreamType
7210 */
7211 virtual bool_t setStreamType(primo::codecs::StreamType::Enum streamType) = 0;
7212
7213 /**
7214 Returns the stream type of the associated file or user stream.
7215
7216 @return stream type. If not set \link primo::codecs::StreamType::Unknown StreamType::Unknown\endlink is returned.
7217 */
7218 virtual primo::codecs::StreamType::Enum streamType() const = 0;
7219
7220 /**
7221 Sets explicitly the stream subtype of the associated file or user stream.
7222
7223 @return TRUE if the stream subtype is successfully set, otherwise FALSE.
7224 */
7225 virtual bool_t setStreamSubType(primo::codecs::StreamSubType::Enum streamSubType) = 0;
7226
7227 /**
7228 Returns the stream subtype of the associated file or user stream.
7229
7230 @return stream subtype. If not set \link primo::codecs::StreamSubType::Unknown StreamSubType::Unknown\endlink is returned.
7231 */
7232 virtual primo::codecs::StreamSubType::Enum streamSubType() const = 0;
7233
7234 /**
7235 Returns a collection of socket parameters.
7236
7237 These parameters are used when splitting the input or multiplexing the output defined by this media socket.
7238
7239 @return A ParameterList object. Can be <b>NULL</b> if the collection is not set. The default value is an empty list.
7240
7241 The caller is not required to release the returned object.
7242
7243 @see \ref object_management "Object Management"
7244 */
7245 virtual ParameterList* params() const = 0;
7246
7247 /**
7248 Sets the socket parameters.
7249
7250 @param params [in] A pointer to a ParameterList object. If <b>NULL</b> the stored collection is reset to <b>NULL</b>.
7251 Internally the ParameterList object is retained by MediaSocket, so it is safe to release it after this method returns.
7252
7253 @see \ref object_management "Object Management"
7254 */
7255 virtual bool_t setParams(ParameterList* params) = 0;
7256
7257 /**
7258 Returns a modifiable collection with all the pins (elementary streams) that are defined for this socket.
7259
7260 @return A collection of MediaPin objects.
7261 The default value is an empty collection which can be modified but it cannot be replaced.
7262
7263 The returned collection exists only in the context of MediaSocket.
7264 The caller cannot influence the lifetime of the returned object.
7265 */
7266 virtual MediaPinList* pins() const = 0;
7267
7268 /**
7269 Sets the socket time position.
7270
7271 This property can be used on an input socket to start reading / decoding from a specific point in time.
7272 The transcoder tries to seek in the input socket to the time position before the transcoding operation starts.
7273
7274 Seeking is not possible while transcoder is open. %Transcoder need to be closed before setting new time possition.
7275
7276 @param time [in] Time position in seconds.
7277
7278 @return TRUE if the time position is successfully set, otherwise FALSE.
7279 */
7280 virtual bool_t setTimePosition(double time) = 0;
7281
7282 /**
7283 Returns the socket time position.
7284
7285 This property can be used on an input socket to start reading / decoding from a specific point in time.
7286 The transcoder tries to seek in the input socket to the time position before the transcoding operation starts.
7287
7288 @return Time position in seconds.
7289 */
7290 virtual double timePosition() const = 0;
7291
7292 /**
7293 Returns the socket metadata.
7294
7295 @return A pointer to a Metadata object. Can be <b>NULL</b> if the socket has no metadata.
7296 */
7297 virtual primo::codecs::Metadata* metadata() const = 0;
7298
7299 /**
7300 Sets the socket metadata.
7301
7302 When an output socket has metadata the transcoder tries to generate it regardless of the input metadata.
7303 When an output socket has no metadata (<b>NULL</b>) but an input socket has metadata (not <b>NULL</b>)
7304 the transcoder uses the input metadata as if it is set for the output.
7305
7306 @param metadata [in] A pointer to a Metadata object. Can be <b>NULL</b> in which case the metadata is cleared from the socket.
7307
7308 @return TRUE if the metadata is successfully set, otherwise FALSE.
7309 */
7310 virtual bool_t setMetadata(primo::codecs::Metadata* metadata) = 0;
7311
7312 /**
7313 Returns whether the object is immutable.
7314 An immmutable object cannot be modified and all modifying methods return FALSE.
7315
7316 @return TRUE if the object is immutable, FALSE otherwise.
7317
7318 @remarks
7319 An immutable object <b>can</b> be modified by the AVBlocks library.
7320
7321 @remarks
7322 Object immutability spreads to all nested objects.
7323 Therefore it is not possible to add/set an immutable object to a mutable object.
7324
7325 @remarks
7326 When cloned an immutable object becomes mutable.
7327 */
7328 virtual bool_t immutable() const = 0;
7329
7330 protected:
7331 /**
7332 This object can be destroyed only by the AVBlocks library.
7333 */
7334 ~MediaSocket() {}
7335 };
7336
7337 /**
7338 MediaSocketList represents the inputs or outputs of a Transcoder.
7339 It contains one or more media sockets (MediaSocket objects).
7340 The collection is modifiable and indexable.
7341 It exists only in the context of a Transcoder and cannot be created separately from it,
7342 nor detached.
7343 */
7344 class MediaSocketList
7345 {
7346 public:
7347 /**
7348 Adds a socket to the collection.
7349
7350 @param item [in] A pointer to a MediaSocket object that should be added to the collection.
7351 It is allowed to add a <b>NULL</b> value to the collection.
7352 Internally the MediaSocket object is retained (if not <b>NULL</b>), so it is safe to release it
7353 after this method returns.
7354
7355 @return TRUE if the specified item is added to the collection, otherwise FALSE.
7356
7357 @see Library::createMediaSocket
7358 @see \ref object_management "Object Management"
7359 */
7360 virtual bool_t add(MediaSocket* item) = 0;
7361
7362 /**
7363 Removes a socket from the collection.
7364
7365 @param itemIndex [in] The index of the socket that should be removed from the collection.
7366 Indexing starts from 0.
7367
7368 @return TRUE if the specified item is removed from the collection, otherwise FALSE.
7369
7370 When a MediaSocket object is removed from the collection it is also released.
7371
7372 @see \ref object_management "Object Management"
7373 */
7374 virtual bool_t remove(int32_t itemIndex) = 0;
7375
7376 /**
7377 Removes all sockets from the collection.
7378
7379 When removed from the collection each MediaSocket object is released.
7380
7381 @return TRUE if the collection is cleared, otherwise FALSE.
7382
7383 @see \ref object_management "Object Management"
7384 */
7385 virtual bool_t clear() = 0;
7386
7387 /**
7388 Returns the number of sockets in the collection.
7389
7390 @return number of items in the collection.
7391 */
7392 virtual int32_t count() const = 0;
7393
7394 /**
7395 Returns a media socket specified by index.
7396
7397 @param itemIndex [in] The index of the socket to be returned. Indexing starts from 0.
7398
7399 @return A pointer to the MediaSocket object specified by <i>itemIndex</i>. Can be <b>NULL</b>.
7400
7401 The caller is not required to release the returned object.
7402
7403 @see \ref object_management "Object Management"
7404 */
7405 virtual MediaSocket* at(int32_t itemIndex) const = 0;
7406
7407 /**
7408 Sets a new socket at the specified index.
7409
7410 @param itemIndex [in] The index in the collection where the new item shall be set.
7411 This must be a valid index in the collection. Indexing starts from 0.
7412
7413 @param item [in] A pointer to the MediaSocket object that shall be set.
7414 It is allowed to set a <b>NULL</b> value to the collection.
7415 Internally the new socket is retained (if not <b>NULL</b>), so it is safe to release it
7416 after this method returns. The old socket is released (if not <b>NULL</b>).
7417
7418 @return TRUE The item is set, FALSE otherwise.
7419
7420 @see \ref object_management "Object Management"
7421 */
7422 virtual bool_t setAt(int32_t itemIndex, MediaSocket* item) = 0;
7423
7424 /**
7425 Inserts a socket at the specified index.
7426
7427 @param itemIndex [in] The index in the collection where the new item shall be inserted.
7428 This must be a valid index in the collection. Indexing starts from 0.
7429 After the new item is inserted in the collection its index is the value of the <i>itemIndex</i> param.
7430
7431 @param item [in] A pointer to the MediaSocket object that shall be inserted.
7432 It is allowed to insert a <b>NULL</b> value in the collection.
7433 Internally the new socket is retained (if not <b>NULL</b>), so it is safe to release it
7434 after this method returns.
7435
7436 @return TRUE The item is set, FALSE otherwise.
7437
7438 @see \ref object_management "Object Management"
7439 */
7440 virtual bool_t insert(int32_t itemIndex, MediaSocket* item) = 0;
7441
7442 /**
7443 Returns whether the object is immutable.
7444 An immmutable object cannot be modified and all modifying methods fail to produce a result.
7445
7446 @return TRUE if the object is immutable, FALSE otherwise.
7447
7448 @remarks
7449 An immutable object <b>can</b> be modified by the AVBlocks library.
7450
7451 @remarks
7452 Object immutability spreads to all nested objects.
7453 Therefore it is not possible to add/set an immutable object to a mutable object.
7454 */
7455 virtual bool_t immutable() const = 0;
7456
7457 protected:
7458 /**
7459 This object can be destroyed only by the AVBlocks library.
7460 */
7461 ~MediaSocketList() {}
7462 };
7463
7464 /**
7465 Defines the status of a transcoder operation.
7466
7467 It is sent with the TranscoderCallback::onStatus notification.
7468 */
7469 namespace TranscoderStatus
7470 {
7471 /**
7472 TranscoderStatus::Enum
7473 */
7474 enum Enum
7475 {
7476 /** Transcoder::run has completed successfully. */
7477 Completed = 0,
7478 };
7479 }
7480
7481 /**
7482 The TranscoderCallback provides a way to receive notifications from the Transcoder and also to control its operation
7483 while it is running (Transcoder::run).
7484
7485 This class is meant to be inherited by the user code and only the required notifications/methods can be overridden.
7486
7487 When a TranscoderCallback instance is set (Transcoder::setCallback) it is retained by the Transcoder.
7488 The TranscoderCallback instance is released when the Transcoder itself is being destroyed.
7489
7490 The default implementation of primo::Reference keeps a constant reference count of 1.
7491 This can be used when the user code is the sole owner of the implemented callback and does not need
7492 to manage it through the primo::Reference interface.
7493
7494 The TranscoderCallback is used only when the transcoding is performed via Transcoder::run.
7495
7496 @see \ref object_management "Object Management"
7497
7498 */
7499 class TranscoderCallback : public primo::Reference
7500 {
7501 public:
7502
7503 /**
7504 This method is called periodically by the Transcoder to report transcoding progress. See Transcoder::run.
7505
7506 @param currentTime [in] The duration of the media stream that has been processed so far. Time is in seconds.
7507
7508 @param totalTime [in] The total duration of the media stream that will be processed eventually. Time is in seconds.
7509
7510 For performance reasons this notification is not called for every processed media sample.
7511 Currently it is called once for every 0.5 seconds of processed media data.
7512 This notification is intended for user interface updates.
7513
7514 The transcoding progress in percents is given by: (currentTime / totalTime * 100).
7515
7516 The Transcoder does not guarantee that currentTime will ever reach totalTime
7517 even when the transcoding completes successfully.
7518 */
7519 virtual void onProgress(double currentTime, double totalTime)
7520 {
7521 }
7522
7523 /**
7524 This method is called by the Transcoder to report the status of current operation.
7525
7526 @param status [in] Transcoder status.
7527
7528 @see TranscoderStatus::Enum
7529 */
7530 virtual void onStatus(TranscoderStatus::Enum status)
7531 {
7532 }
7533
7534 /**
7535 This method is called by the Transcoder to give the user code a chance to stop the transcoding process
7536 started by Transcoder::run().
7537
7538 @param currentTime [in] The duration of the media stream that has been processed so far. Time is in seconds.
7539
7540 @return TRUE if the Transcoder should continue running. FALSE if the Transcoder should stop.
7541
7542 When instructed the Transcoder stops the transcoding process gracefully so that
7543 the media data processed is valid (playable).
7544
7545 This notification is called as often as possible so that the user code may stop the transcoding process as soon as it is required.
7546 For this reason there should be minimal processing in this method if it is overridden by the user code,
7547 otherwise the overall transcoding may be slowed down.
7548 */
7549 virtual bool_t onContinue(double currentTime)
7550 {
7551 return 1;
7552 }
7553
7554 /**
7555 This method is called by the Transcoder when an input format has been detected or has changed.
7556 The user code has a chance to inspect detected inputs, re-configure outputs, connect or disable pins.
7557
7558 @param inputIndex [in] The index of the input socket that has changed.
7559 The socket contains pins that describe the new format.
7560
7561 Currently this notification is used by the Transcoder when an input socket is configured without pins
7562 and the input stream is pushed via Transcoder::push().
7563 The notification is invoked when the input format is detected and after the appropriate pins are added to the input socket.
7564 The user code may inspect the input pins and can decide which pins to connect (via MediaPin::setConnection()).
7565 It may also add or remove output sockets and pins.
7566 The Transcoder is fully initialized only after all inputs have been detected and the user code returns from this method.
7567 */
7568 virtual void onInputChange(int32_t inputIndex)
7569 {
7570 }
7571
7572 /**
7573 The default implementation keeps a constant reference count of 1.
7574
7575 @return 1
7576 */
7577 int32_t retain() const { return 1; }
7578
7579 /**
7580 The default implementation keeps a constant reference count of 1.
7581
7582 @return 1
7583 */
7584 int32_t release() const { return 1; }
7585
7586 /**
7587 The default implementation keeps a constant reference count of 1.
7588
7589 @return 1
7590 */
7591 int32_t retainCount() const { return 1; }
7592 };
7593
7594 /**
7595 A Block is a unit that can produce, consume or transform media samples from/to multiple inputs/outputs
7596 */
7597 class Block : public primo::Reference
7598 {
7599 public:
7600
7601 /**
7602 Returns a modifiable collection of MediaSocket objects which
7603 describe the input data of the block.
7604
7605 @return A pointer to a collection of input sockets. Cannot be <b>NULL</b>.
7606 */
7607 virtual MediaSocketList* inputs() const = 0;
7608
7609 /**
7610 Returns a modifiable collection of MediaSocket objects which
7611 describe the output data of the block.
7612
7613 @return A pointer to a collection of output sockets. Cannot be <b>NULL</b>.
7614 */
7615 virtual MediaSocketList* outputs() const = 0;
7616
7617 /**
7618 Initializes the block based on the specified inputs and outputs.
7619
7620 @return TRU The block is successfully initialized and is ready to process data, otherwise FALSE.
7621 */
7622 virtual bool_t open() = 0;
7623
7624 /**
7625 Pushes input data to the block.
7626
7627 @param inputIndex [in] Specifies the index of the input socket whose data is pushed to the block.
7628
7629 @param inputSample [in] A pointer to a MediaSample object that contains the input data.
7630
7631 @return TRUE The block has successfully processed the input data, otherwise FALSE.
7632 */
7633 virtual bool_t push(int32_t inputIndex, primo::codecs::MediaSample* inputSample) = 0;
7634
7635 /**
7636 Pulls output data from the block.
7637
7638 @param outputIndex [out] contains the index of the output socket to which the data belongs.
7639
7640 @param outputData [out] A pointer to a MediaSample object that receives the output data.
7641
7642 @return TRUE The block has successfully generated output, otherwise FALSE.
7643 */
7644 virtual bool_t pull(int32_t& outputIndex, primo::codecs::MediaSample* outputData) = 0;
7645
7646 /**
7647 Closes the block. When closed it can neither accept, nor deliver data.
7648 */
7649 virtual void close() = 0;
7650
7651 /**
7652 Flushes the data buffered in the block to the output.
7653 This method can be used only in push mode.
7654
7655 @return TRUE if the buffered data is successfully flushed, otherwise FALSE.
7656
7657 @remarks This method also marks the end-of-stream for all inputs.
7658 No data should be pushed to the block after it is flushed.
7659 */
7660 virtual bool_t flush() = 0;
7661
7662 /**
7663 Tells the block that there's no more data for the specified input socket.
7664 This method can be used only in push mode.
7665
7666 @param inputIndex [in] specifies the index of the input socket for which there's no more data.
7667
7668 @return TRUE if the operation is successful, otherwise FALSE.
7669 */
7670 virtual bool_t endOfStream(int32_t inputIndex) = 0;
7671
7672 /**
7673 Returns the error information for the last operation.
7674
7675 @return A pointer to an ErrorInfo object.
7676 */
7677 virtual const primo::error::ErrorInfo* error() const = 0;
7678 };
7679
7680
7681 /**
7682 Analyzes a file or a stream and provides information about its type and properties.
7683 */
7684 class MediaInfo: public Block
7685 {
7686 public:
7687 /**
7688 Returns a collection of StreamInfo objects describing the audio and video streams (tracks) found in the input.
7689
7690 @return A read-only collection of StreamInfo objects.
7691 Each StreamInfo object in the collection represents a stream (track) in the analyzed input.
7692
7693 Normally the caller is not required and should not release the returned object.
7694 However it is allowed to retain the collection and it will be valid even
7695 when the MediaInfo instance is destroyed.
7696 In all cases when the caller retains the returned collection it should release it when it is not needed anymore.
7697
7698 @deprecated Please use primo::avblocks::MediaInfo::outputs instead.
7699
7700 @see \ref object_management "Object Management"
7701 */
7702 PRIMO_DEPRECATED("primo::avblocks::MediaInfo::streams is deprecated. Please use primo::avblocks::MediaInfo::outputs.")
7703 virtual primo::codecs::StreamInfoEnum* streams() const = 0;
7704
7705 /**
7706 Sets the input that should be analyzed.
7707
7708 @param filename [in] a filename as an Unicode zero terminated string. If <b>NULL</b> the filename is cleared.
7709 When not <b>NULL</b> the filename is copied internally and is not required to be valid after the method returns.
7710
7711 @deprecated Please use primo::avblocks::MediaInfo::inputs instead.
7712 */
7713 PRIMO_DEPRECATED("primo::avblocks::MediaInfo::setInputFile is deprecated. Please use primo::avblocks::MediaInfo::inputs.")
7714 virtual void setInputFile(const char_t* filename) = 0;
7715
7716 /**
7717 Returns the input file previously set via setInputFile().
7718
7719 @return A filename as an Unicode zero terminated string. Can be <b>NULL</b> if the source file is not set.
7720
7721 @deprecated Please use primo::avblocks::MediaInfo::inputs instead.
7722 */
7723 PRIMO_DEPRECATED("primo::avblocks::MediaInfo::inputFile is deprecated. Please use primo::avblocks::MediaInfo::inputs.")
7724 virtual const char_t* inputFile() const = 0;
7725
7726 /**
7727 Sets the input stream that should be analyzed. This is an alternative to setInputFile().
7728
7729 @param stream [in] A pointer to a \link primo::Stream Stream\endlink object. If <b>NULL</b> the input stream is cleared.
7730 Internally the \link primo::Stream Stream\endlink object is retained by MediaInfo, so it is safe to release it after this method returns.
7731
7732 MediaInfo will use the input file when both an input file and input stream are set.
7733
7734 @deprecated Please use primo::avblocks::MediaInfo::inputs instead.
7735
7736 @see \ref object_management "Object Management"
7737 */
7738 PRIMO_DEPRECATED("primo::avblocks::MediaInfo::setInputStream is deprecated. Please use primo::avblocks::MediaInfo::inputs.")
7739 virtual void setInputStream(primo::Stream* stream) = 0;
7740
7741 /**
7742 Returns the input stream previously set via setInputStream().
7743
7744 @return A Stream object. Can be <b>NULL</b> if the source stream is not set.
7745
7746 @deprecated Please use primo::avblocks::MediaInfo::inputs instead.
7747 */
7748 PRIMO_DEPRECATED("primo::avblocks::MediaInfo::inputStream is deprecated. Please use primo::avblocks::MediaInfo::inputs.")
7749 virtual primo::Stream* inputStream() const = 0;
7750
7751 /**
7752 Forces a specific stream type.
7753
7754 @param streamType [in] stream type such as AVI, WAV, MP4, etc.
7755
7756 If the input is a file and the stream type is not set, the stream type is deduced from the filename extension.
7757 If the input is a stream, MediaInfo requires the stream type to be specified.
7758 If the stream type is set to something other than \link primo::codecs::StreamType::Unknown StreamType::Unknown\endlink,
7759 it takes precedence and is used by MediaInfo regardless of the detected stream type.
7760
7761 @deprecated Please use primo::avblocks::MediaInfo::inputs instead.
7762 */
7763 PRIMO_DEPRECATED("primo::avblocks::MediaInfo::setStreamType is deprecated. Please use primo::avblocks::MediaInfo::inputs.")
7764 virtual void setStreamType(primo::codecs::StreamType::Enum streamType) = 0;
7765
7766 /**
7767 Returns the stream type previously set via setStreamType() or the one detected by MediaInfo.
7768
7769 @return input stream type. The default value is \link primo::codecs::StreamType::Unknown StreamType::Unknown\endlink.
7770
7771 @deprecated Please use primo::avblocks::MediaInfo::inputs instead.
7772 */
7773 PRIMO_DEPRECATED("primo::avblocks::MediaInfo::streamType is deprecated. Please use primo::avblocks::MediaInfo::inputs.")
7774 virtual primo::codecs::StreamType::Enum streamType() const = 0;
7775
7776 /**
7777 Returns the stream subtype detected by MediaInfo.
7778
7779 @return input stream subtype. The default value is \link primo::codecs::StreamSubType::Unknown StreamSubType::Unknown\endlink.
7780
7781 @deprecated Please use primo::avblocks::MediaInfo::inputs instead.
7782 */
7783 PRIMO_DEPRECATED("primo::avblocks::MediaInfo::streamSubType is deprecated. Please use primo::avblocks::MediaInfo::inputs.")
7784 virtual primo::codecs::StreamSubType::Enum streamSubType() const = 0;
7785
7786 /**
7787 Analyzes the input specified by setInputFile() or setInputStream() and loads the information in the MediaInfo object.
7788
7789 @return TRUE if the input is successfully analyzed, otherwise FALSE.
7790
7791 If this method is successful the information about the detected media streams (tracks) and metadata can be obtained from MediaInfo.
7792
7793 @deprecated Please use primo::avblocks::MediaInfo::open instead.
7794
7795 @see MediaInfo::streams
7796 @see MediaInfo::metadata
7797 */
7798 PRIMO_DEPRECATED("primo::avblocks::MediaInfo::load is deprecated. Please use primo::avblocks::MediaInfo::open.")
7799 virtual bool_t load() = 0;
7800
7801 /**
7802 Returns the metadata for the input.
7803
7804 @return A pointer to a Metadata object. Can be <b>NULL</b> if the input has no metadata.
7805
7806 Normally the caller is not required and should not release the returned object.
7807 However it is allowed to retain the Metadata object and it will be valid even
7808 when the MediaInfo instance is destroyed.
7809 In all cases when the caller retains the returned object it should release it when it is not needed anymore.
7810
7811 @deprecated Please use primo::avblocks::MediaInfo::outputs instead.
7812
7813 @see \ref object_management "Object Management"
7814 */
7815 PRIMO_DEPRECATED("primo::avblocks::MediaInfo::metadata is deprecated. Please use primo::avblocks::MediaInfo::outputs.")
7816 virtual primo::codecs::Metadata* metadata() const = 0;
7817
7818 /**
7819 Indicates whether stream info and metadata have been loaded and parsed.
7820 @see \ref primo::avblocks::MediaInfo::push "MediaInfo::push"
7821 */
7822 virtual bool_t isReady() = 0;
7823
7824 /**
7825 Pushes input data to the <b>MediaInfo</b>.
7826
7827 @param inputIndex [in] Specifies the index of the input socket whose data is pushed to the MediaInfo. Must be zero.
7828
7829 @param inputSample [in] A pointer to a MediaSample object that contains the input data.
7830
7831 @return TRUE The <b>MediaInfo</b> has successfully processed the input data, otherwise FALSE.
7832
7833 @remarks In order to use this method the inputs()->at(0)->streamType() must be set and open() must be called.
7834
7835 @see MediaInfo::isReady
7836
7837 @note
7838 <table border="0">
7839 <tr>
7840 <td>Supported stream types:</td>
7841 <td>\link primo::codecs::StreamType::MPEG1_Video StreamType::MPEG1_Video\endlink</td>
7842 </tr>
7843 <tr>
7844 <td></td>
7845 <td>\link primo::codecs::StreamType::MPEG2_Video StreamType::MPEG2_Video\endlink</td>
7846 </tr>
7847 <tr>
7848 <td></td>
7849 <td>\link primo::codecs::StreamType::H264 StreamType::H264\endlink</td>
7850 </tr>
7851 <tr>
7852 <td></td>
7853 <td>\link primo::codecs::StreamType::MPEG_TS StreamType::MPEG_TS\endlink</td>
7854 </tr>
7855 </table>
7856 */
7857 virtual bool_t push(int32_t inputIndex, primo::codecs::MediaSample* inputSample) = 0;
7858
7859 /**
7860 Returns a modifiable collection of MediaSocket objects which describe the input data of the MediaInfo.
7861 The collection contains one default MediaSocket that must be configured.
7862
7863 Each socket in the collection represents an input point -
7864 it can be a container with one or more streams or just an elementary stream.
7865
7866 @return A pointer to a collection of input sockets. Cannot be <b>NULL</b>.
7867 */
7868 virtual MediaSocketList* inputs() const = 0;
7869
7870
7871 /**
7872 Returns an immutable collection of MediaSocket objects describing the audio and video streams (tracks) found in the input.
7873
7874 @return A pointer to a collection of output sockets. Cannot be <b>NULL</b>.
7875 */
7876 virtual MediaSocketList* outputs() const = 0;
7877
7878 /**
7879 Analyzes the input specified by inputs() and loads the information in the MediaInfo object.
7880
7881 @return TRUE if the input is successfully analyzed.
7882 @return FALSE if the input could not be analyzed. In this case, the error() method will return detailed error information.
7883
7884 If this method succeeds the information about the detected media streams (tracks) and metadata can be obtained from MediaInfo.
7885 */
7886 virtual bool_t open() = 0;
7887
7888 protected:
7889 /**
7890 This object can be destroyed only by the AVBlocks library.
7891 */
7892 ~MediaInfo() {}
7893 };
7894
7895
7896 /**
7897 Provides functionality for audio and video encoding, decoding and transforming.
7898 */
7899 class Transcoder : public primo::avblocks::Block
7900 {
7901 public:
7902
7903 /**
7904 Returns a modifiable collection of MediaSocket objects which
7905 describe the input data of the transcoder.
7906
7907 Each socket in the collection represents an input point -
7908 it can be a container with one or more streams or just an elementary stream.
7909
7910 @return A pointer to a collection of input sockets. Cannot be <b>NULL</b>.
7911
7912 The returned collection exists only in the context of the transcoder.
7913 The caller cannot influence the lifetime of the returned object.
7914 */
7915 virtual MediaSocketList* inputs() const = 0;
7916
7917 /**
7918 Returns a modifiable collection of MediaSocket objects which
7919 describe the output data of the transcoder.
7920
7921 Each socket in the collection describes an output point -
7922 it can be a container with one or more streams or just an elementary stream.
7923
7924 @return A pointer to a collection of output sockets. Cannot be <b>NULL</b>.
7925
7926 The returned collection exists only in the context of transcoder.
7927 The caller cannot influence the lifetime of the returned object.
7928 */
7929 virtual MediaSocketList* outputs() const = 0;
7930
7931 /**
7932 Initializes the transcoder based on the specified inputs and outputs.
7933 If this method succeeds the transcoder is ready to process data.
7934 The data flow may be driven by the following methods:
7935 <ul>
7936 <li>push() - The caller pushes input data to the transcoder.
7937 The transcoder writes the output data to a file or user stream.
7938 </li>
7939 <li>pull() - The caller pulls output data from the transcoder.
7940 The transcoder reads the input data from a file or user stream.
7941 </li>
7942 <li>push() and pull() - The caller pushes input data to the transcoder.
7943 It also pulls the output data from the transcoder.
7944 </li>
7945 <li>run() - The caller waits for the transcoding to finish.
7946 The transcoder automatically reads the input data from a file or user stream
7947 and writes the output to a file or user stream.
7948 The process runs until the input data is depleted or there's a processing error.
7949 </li>
7950 </ul>
7951 However not all stream types can be used in push or pull mode. See \ref transcoder_io for more info.
7952
7953 @return <table>
7954 <tr>
7955 <td>TRUE</td> <td>The block is successfully initialized and is ready to process data.</td>
7956 </tr>
7957 <tr>
7958 <td>FALSE</td> <td>The block cannot process the specified input and output data.</td>
7959 </tr>
7960 </table>
7961 */
7962 virtual bool_t open() = 0;
7963
7964 /**
7965 Closes the transcoder. When closed it can neither accept, nor deliver data.
7966 Inputs and outputs are not modified.
7967 */
7968 virtual void close() = 0;
7969
7970 /**
7971 Flushes the data buffered in the transcoder to the output.
7972 This method can be used only in push mode.
7973
7974 @return TRUE if the buffered data is successfully flushed, otherwise FALSE.
7975
7976 @remarks This method also marks the end-of-stream for all inputs.
7977 No data should be pushed to the transcoder after it is flushed.
7978 */
7979 virtual bool_t flush() = 0;
7980
7981 /**
7982 Tells the transcoder that there's no more data for the specified input socket.
7983 If the last input socket is stopped the transcoder flushes its internal buffers to the output.
7984 This method can be used only in push mode.
7985
7986 @param inputIndex [in] specifies the index of the input socket for which there's no more data.
7987
7988 @return TRUE if the operation is successful, otherwise FALSE.
7989 */
7990 virtual bool_t endOfStream(int32_t inputIndex) = 0;
7991
7992 /**
7993 Sets the autoConnect property of the transcoder.
7994 If autoConnect is TRUE the transcoder automatically maps input to output pins when opened.
7995
7996 @param autoConnect [in] specifies to auto connect input and output pins.
7997 */
7998 virtual void setAutoConnect(bool_t autoConnect) = 0;
7999
8000 /**
8001 Returns the autoConnect property of the transcoder.
8002
8003 @return TRUE the transcoder automatically maps input to output pins when opened.
8004 */
8005 virtual bool_t autoConnect() const = 0;
8006
8007 /**
8008 Runs an automatic transcoding.
8009
8010 @return TRUE The transcoding has succeeded. FALSE There's a transcoding error
8011 or the run() method cannot be used with the specified inputs and outputs.
8012
8013 In order to use the run mode all input and output sockets must be associated with files or user streams.
8014 The method returns when the transcoding is finished because there's no more input data to process or
8015 when there's an error.
8016
8017 @note
8018 The input socket can specify an image file in which case the output video contains a single frame.
8019 A single frame video (MPEG-2) can be used as a background in DVD-Video authoring.
8020 For generating a custom video from many images see Transcoder::push.
8021 */
8022 virtual bool_t run() = 0;
8023
8024 // WARNING: The `Supported stream types` table must be under the `push` and `pull` methods below.
8025 // The documentation gets ruined if there is a comment between the table and the method
8026 /**
8027 Pushes input data to the Transcoder.
8028
8029 @param inputIndex [in] Specifies the index of the input socket whose data is pushed to the Transcoder.
8030
8031 @param inputSample [in] A pointer to a MediaSample object that contains the input data.
8032 The MediaSample provided is used only within this method and the object is not retained by the Transcoder.
8033 It is not guaranteed that the whole input will be consumed (read) by the Transcoder after this method has returned.
8034 It's possible that the Transcoder may consume only part of the provided input data.
8035 When this method returns successfully
8036 the \link primo::codecs::MediaBuffer::dataSize MediaBuffer::dataSize\endlink and
8037 the \link primo::codecs::MediaBuffer::dataOffset MediaBuffer::dataOffset\endlink
8038 are updated to reflect how much data is left and where it starts in the buffer.
8039 This must be taken into consideration if more data should be appended for subsequent pushing.
8040
8041 @return TRUE The Transcoder has successfully processed some or all of the input data, otherwise FALSE.
8042
8043 @remarks In order to use this method the input socket must not have an associated file or user stream.
8044 If the transcoder operates in the hybrid push/pull mode it will return
8045 \ref primo::avblocks::TranscoderError::InputFull "TranscoderError::InputFull" when it cannot accept the input.
8046 In this case Transcoder::pull() must be called to retrieve the available output.
8047
8048 @note
8049 The input sample can contain an image like bmp, png or jpeg.
8050 This makes it possible to create a video from one or more images with any duration.
8051 The start time of each input sample must be set explicitly and must increase for each successive sample.
8052
8053 @warning
8054 This method is not thread-safe (as all other functions in AVBlocks). It cannot be called simultaneously from multiple threads.
8055 You must implement your own synchronization if the method will be called from multiple threads.
8056 */
8057 virtual bool_t push(int32_t inputIndex, primo::codecs::MediaSample* inputSample) = 0;
8058 /*!<
8059 | Supported %Stream Types | %MediaSample format |
8060 |:--------------------------- |:--------------------------- |
8061 | \link primo::codecs::StreamType::LPCM StreamType::LPCM\endlink | |
8062 | \link primo::codecs::StreamType::ALAW_PCM StreamType::ALAW_PCM\endlink | |
8063 | \link primo::codecs::StreamType::MULAW_PCM StreamType::MULAW_PCM\endlink | |
8064 | \link primo::codecs::StreamType::G726_ADPCM StreamType::G726_ADPCM\endlink | |
8065 | \link primo::codecs::StreamType::UncompressedVideo StreamType::UncompressedVideo\endlink | |
8066 | \link primo::codecs::StreamType::MPEG1_Video StreamType::MPEG1_Video\endlink | |
8067 | \link primo::codecs::StreamType::MPEG2_Video StreamType::MPEG2_Video\endlink | |
8068 | \link primo::codecs::StreamType::MPEG4_Video StreamType::MPEG4_Video\endlink | |
8069 | \link primo::codecs::StreamType::H264 StreamType::H264\endlink | |
8070 | \link primo::codecs::StreamType::MJPEG StreamType::MJPEG\endlink | |
8071 | \link primo::codecs::StreamType::MPEG_TS StreamType::MPEG_TS\endlink | |
8072 | \link primo::codecs::StreamType::BMP StreamType::BMP\endlink | |
8073 | \link primo::codecs::StreamType::PNG StreamType::PNG\endlink | |
8074 | \link primo::codecs::StreamType::JPEG StreamType::JPEG\endlink | See [Pushing JPEG](@ref using_transcoder_push_jpeg) |
8075 | \link primo::codecs::StreamType::TIFF StreamType::TIFF\endlink | |
8076 | \link primo::codecs::StreamType::GIF StreamType::GIF\endlink | |
8077 */
8078
8079 /**
8080 Pulls output data from the transcoder.
8081
8082 @param outputIndex [out] contains the index of the output socket to which the data belongs.
8083
8084 @param outputData [out] A pointer to a MediaSample object that receives the output data.
8085 When the method returns successfully the <i>outputData</i> contains the output sample.
8086
8087 Each time output data is generated a new MediaBuffer instance is created and attached to <i>outputData</i>.
8088 The new MediaBuffer instance belongs to the caller and must be released when it is not needed anymore.
8089
8090 @return TRUE The transcoder has successfully generated output, otherwise FALSE.
8091
8092 @remarks In order to use the pull mode the output sockets must not have an associated file or user stream.
8093 If the transcoder operates in the hybrid push/pull mode it will return
8094 \ref primo::avblocks::TranscoderError::InputNeeded "TranscoderError::InputNeeded" when needs more input data.
8095 In this case Transcoder::push() must be called to supply input data to the transcoder.
8096
8097 @warning
8098 This method is not thread-safe (as all other functions in AVBlocks). It cannot be called simultaneously from multiple threads.
8099 You must implement your own synchronization if the method will be called from multiple threads.
8100 */
8101 virtual bool_t pull(int32_t& outputIndex, primo::codecs::MediaSample* outputData) = 0;
8102 /*!<
8103 | Supported Stream Types |
8104 |:--------------------------- |
8105 | \link primo::codecs::StreamType::LPCM StreamType::LPCM\endlink |
8106 | \link primo::codecs::StreamType::ALAW_PCM StreamType::ALAW_PCM\endlink |
8107 | \link primo::codecs::StreamType::MULAW_PCM StreamType::MULAW_PCM\endlink |
8108 | \link primo::codecs::StreamType::G726_ADPCM StreamType::G726_ADPCM\endlink |
8109 | \link primo::codecs::StreamType::UncompressedVideo StreamType::UncompressedVideo\endlink |
8110 | \link primo::codecs::StreamType::MPEG1_Video StreamType::MPEG1_Video\endlink |
8111 | \link primo::codecs::StreamType::MPEG2_Video StreamType::MPEG2_Video\endlink |
8112 | \link primo::codecs::StreamType::MPEG4_Video StreamType::MPEG4_Video\endlink |
8113 | \link primo::codecs::StreamType::H264 StreamType::H264\endlink |
8114 | \link primo::codecs::StreamType::MPEG_TS StreamType::MPEG_TS\endlink |
8115 | \link primo::codecs::StreamType::MPEG_PSI_PACKETS StreamType::MPEG_PSI_PACKETS\endlink |
8116 | \link primo::codecs::StreamType::MPEG_TS_PACKETS StreamType::MPEG_TS_PACKETS\endlink |
8117 | \link primo::codecs::StreamType::WAVE StreamType::WAVE\endlink |
8118 */
8119
8120 /**
8121 Sets a TranscoderCallback instance which is used to receive notifications from the transcoder.
8122 The TranscoderCallback is used only when the transcoding is performed via Transcoder::run.
8123
8124 @param callback [in] A pointer to TranscoderCallback object that will be invoked by the transcoder while running.
8125 It is allowed to set a <b>NULL</b> object.
8126
8127 Internally the TranscoderCallback specified by <i>setCallback</i> is retained (if not <b>NULL</b>).
8128 The previous TranscoderCallback is released (if not <b>NULL</b>).
8129 The TranscoderCallback instance is released when the Transcoder itself is being destroyed.
8130
8131 @note
8132 If the user code inherits from TranscoderCallback but does not override primo::Reference::release() and
8133 primo::Reference::retain() it must ensure that the callback instance is valid until it is used by the transcoder.
8134 This is so because the default implementation of primo::Reference in TranscoderCallback keeps a constant reference count of 1.
8135
8136 @see TranscoderCallback
8137 */
8138 virtual void setCallback(primo::avblocks::TranscoderCallback* callback) = 0;
8139
8140 /**
8141 Returns the TranscoderCallback object that is used by the Transcoder to send notifications and events while running.
8142
8143 @return A pointer to TranscoderCallback object or <b>NULL</b> if the callback is not set.
8144 */
8145 virtual primo::avblocks::TranscoderCallback* callback() = 0;
8146
8147
8148 /**
8149 Returns the error information for the last operation.
8150
8151 @return A pointer to an ErrorInfo object.
8152 */
8153 virtual const primo::error::ErrorInfo* error() const = 0;
8154
8155 /**
8156 Sets whether demo mode (unlicensed transcoding) should be allowed by the Transcoder.
8157
8158 @param allowDemoMode [in] specifies whether unlicensed transcoding is allowed.
8159
8160 @remarks The demo mode is enabled by default in the Demo release but not in the OEM release of AVBlocks.
8161 Therefore in order to test transcoding with the OEM release without a valid license the transcoder demo mode must be enabled explicitly.
8162 */
8163 virtual void setAllowDemoMode(bool_t allowDemoMode) = 0;
8164
8165 /**
8166 Returns whether the Transcoder allows demo mode (unlicensed transcoding).
8167
8168 @return If TRUE a demo overlay (watermark) is applied when a required codec is not licensed.
8169 If FALSE the Transcoder returns an error (AVBlocksError::UnlicensedFeature) instead of applying the demo overlay
8170 when a required codec is not licensed.
8171
8172 @remarks The default value is TRUE in the Demo release and FALSE in the OEM release.
8173 */
8174 virtual bool_t allowDemoMode() const = 0;
8175
8176 protected:
8177
8178 /**
8179 This object can be destroyed only by the AVBlocks library. The caller must use Reference::release.
8180
8181 @see \ref object_management "Object Management"
8182 */
8183 ~Transcoder() {}
8184 };
8185
8186 /**
8187 Global hardware configuration
8188 */
8189 class HwConfig
8190 {
8191 public:
8192
8193 /**
8194 Returns whether Intel Quick Sync Video is enabled.
8195
8196 @return TRUE if Intel Quick Sync Video is enabled, FALSE otherwise
8197 */
8198 virtual bool_t intelMedia() const = 0;
8199
8200 /**
8201 Enables/disables use of Intel Quick Sync Video.
8202
8203 @param enable [in] Specifies whether to enable/disable the hardware codec.
8204 */
8205 virtual void setIntelMedia(bool_t enable) = 0;
8206
8207 /**
8208 Returns whether nVidia NVENC is enabled.
8209
8210 @return TRUE if nVidia NVENC is enabled, FALSE otherwise
8211 */
8212 virtual bool_t nvenc() const = 0;
8213
8214 /**
8215 Enables/disables use of nVidia NVENC.
8216
8217 @param enable [in] Specifies whether to enable/disable the hardware codec.
8218 */
8219 virtual void setNvenc(bool_t enable) = 0;
8220
8221 /**
8222 Returns whether AMD Video Coding Engine is enabled through OpenVideo.
8223
8224 @return TRUE if AMD VCE/OpenVideo is enabled, FALSE otherwise
8225 */
8226 virtual bool_t amdOpenVideo() const = 0;
8227
8228 /**
8229 Enables/disables use of AMD Video Coding Engine through OpenVideo.
8230
8231 @param enable [in] Specifies whether to enable/disable the hardware codec.
8232 */
8233 virtual void setAmdOpenVideo(bool_t enable) = 0;
8234
8235 /**
8236 Returns whether AMD Video Coding Engine is enabled through Windows Media Foundation.
8237
8238 @return TRUE if AMD VCE/MFT is enabled, FALSE otherwise
8239 */
8240 virtual bool_t amdMft() const = 0;
8241
8242 /**
8243 Enables/disables use of AMD Video Coding Engine through Windows Media Foundation.
8244
8245 @param enable [in] Specifies whether to enable/disable the hardware codec.
8246 */
8247 virtual void setAmdMft(bool_t enable) = 0;
8248
8249 /**
8250 Resets hardware configuration settings to the default configuration.
8251 */
8252 virtual void resetDefault() = 0;
8253
8254 protected:
8255
8256 /**
8257 This object can be destroyed only by the AVBlocks library.
8258 */
8259 ~HwConfig() {}
8260 };
8261
8262 /**
8263 Global configuration
8264 */
8265 class Config
8266 {
8267 public:
8268
8269 /**
8270 Returns an object that allows to configure hardware codecs.
8271
8272 @return A pointer to a global hardware configuration object. The pointer is never <b>NULL</b>.
8273
8274 @remarks The hardware configuration object is thread-safe.
8275 */
8276 virtual HwConfig* hardware() = 0;
8277
8278 protected:
8279
8280 /**
8281 This object can be destroyed only by the AVBlocks library.
8282 */
8283 ~Config() {}
8284 };
8285
8286 #pragma pack(pop)
8287}} // primo::avblocks
8288
8289
8290/*
8291* Exported functions
8292*/
8293#ifdef __cplusplus
8294extern "C" {
8295#endif
8296
8297 AVBLOCKS_API bool_t AVBLOCKS_CALL avb_initialize();
8298 AVBLOCKS_API bool_t AVBLOCKS_CALL avb_is_initialized();
8299 AVBLOCKS_API void AVBLOCKS_CALL avb_shutdown();
8300 AVBLOCKS_API int32_t AVBLOCKS_CALL avb_get_major_version();
8301 AVBLOCKS_API int32_t AVBLOCKS_CALL avb_get_minor_version();
8302 AVBLOCKS_API int32_t AVBLOCKS_CALL avb_get_patch_version();
8303 AVBLOCKS_API const char* AVBLOCKS_CALL avb_get_description();
8304 AVBLOCKS_API void AVBLOCKS_CALL avb_set_license_tls(bool_t useTls);
8305 AVBLOCKS_API int32_t AVBLOCKS_CALL avb_set_license(const char* license);
8306 AVBLOCKS_API primo::avblocks::Config* AVBLOCKS_CALL avb_config();
8307 AVBLOCKS_API primo::license::LicenseInfo* AVBLOCKS_CALL avb_create_license_info();
8308 AVBLOCKS_API primo::avblocks::Transcoder* AVBLOCKS_CALL avb_create_transcoder();
8309 AVBLOCKS_API primo::error::ErrorInfo* AVBLOCKS_CALL avb_create_error_info();
8310 AVBLOCKS_API primo::codecs::AudioStreamInfo* AVBLOCKS_CALL avb_create_audio_stream_info();
8311 AVBLOCKS_API primo::codecs::VideoStreamInfo* AVBLOCKS_CALL avb_create_video_stream_info();
8312 AVBLOCKS_API primo::codecs::StreamInfo* AVBLOCKS_CALL avb_create_data_stream_info();
8313 AVBLOCKS_API primo::codecs::MediaSample* AVBLOCKS_CALL avb_create_media_sample();
8314 AVBLOCKS_API primo::codecs::MediaBuffer* AVBLOCKS_CALL avb_create_media_buffer(int32_t capacity);
8315 AVBLOCKS_API primo::avblocks::MediaPin* AVBLOCKS_CALL avb_create_media_pin();
8316 AVBLOCKS_API primo::avblocks::MediaSocket* AVBLOCKS_CALL avb_create_media_socket();
8317 AVBLOCKS_API primo::avblocks::MediaSocket* AVBLOCKS_CALL avb_create_media_socket_from_media_info(primo::avblocks::MediaInfo* mediaInfo);
8318 AVBLOCKS_API primo::avblocks::MediaSocket* AVBLOCKS_CALL avb_create_media_socket_from_preset(const char* preset);
8319 AVBLOCKS_API primo::avblocks::MediaInfo* AVBLOCKS_CALL avb_create_media_info();
8320 AVBLOCKS_API primo::avblocks::MediaBufferParameter* AVBLOCKS_CALL avb_create_media_buffer_parameter();
8321 AVBLOCKS_API primo::avblocks::StringParameter* AVBLOCKS_CALL avb_create_string_parameter();
8322 AVBLOCKS_API primo::avblocks::VideoStreamInfoParameter* AVBLOCKS_CALL avb_create_video_stream_info_parameter();
8323 AVBLOCKS_API primo::avblocks::IntParameter* AVBLOCKS_CALL avb_create_int_parameter();
8324 AVBLOCKS_API primo::avblocks::FloatParameter* AVBLOCKS_CALL avb_create_float_parameter();
8325 AVBLOCKS_API primo::avblocks::ParameterList* AVBLOCKS_CALL avb_create_parameter_list();
8326 AVBLOCKS_API primo::codecs::Metadata* AVBLOCKS_CALL avb_create_metadata();
8327 AVBLOCKS_API primo::codecs::MetaAttribute* AVBLOCKS_CALL avb_create_meta_attribute();
8328 AVBLOCKS_API primo::codecs::MetaPicture* AVBLOCKS_CALL avb_create_meta_picture();
8329 AVBLOCKS_API primo::codecs::Hardware* AVBLOCKS_CALL avb_create_hardware();
8330
8331#ifdef __cplusplus
8332}
8333#endif
8334
8335
8336namespace primo
8337{
8338 namespace avblocks
8339 {
8340
8341 /**
8342 Initializes AVBlocks and manages license information.
8343
8344 This namespace contains global functions for the AVBlocks library.
8345 These are C++ wrappers of the functions in the pure "C" interface exported by the library.
8346 */
8347 namespace Library
8348 {
8349 /**
8350 Initializes the AVBlocks library. Must be called once before the library is used,
8351 usually when the application starts.
8352
8353 @return TRUE if the library is successfully initialized, otherwise FALSE.
8354 */
8355 inline bool_t initialize()
8356 {
8357 return avb_initialize();
8358 }
8359
8360 /**
8361 Closes the AVBlocks library and frees the resources that are used (if any).
8362 Should be called when the library will not be used anymore, e.g. when the application ends.
8363 */
8364 inline void shutdown()
8365 {
8366 avb_shutdown();
8367 }
8368
8369 /**
8370 Gets library build description.
8371
8372 @return ANSI string.
8373
8374 @remarks Contains details about the build including full version,
8375 architecture (x86/x64), configuration (Release/Debug), license (OEM/Demo) and platform (OS).
8376 */
8377 inline const char* description()
8378 {
8379 return avb_get_description();
8380 }
8381
8382 /**
8383 Gets library major version.
8384
8385 @return major version
8386 */
8387 inline int32_t majorVersion()
8388 {
8389 return avb_get_major_version();
8390 }
8391
8392 /**
8393 Gets library minor version.
8394
8395 @return minor version
8396 */
8397 inline int32_t minorVersion()
8398 {
8399 return avb_get_minor_version();
8400 }
8401
8402 /**
8403 Gets library patch version.
8404
8405 @return patch version
8406
8407 @remarks The patch version is used for bug fixes and small improvements that do not involve API changes
8408 */
8409 inline int32_t patchVersion()
8410 {
8411 return avb_get_patch_version();
8412 }
8413
8414 /**
8415 Sets whether TLS (Transport Layer Security) should be used for license validation. By default TLS is disabled (not used).
8416
8417 @remarks This method must be called before \ref primo::avblocks::Library::setLicense "Library::setLicense" to have an effect.
8418
8419 @param useTls If TRUE the library will use TLS to validate the license.
8420 If FALSE the library will not use TLS to validate the license.
8421 */
8422 inline void setLicenseTls(bool_t useTls)
8423 {
8424 return avb_set_license_tls(useTls);
8425 }
8426
8427 /**
8428 Sets a license string. The supplied license is appended to the library license state.
8429
8430 @param license A string with license information.
8431 If the license string is <b>NULL</b> the library license state is cleared.
8432
8433 @return The status after the license is set.
8434 The returned value is a combination of flags from the \ref primo::license::LicenseStatusFlags::Enum "LicenseStatusFlags" enum.
8435
8436 @remarks A Demo build of the library cannot be licensed and always returns \ref primo::license::LicenseStatusFlags::DemoBuild "LicenseStatusFlags::DemoBuild".
8437
8438 @see primo::license::LicenseStatusFlags::Enum
8439 */
8440 inline int32_t setLicense(const char* license)
8441 {
8442 return avb_set_license(license);
8443 }
8444
8445 /**
8446 Creates a new LicenseInfo instance.
8447
8448 @return A pointer to LicenseInfo object.
8449
8450 @see primo::license::LicenseInfo
8451 */
8452 inline primo::license::LicenseInfo* createLicenseInfo()
8453 {
8454 return avb_create_license_info();
8455 }
8456
8457 /**
8458 Creates a Transcoder.
8459 The caller is responsible for releasing the object when it is not needed anymore.
8460
8461 @return A pointer to the new Transcoder object.
8462
8463 @see \ref object_management "Object Management"
8464 @see Transcoder
8465 */
8466 inline Transcoder* createTranscoder()
8467 {
8468 return avb_create_transcoder();
8469 }
8470
8471 /**
8472 Creates a new ErrorInfo instance.
8473
8474 @return A pointer to ErrorInfo object.
8475
8476 @see primo::error::ErrorInfo
8477 */
8478 inline primo::error::ErrorInfo* createErrorInfo()
8479 {
8480 return avb_create_error_info();
8481 }
8482
8483 /**
8484 Creates an empty audio stream info.
8485 The caller is responsible for releasing the object when it is not needed anymore.
8486
8487 @return A pointer to the new AudioStreamInfo object.
8488
8489 @see \ref object_management "Object Management"
8490 @see \ref primo::codecs::AudioStreamInfo "AudioStreamInfo"
8491 */
8492 inline primo::codecs::AudioStreamInfo* createAudioStreamInfo()
8493 {
8494 return avb_create_audio_stream_info();
8495 }
8496
8497 /**
8498 Creates an empty video stream info.
8499 The caller is responsible for releasing the object when it is not needed anymore.
8500
8501 @return A pointer to the new VideoStreamInfo object.
8502
8503 @see \ref object_management "Object Management"
8504 @see \ref primo::codecs::VideoStreamInfo "VideoStreamInfo"
8505 */
8506 inline primo::codecs::VideoStreamInfo* createVideoStreamInfo()
8507 {
8508 return avb_create_video_stream_info();
8509 }
8510
8511 /**
8512 Creates a stream info for generic data.
8513 The caller is responsible for releasing the object when it is not needed anymore.
8514
8515 @return A pointer to the new StreamInfo object.
8516
8517 @remarks The media type is always \link primo::codecs::MediaType::Data MediaType::Data\endlink and cannot be changed.
8518
8519 @see \ref object_management "Object Management"
8520 */
8521 inline primo::codecs::StreamInfo* createDataStreamInfo()
8522 {
8523 return avb_create_data_stream_info();
8524 }
8525
8526 /**
8527 Creates an empty media sample.
8528 The caller is responsible for releasing the object when it is not needed anymore.
8529
8530 @return A pointer to the new MediaSample object.
8531
8532 @see \ref object_management "Object Management"
8533 @see \ref primo::codecs::MediaSample "MediaSample"
8534 */
8535 inline primo::codecs::MediaSample* createMediaSample()
8536 {
8537 return avb_create_media_sample();
8538 }
8539
8540 /**
8541 Creates a media buffer with the specified capacity.
8542 The caller is responsible for releasing the object when it is not needed anymore.
8543
8544 @param capacity The required capacity must be greater or equal to 0.
8545
8546 @return A pointer to the new MediaBuffer object if <i>capacity</i> >= 0, otherwise <b>NULL</b>.
8547
8548 @remarks The returned object has a capacity that has been specified by the <i>capacity</i> parameter.
8549 It contains no data, i.e. dataSize() == 0.
8550
8551 @see \ref object_management "Object Management"
8552 @see \ref primo::codecs::MediaBuffer "MediaBuffer"
8553 */
8554 inline primo::codecs::MediaBuffer* createMediaBuffer(int32_t capacity = 0)
8555 {
8556 return avb_create_media_buffer(capacity);
8557 }
8558
8559 /**
8560 Creates a media pin. It is used in input and output sockets of the transcoder.
8561 The caller is responsible for releasing the object when it is not needed anymore.
8562
8563 @return A pointer to the new MediaPin object.
8564
8565 @see \ref object_management "Object Management"
8566 @see MediaPin
8567 @see MediaSocket
8568 @see Transcoder
8569 */
8570 inline primo::avblocks::MediaPin* createMediaPin()
8571 {
8572 return avb_create_media_pin();
8573 }
8574
8575 /**
8576 Creates a media socket. It is used as an input or output point of the transcoder.
8577 The caller is responsible for releasing the object when it is not needed anymore.
8578
8579 @return A pointer to the new MediaSocket object.
8580
8581 @see \ref object_management "Object Management"
8582 @see MediaSocket
8583 @see MediaPin
8584 @see Transcoder
8585 */
8586 inline primo::avblocks::MediaSocket* createMediaSocket()
8587 {
8588 return avb_create_media_socket();
8589 }
8590
8591 /**
8592 Creates a media socket from an AVBlocks \link primo::avblocks::Preset Preset\endlink.
8593
8594 @param preset [in] A pointer to a preset string. The known presets are listed in the primo::avblocks::Preset namespace.
8595
8596 @return A pointer to the new MediaSocket object which is configured according to the specified preset.
8597 */
8598 inline primo::avblocks::MediaSocket* createMediaSocket(const char* preset)
8599 {
8600 return avb_create_media_socket_from_preset(preset);
8601 }
8602
8603 /**
8604 Creates a media socket from a MediaInfo object. This method will call MediaInfo::load, if the MediaInfo has not been loaded.
8605
8606 @param mediaInfo [in] A pointer to a MediaInfo object with audio/video information. This object is not needed after the method returns.
8607
8608 @return A pointer to a new <b>MediaSocket</b> object. <br />
8609 The pointer to a new MediaSocket object contains the information supplied by the <i>mediaInfo</i> parameter.<br />
8610 The caller is responsible for releasing the returned media socket when it is not needed anymore.
8611
8612 @return <b>NULL</b> if there was an error. In this case call MediaInfo::error() for detailed error information. <br />
8613
8614 This method is meant to help in setting correctly the inputs of the Transcoder.
8615 The intended usage is as follows:
8616 <ol>
8617 <li> Use MediaInfo to load information for a file or user stream. </li>
8618 <li> Create a media socket from the MediaInfo object (Library::createMediaSocket(MediaInfo*)). </li>
8619 <li> Add the newly created socket to the inputs of the Transcoder (Transcoder::inputs(), MediaSocketList::add()). </li>
8620 <li> Release the media socket if it will not be used outside of the Transcoder. </li>
8621 </ol>
8622
8623 @see MediaInfo
8624 @see \ref object_management "Object Management"
8625 */
8626 inline primo::avblocks::MediaSocket* createMediaSocket(MediaInfo * mediaInfo)
8627 {
8628 return avb_create_media_socket_from_media_info(mediaInfo);
8629 }
8630
8631 /**
8632 Creates a media information object.
8633 The caller is responsible for releasing the object when it is not needed anymore.
8634
8635 @return A pointer to the new MediaInfo object.
8636
8637 @see \ref object_management "Object Management"
8638 @see MediaInfo
8639 */
8640 inline primo::avblocks::MediaInfo* createMediaInfo()
8641 {
8642 return avb_create_media_info();
8643 }
8644
8645 /**
8646 Creates a parameter that holds a MediaBuffer object.
8647 The caller is responsible for releasing the object when it is not needed anymore.
8648
8649 @return A pointer to the new Parameter object.
8650
8651 @see \ref object_management "Object Management"
8652 @see ParameterList
8653 */
8654 inline primo::avblocks::MediaBufferParameter* createMediaBufferParameter()
8655 {
8656 return avb_create_media_buffer_parameter();
8657 }
8658
8659 /**
8660 Creates a parameter that holds a char_t* string.
8661 The caller is responsible for releasing the object when it is not needed anymore.
8662
8663 @return A pointer to the new Parameter object.
8664
8665 @see \ref object_management "Object Management"
8666 @see ParameterList
8667 */
8668 inline primo::avblocks::StringParameter* createStringParameter()
8669 {
8670 return avb_create_string_parameter();
8671 }
8672
8673 /**
8674 Creates a parameter that holds a VideoStreamInfoParameter object.
8675 The caller is responsible for releasing the object when it is not needed anymore.
8676
8677 @return A pointer to the new Parameter object.
8678
8679 @see \ref object_management "Object Management"
8680 @see ParameterList
8681 */
8682 inline primo::avblocks::VideoStreamInfoParameter* createVideoStreamInfoParameter()
8683 {
8684 return avb_create_video_stream_info_parameter();
8685 }
8686
8687 /**
8688 Creates an integer parameter.
8689 The caller is responsible for releasing the object when it is not needed anymore.
8690
8691 @return A pointer to the new Parameter object.
8692
8693 @see \ref object_management "Object Management"
8694 @see ParameterList
8695 */
8696 inline primo::avblocks::IntParameter* createIntParameter()
8697 {
8698 return avb_create_int_parameter();
8699 }
8700
8701 /**
8702 Creates a float parameter.
8703 The caller is responsible for releasing the object when it is not needed anymore.
8704
8705 @return A pointer to the new Parameter object.
8706
8707 @see \ref object_management "Object Management"
8708 @see ParameterList
8709 */
8710 inline primo::avblocks::FloatParameter* createFloatParameter()
8711 {
8712 return avb_create_float_parameter();
8713 }
8714
8715 /**
8716 Creates an empty collection of filter parameters.
8717 The caller is responsible for releasing the object when it is not needed anymore.
8718
8719 @return A pointer to the new ParameterList object.
8720
8721 @see \ref object_management "Object Management"
8722 @see ParameterList
8723 */
8724 inline primo::avblocks::ParameterList* createParameterList()
8725 {
8726 return avb_create_parameter_list();
8727 }
8728
8729 /**
8730 Creates an empty Metadata object.
8731 The caller is responsible for releasing the object when it is not needed anymore.
8732
8733 @return A pointer to the new Metadata object.
8734
8735 @see \ref object_management "Object Management"
8736 @see \ref primo::codecs::Metadata "Metadata"
8737 @see MediaSocket::setMetadata
8738 @see MediaSocket::metadata
8739 */
8740 inline primo::codecs::Metadata* createMetadata()
8741 {
8742 return avb_create_metadata();
8743 }
8744
8745 /**
8746 Creates an empty MetaAttribute object.
8747 The caller is responsible for releasing the object when it is not needed anymore.
8748
8749 @return A pointer to the new MetaAttribute object.
8750
8751 @see \ref object_management "Object Management"
8752
8753 @see \ref primo::codecs::Metadata "Metadata"
8754 @see \ref primo::codecs::MetaAttribute "Metadata::attributes"
8755 */
8756 inline primo::codecs::MetaAttribute* createMetaAttribute()
8757 {
8758 return avb_create_meta_attribute();
8759 }
8760
8761 /**
8762 Creates an empty MetaPicture object.
8763 The caller is responsible for releasing the object when it is not needed anymore.
8764
8765 @return A pointer to the new MetaPicture object.
8766
8767 @see \ref object_management "Object Management"
8768
8769 @see \ref primo::codecs::Metadata "Metadata"
8770 @see \ref primo::codecs::MetaPicture "Metadata::pictures"
8771 */
8772 inline primo::codecs::MetaPicture* createMetaPicture()
8773 {
8774 return avb_create_meta_picture();
8775 }
8776
8777 /**
8778 Creates a Hardware enumeration object.
8779 The caller is responsible for releasing the object when it is not needed anymore.
8780
8781 @return A pointer to the new Hardware object.
8782
8783 @see \ref object_management "Object Management"
8784 @see primo::codecs::Hardware
8785 */
8786 inline primo::codecs::Hardware* createHardware()
8787 {
8788 return avb_create_hardware();
8789 }
8790
8791 /**
8792 Returns the library configuration object.
8793
8794 @return A pointer to configuration object. This is never <b>NULL</b>.
8795
8796 @see primo::avblocks::Config
8797 @see primo::avblocks::HwConfig
8798 */
8799 inline primo::avblocks::Config* config()
8800 {
8801 return avb_config();
8802 }
8803 };
8804
8805
8806}} // primo::avblocks
8807
8808
8809// Legend:
8810// FR: - future release
8811// TBR: - to be reviewed
8812// .NET: - update .NET version
8813// Java: - update Java version
8814
8815#endif // ___AVBLOCKS_AVB_H___