#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ fprint_msg(char *, int, int, int, int);
extern void tswrite_help_tuning(void) {
  fprint_msg(
      "Output Tuning:\n"
      "  -bitrate <n>      Try for an initial data rate of <n> bits/second,\n"
      "                    so -bitrate 3000 is 3000 bits/second, i.e., 3kbps\n"
      "  -byterate <n>     Specify the initial data rate in bytes per second,\n"
      "                    instead of bits/second.\n"
      "  -nopcrs           Ignore PCRs when working out the packet times,\n"
      "                    just use the selected bit/byte rate.\n"
      "\n"
      "The data rate is stored internally as bytes/second, so if a -bitrate "
      "value\n"
      "is given that is not a multiple of 8, it will be approximated "
      "internally.\n"
      "If no initial data rate is specified, an arbitrary default rate of\n"
      "%d bytes/second (%d bits/second) is used. If the input data contains\n"
      "PCRs, this will then be adjusted towards the data rate indicated by\n"
      "the PCRs.\n"
      "\n"
      "  -maxnowait <n>    Specify the maximum number of packets that can be\n"
      "                    sent to the target host with no gap. Sending too\n"
      "                    many packets with no gap can overrun the target's\n"
      "                    buffers. [default: off]\n"
      "  -maxnowait off    Do not enforce any limit on how many packets may "
      "be\n"
      "                    sent without any intermediate delay.\n"
      "\n"
      "  -waitfor <n>      The number of microseconds to wait *after* "
      "'maxnowait'\n"
      "                    packets have been sent with no gap. The default is "
      "1000.\n"
      "\n"
      "  -buffer <size>    Use a circular buffer of size <size>+1.\n"
      "                    The default is %d.\n"
      "\n"
      "  -tsinpkt <n>      How many TS packets to put in each circular buffer "
      "item\n"
      "                    (i.e., how many TS packets will end up in each UDP "
      "packet).\n"
      "                    This defaults to 7, which is the number guaranteed "
      "to fit\n"
      "                    into a single ethernet packet. Specifying more than "
      "7 will\n"
      "                    give fragmented packets on 'traditional' networks. "
      "Specifying\n"
      "                    less will cause more packets than necessary.\n"
      "\n"
      "When the child process starts up, it waits for the circular buffer to "
      "fill\n"
      "up before it starts sending any data.\n"
      "\n"
      "  -prime <n>        Prime the PCR timing mechanism with 'time' for\n"
      "                    <n> circular buffer items. The default is %d\n"
      "  -speedup <n>      Percentage of 'normal speed' to use when\n"
      "                    calculating the priming time.\n"
      "\n"
      "Unless -nopcrs is selected, packet times are calculated using PCRs,\n"
      "as they are found. The program starts with a number of bytes\n"
      "'in hand', and a corresponding time calculated using the default\n"
      "byterate. As data is actually output, the number of bytes output is\n"
      "subtracted from the total 'in hand', and the time remaining amended\n"
      "likewise. When a newone PCR is found, the number of bytes and given\n"
      "number of microseconds since the last PCR is added to the 'in hand'\n"
      "totals.\n"
      "\n"
      "The -prime switch can be used to determine how many circular buffer\n"
      "items (i.e., 188*7 byte packets) should be used to prime the number\n"
      "of bytes and time held 'in hand'. Larger numbers will allow the\n"
      "program to cope with longer distances between PCRs, and will also\n"
      "tend to smooth out the byte rates indicated by adjacent PCRs.\n"
      "\n"
      "  -pcr_scale <percentage>    Scale PCR values by this percentage.\n"
      "                             <percentage> is a floating (double) "
      "value.\n"
      "\n"
      "If a PCR scale is given, then all PCRs will be multiplied by\n"
      "<percentage>/100. Thus '-pcr_scale 100' will have no effect,\n"
      "'-pcr_scale 200' will double each PCR, and '-pcr_scale 50' will halve\n"
      "each PCR value.\n"
      "\n"
      "  -pwait <n>        The parent process should wait <n>ms when the\n"
      "                    buffer is full before checking again.\n"
      "                    The default is 50ms.\n"
      "  -cwait <n>        The child processs should wait <n>ms when the\n"
      "                    buffer is empty, before checking again.\n"
      "                    The default is 10ms.\n"
      "\n"
      "For convenience, the '-hd' switch is provided for playing HD video:\n"
      "\n"
      "  -hd               equivalent to '-bitrate 20000000 -maxnowait off\n"
      "                                   -pwait 4 -cwait 1'\n"
      "\n"
      "(the exact values may change in future releases of this software).\n"
      "It may also sometimes help to specify '-nopcr' as well (i.e., ignore\n"
      "the timing information in the video stream itself).\n"
      "",
      250000, 250000 * 8, 2048, 10);
}


