avb.h

#include <primo/avblocks/avb.h>

Includes

  • primo/platform/config.h

  • primo/platform/reference.h

  • primo/platform/stream.h

  • primo/codecs/av.h

  • primo/pp/pp.h

  • primo/license/license.h

Classes

Name

Description

primo::avblocks::Block

A Block is a unit that can produce, consume or transform media samples from/to multiple inputs/outputs.

primo::avblocks::Config

Global configuration.

primo::avblocks::FloatParameter

The parameter represents a 64-bit floating point number (double precision).

primo::avblocks::HwConfig

Global hardware configuration.

primo::avblocks::IntParameter

The parameter represents a 64-bit integer.

primo::avblocks::MediaBufferParameter

The parameter represents a MediaBuffer object.

primo::avblocks::MediaInfo

Analyzes a file or a stream and provides information about its type and properties.

primo::avblocks::MediaPin

MediaPin represents an elementary media stream.

primo::avblocks::MediaPinList

MediaPinList represents the elementary pins within a MediaSocket object.

primo::avblocks::MediaSocket

An input or output point of the Transcoder.

primo::avblocks::MediaSocketList

MediaSocketList represents the inputs or outputs of a Transcoder.

primo::avblocks::Parameter

Parameter is the base class for named parameters passed to various classes in AVBlocks.

primo::avblocks::ParameterList

A collection of Parameter objects.

primo::avblocks::StringParameter

The parameter represents an untyped value which is stored in a char_t string.

primo::avblocks::Transcoder

Provides functionality for audio and video encoding, decoding and transforming.

primo::avblocks::TranscoderCallback

The TranscoderCallback provides a way to receive notifications from the Transcoder and also to control its operation while it is running (Transcoder::run).

primo::avblocks::VideoStreamInfoParameter

The parameter represents a VideoStreamInfo object.

Namespaces

  • primo

  • primo::avblocks

  • primo::avblocks::AVBlocksError

  • primo::avblocks::HardwareEncoder

  • primo::avblocks::Library

  • primo::avblocks::Param

  • primo::avblocks::Param::Decoder

  • primo::avblocks::Param::Decoder::Video

  • primo::avblocks::Param::Decoder::Video::H264

  • primo::avblocks::Param::Decoder::Video::H264::VUI

  • primo::avblocks::Param::Demuxer

  • primo::avblocks::Param::Demuxer::Mpeg

  • primo::avblocks::Param::Encoder

  • primo::avblocks::Param::Encoder::Audio

  • primo::avblocks::Param::Encoder::Audio::AAC

  • primo::avblocks::Param::Encoder::Audio::G711

  • primo::avblocks::Param::Encoder::Audio::MPEG1

  • primo::avblocks::Param::Encoder::Audio::Opus

  • primo::avblocks::Param::Encoder::Audio::Vorbis

  • primo::avblocks::Param::Encoder::Audio::WMA

  • primo::avblocks::Param::Encoder::Video

  • primo::avblocks::Param::Encoder::Video::H264

  • primo::avblocks::Param::Encoder::Video::H265

  • primo::avblocks::Param::Encoder::Video::MPEG2

  • primo::avblocks::Param::Encoder::Video::VP8

  • primo::avblocks::Param::Encoder::Video::VP9

  • primo::avblocks::Param::Muxer

  • primo::avblocks::Param::Muxer::MP4

  • primo::avblocks::Param::Video

  • primo::avblocks::Param::Video::Crop

  • primo::avblocks::Param::Video::Deinterlacing

  • primo::avblocks::Param::Video::FrameRateConverter

  • primo::avblocks::Param::Video::Overlay

  • primo::avblocks::Param::Video::Pad

  • primo::avblocks::Param::Video::Resize

  • primo::avblocks::ParamType

  • primo::avblocks::PinConnection

  • primo::avblocks::Preset

  • primo::avblocks::Preset::Audio

  • primo::avblocks::Preset::Audio::AudioCD

  • primo::avblocks::Preset::Audio::DVD

  • primo::avblocks::Preset::Audio::Generic

  • primo::avblocks::Preset::Audio::Generic::M4A

  • primo::avblocks::Preset::Audio::Generic::MP3

  • primo::avblocks::Preset::Audio::Generic::OggVorbis

  • primo::avblocks::Preset::Audio::Generic::WMA

  • primo::avblocks::Preset::Audio::Generic::WMA::Lossless

  • primo::avblocks::Preset::Audio::Generic::WMA::Professional

  • primo::avblocks::Preset::Audio::Generic::WMA::Standard

  • primo::avblocks::Preset::Video

  • primo::avblocks::Preset::Video::AndroidPhone

  • primo::avblocks::Preset::Video::AndroidTablet

  • primo::avblocks::Preset::Video::AppleLiveStreaming

  • primo::avblocks::Preset::Video::AppleTV

  • primo::avblocks::Preset::Video::BDAV

  • primo::avblocks::Preset::Video::DVD

  • primo::avblocks::Preset::Video::Fast

  • primo::avblocks::Preset::Video::Fast::MP4

  • primo::avblocks::Preset::Video::Generic

  • primo::avblocks::Preset::Video::Generic::MP4

  • primo::avblocks::Preset::Video::Generic::WebM

  • primo::avblocks::Preset::Video::HDV

  • primo::avblocks::Preset::Video::Kindle

  • primo::avblocks::Preset::Video::VCD

  • primo::avblocks::Preset::Video::Web

  • primo::avblocks::Preset::Video::Web::MP4

  • primo::avblocks::Preset::Video::iPad

  • primo::avblocks::Preset::Video::iPhone

  • primo::avblocks::Preset::Video::iPod

  • primo::avblocks::TranscoderError

  • primo::avblocks::TranscoderStatus

  • primo::avblocks::Use

  • primo::error

  • primo::error::ErrorFacility

Macros and Functions

Defines

AVBLOCKS_MAJOR_VERSION
AVBLOCKS_MINOR_VERSION
AVBLOCKS_PATCH_VERSION
AVBLOCKS_UNUSED_INT_RANGE

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___