x86 assembly (clang, -O0):
<tswrite_help_tuning>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
mov    $0x3d090,%esi
mov    $0x1e8480,%edx
mov    $0x800,%ecx
mov    $0xa,%r8d
call   1030 <fprint_msg@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<tswrite_help_tuning>:
lea    0xee9(%rip),%rdi
mov    $0x3d090,%esi
mov    $0x1e8480,%edx
mov    $0x800,%ecx
mov    $0xa,%r8d
jmp    1030 <fprint_msg@plt>

LLVM IR (-O0):
@.str = [4079 x i8] c"Output Tuning:\0A -bitrate <n> Try for an initial data rate of <n> bits/second,\0A so -bitrate 3000 is 3000 bits/second, i.e., 3kbps\0A -byterate <n> Specify the initial data rate in bytes per second,\0A instead of bits/second.\0A -nopcrs Ignore PCRs when working out the packet times,\0A just use the selected bit/byte rate.\0A\0AThe data rate is stored internally as bytes/second, so if a -bitrate value\0Ais given that is not a multiple of 8, it will be approximated internally.\0AIf no initial data rate is specified, an arbitrary default rate of\0A%d bytes/second (%d bits/second) is used. If the input data contains\0APCRs, this will then be adjusted towards the data rate indicated by\0Athe PCRs.\0A\0A -maxnowait <n> Specify the maximum number of packets that can be\0A sent to the target host with no gap. Sending too\0A many packets with no gap can overrun the target's\0A buffers. [default: off]\0A -maxnowait off Do not enforce any limit on how many packets may be\0A sent without any intermediate delay.\0A\0A -waitfor <n> The number of microseconds to wait *after* 'maxnowait'\0A packets have been sent with no gap. The default is 1000.\0A\0A -buffer <size> Use a circular buffer of size <size>+1.\0A The default is %d.\0A\0A -tsinpkt <n> How many TS packets to put in each circular buffer item\0A (i.e., how many TS packets will end up in each UDP packet).\0A This defaults to 7, which is the number guaranteed to fit\0A into a single ethernet packet. Specifying more than 7 will\0A give fragmented packets on 'traditional' networks. Specifying\0A less will cause more packets than necessary.\0A\0AWhen the child process starts up, it waits for the circular buffer to fill\0Aup before it starts sending any data.\0A\0A -prime <n> Prime the PCR timing mechanism with 'time' for\0A <n> circular buffer items. The default is %d\0A -speedup <n> Percentage of 'normal speed' to use when\0A calculating the priming time.\0A\0AUnless -nopcrs is selected, packet times are calculated using PCRs,\0Aas they are found. The program starts with a number of bytes\0A'in hand', and a corresponding time calculated using the default\0Abyterate. As data is actually output, the number of bytes output is\0Asubtracted from the total 'in hand', and the time remaining amended\0Alikewise. When a newone PCR is found, the number of bytes and given\0Anumber of microseconds since the last PCR is added to the 'in hand'\0Atotals.\0A\0AThe -prime switch can be used to determine how many circular buffer\0Aitems (i.e., 188*7 byte packets) should be used to prime the number\0Aof bytes and time held 'in hand'. Larger numbers will allow the\0Aprogram to cope with longer distances between PCRs, and will also\0Atend to smooth out the byte rates indicated by adjacent PCRs.\0A\0A -pcr_scale <percentage> Scale PCR values by this percentage.\0A <percentage> is a floating (double) value.\0A\0AIf a PCR scale is given, then all PCRs will be multiplied by\0A<percentage>/100. Thus '-pcr_scale 100' will have no effect,\0A'-pcr_scale 200' will double each PCR, and '-pcr_scale 50' will halve\0Aeach PCR value.\0A\0A -pwait <n> The parent process should wait <n>ms when the\0A buffer is full before checking again.\0A The default is 50ms.\0A -cwait <n> The child processs should wait <n>ms when the\0A buffer is empty, before checking again.\0A The default is 10ms.\0A\0AFor convenience, the '-hd' switch is provided for playing HD video:\0A\0A -hd equivalent to '-bitrate 20000000 -maxnowait off\0A -pwait 4 -cwait 1'\0A\0A(the exact values may change in future releases of this software).\0AIt may also sometimes help to specify '-nopcr' as well (i.e., ignore\0Athe timing information in the video stream itself).\0A\00"
define void @tswrite_help_tuning() {
%1 = call i32 @fprint_msg(i8* getelementptr inbounds ([4079 x i8], [4079 x i8]* @.str, i64 0, i64 0), i32 250000, i32 2000000, i32 2048, i32 10)
ret void
}

LLVM IR (-O2):
@.str = [4079 x i8] c"Output Tuning:\0A -bitrate <n> Try for an initial data rate of <n> bits/second,\0A so -bitrate 3000 is 3000 bits/second, i.e., 3kbps\0A -byterate <n> Specify the initial data rate in bytes per second,\0A instead of bits/second.\0A -nopcrs Ignore PCRs when working out the packet times,\0A just use the selected bit/byte rate.\0A\0AThe data rate is stored internally as bytes/second, so if a -bitrate value\0Ais given that is not a multiple of 8, it will be approximated internally.\0AIf no initial data rate is specified, an arbitrary default rate of\0A%d bytes/second (%d bits/second) is used. If the input data contains\0APCRs, this will then be adjusted towards the data rate indicated by\0Athe PCRs.\0A\0A -maxnowait <n> Specify the maximum number of packets that can be\0A sent to the target host with no gap. Sending too\0A many packets with no gap can overrun the target's\0A buffers. [default: off]\0A -maxnowait off Do not enforce any limit on how many packets may be\0A sent without any intermediate delay.\0A\0A -waitfor <n> The number of microseconds to wait *after* 'maxnowait'\0A packets have been sent with no gap. The default is 1000.\0A\0A -buffer <size> Use a circular buffer of size <size>+1.\0A The default is %d.\0A\0A -tsinpkt <n> How many TS packets to put in each circular buffer item\0A (i.e., how many TS packets will end up in each UDP packet).\0A This defaults to 7, which is the number guaranteed to fit\0A into a single ethernet packet. Specifying more than 7 will\0A give fragmented packets on 'traditional' networks. Specifying\0A less will cause more packets than necessary.\0A\0AWhen the child process starts up, it waits for the circular buffer to fill\0Aup before it starts sending any data.\0A\0A -prime <n> Prime the PCR timing mechanism with 'time' for\0A <n> circular buffer items. The default is %d\0A -speedup <n> Percentage of 'normal speed' to use when\0A calculating the priming time.\0A\0AUnless -nopcrs is selected, packet times are calculated using PCRs,\0Aas they are found. The program starts with a number of bytes\0A'in hand', and a corresponding time calculated using the default\0Abyterate. As data is actually output, the number of bytes output is\0Asubtracted from the total 'in hand', and the time remaining amended\0Alikewise. When a newone PCR is found, the number of bytes and given\0Anumber of microseconds since the last PCR is added to the 'in hand'\0Atotals.\0A\0AThe -prime switch can be used to determine how many circular buffer\0Aitems (i.e., 188*7 byte packets) should be used to prime the number\0Aof bytes and time held 'in hand'. Larger numbers will allow the\0Aprogram to cope with longer distances between PCRs, and will also\0Atend to smooth out the byte rates indicated by adjacent PCRs.\0A\0A -pcr_scale <percentage> Scale PCR values by this percentage.\0A <percentage> is a floating (double) value.\0A\0AIf a PCR scale is given, then all PCRs will be multiplied by\0A<percentage>/100. Thus '-pcr_scale 100' will have no effect,\0A'-pcr_scale 200' will double each PCR, and '-pcr_scale 50' will halve\0Aeach PCR value.\0A\0A -pwait <n> The parent process should wait <n>ms when the\0A buffer is full before checking again.\0A The default is 50ms.\0A -cwait <n> The child processs should wait <n>ms when the\0A buffer is empty, before checking again.\0A The default is 10ms.\0A\0AFor convenience, the '-hd' switch is provided for playing HD video:\0A\0A -hd equivalent to '-bitrate 20000000 -maxnowait off\0A -pwait 4 -cwait 1'\0A\0A(the exact values may change in future releases of this software).\0AIt may also sometimes help to specify '-nopcr' as well (i.e., ignore\0Athe timing information in the video stream itself).\0A\00"
define void @tswrite_help_tuning() {
%1 = tail call i32 @fprint_msg(i8* getelementptr inbounds ([4079 x i8], [4079 x i8]* @.str, i64 0, i64 0), i32 250000, i32 2000000, i32 2048, i32 10)
ret void
}