|  | Testing default values | 
|  | num=0 | 
|  | toggle=1 | 
|  | string=default | 
|  | escape=\=, | 
|  | flags=1 | 
|  | rational=1/1 | 
|  | video_rate=25/1 | 
|  | width=200 height=300 | 
|  | pix_fmt=0bgr | 
|  | sample_fmt=s16 | 
|  | duration=1000 | 
|  | color=255 192 203 255 | 
|  | channel_layout=311=311 | 
|  | binary=62 69 6e 0 | 
|  | binary_size=4 | 
|  | num64=1 | 
|  | flt=0.333333 | 
|  | dbl=0.333333 | 
|  | TestContext AVOptions: | 
|  | -num               <int>        E.......... set num (from 0 to 100) (default 0) | 
|  | -toggle            <int>        E.......... set toggle (from 0 to 1) (default 1) | 
|  | -rational          <rational>   E.......... set rational (from 0 to 10) (default 1/1) | 
|  | -string            <string>     E.......... set string (default "default") | 
|  | -escape            <string>     E.......... set escape str (default "\=,") | 
|  | -flags             <flags>      E.......... set flags (default cool) | 
|  | cool                         E.......... set cool flag | 
|  | lame                         E.......... set lame flag | 
|  | mu                           E.......... set mu flag | 
|  | -size              <image_size> E.......... set size (default "200x300") | 
|  | -pix_fmt           <pix_fmt>    E.......... set pixfmt (default 0bgr) | 
|  | -sample_fmt        <sample_fmt> E.......... set samplefmt (default s16) | 
|  | -video_rate        <video_rate> E.......... set videorate (default "25") | 
|  | -duration          <duration>   E.......... set duration (default 0.001) | 
|  | -color             <color>      E.......... set color (default "pink") | 
|  | -cl                <channel_layout> E.......... set channel layout (default 0x137) | 
|  | -bin               <binary>     E.......... set binary value | 
|  | -bin1              <binary>     E.......... set binary value | 
|  | -bin2              <binary>     E.......... set binary value | 
|  | -num64             <int64>      E.......... set num 64bit (from 0 to 100) (default 1) | 
|  | -flt               <float>      E.......... set float (from 0 to 100) (default 0.333333) | 
|  | -dbl               <double>     E.......... set double (from 0 to 100) (default 0.333333) | 
|  | -bool1             <boolean>    E.......... set boolean value (default auto) | 
|  | -bool2             <boolean>    E.......... set boolean value (default true) | 
|  | -bool3             <boolean>    E.......... set boolean value (default false) | 
|  | -dict1             <dictionary> E.......... set dictionary value | 
|  | -dict2             <dictionary> E.......... set dictionary value (default "happy=':-)'") | 
|  |  | 
|  | Testing av_opt_is_set_to_default() | 
|  | name:       num default:1 error: | 
|  | name:    toggle default:0 error: | 
|  | name:  rational default:0 error: | 
|  | name:    string default:0 error: | 
|  | name:    escape default:0 error: | 
|  | name:     flags default:0 error: | 
|  | name:      cool default:1 error:Option not found | 
|  | name:      lame default:1 error:Option not found | 
|  | name:        mu default:1 error:Option not found | 
|  | name:      size default:0 error: | 
|  | name:   pix_fmt default:0 error: | 
|  | name:sample_fmt default:0 error: | 
|  | name:video_rate default:0 error: | 
|  | name:  duration default:0 error: | 
|  | name:     color default:0 error: | 
|  | name:        cl default:0 error: | 
|  | name:       bin default:0 error: | 
|  | name:      bin1 default:1 error: | 
|  | name:      bin2 default:1 error: | 
|  | name:     num64 default:0 error: | 
|  | name:       flt default:0 error: | 
|  | name:       dbl default:0 error: | 
|  | name:     bool1 default:0 error: | 
|  | name:     bool2 default:0 error: | 
|  | name:     bool3 default:1 error: | 
|  | name:     dict1 default:1 error: | 
|  | name:     dict2 default:0 error: | 
|  | name:       num default:1 error: | 
|  | name:    toggle default:1 error: | 
|  | name:  rational default:1 error: | 
|  | name:    string default:1 error: | 
|  | name:    escape default:1 error: | 
|  | name:     flags default:1 error: | 
|  | name:      cool default:1 error:Option not found | 
|  | name:      lame default:1 error:Option not found | 
|  | name:        mu default:1 error:Option not found | 
|  | name:      size default:1 error: | 
|  | name:   pix_fmt default:1 error: | 
|  | name:sample_fmt default:1 error: | 
|  | name:video_rate default:1 error: | 
|  | name:  duration default:1 error: | 
|  | name:     color default:1 error: | 
|  | name:        cl default:1 error: | 
|  | name:       bin default:1 error: | 
|  | name:      bin1 default:1 error: | 
|  | name:      bin2 default:1 error: | 
|  | name:     num64 default:1 error: | 
|  | name:       flt default:1 error: | 
|  | name:       dbl default:1 error: | 
|  | name:     bool1 default:1 error: | 
|  | name:     bool2 default:1 error: | 
|  | name:     bool3 default:1 error: | 
|  | name:     dict1 default:1 error: | 
|  | name:     dict2 default:1 error: | 
|  |  | 
|  | Testing av_opt_get/av_opt_set() | 
|  | name: num         get: 0                set: OK               get: 0                OK | 
|  | name: toggle      get: 1                set: OK               get: 1                OK | 
|  | name: rational    get: 1/1              set: OK               get: 1/1              OK | 
|  | name: string      get: default          set: OK               get: default          OK | 
|  | name: escape      get: \=,              set: OK               get: \=,              OK | 
|  | name: flags       get: 0x00000001       set: OK               get: 0x00000001       OK | 
|  | name: size        get: 200x300          set: OK               get: 200x300          OK | 
|  | name: pix_fmt     get: 0bgr             set: OK               get: 0bgr             OK | 
|  | name: sample_fmt  get: s16              set: OK               get: s16              OK | 
|  | name: video_rate  get: 25/1             set: OK               get: 25/1             OK | 
|  | name: duration    get: 0.001            set: OK               get: 0.001            OK | 
|  | name: color       get: 0xffc0cbff       set: OK               get: 0xffc0cbff       OK | 
|  | name: cl          get: 0x137            set: OK               get: 0x137            OK | 
|  | name: bin         get: 62696E00         set: OK               get: 62696E00         OK | 
|  | name: bin1        get:                  set: OK               get:                  OK | 
|  | name: bin2        get:                  set: OK               get:                  OK | 
|  | name: num64       get: 1                set: OK               get: 1                OK | 
|  | name: flt         get: 0.333333         set: OK               get: 0.333333         OK | 
|  | name: dbl         get: 0.333333         set: OK               get: 0.333333         OK | 
|  | name: bool1       get: auto             set: OK               get: auto             OK | 
|  | name: bool2       get: true             set: OK               get: true             OK | 
|  | name: bool3       get: false            set: OK               get: false            OK | 
|  | name: dict1       get:                  set: OK               get:                  OK | 
|  | name: dict2       get: happy=\:-)       set: OK               get: happy=\:-)       OK | 
|  |  | 
|  | Test av_opt_serialize() | 
|  | num=0,toggle=1,rational=1/1,string=default,escape=\\\=\,,flags=0x00000001,size=200x300,pix_fmt=0bgr,sample_fmt=s16,video_rate=25/1,duration=0.001,color=0xffc0cbff,cl=0x137,bin=62696E00,bin1=,bin2=,num64=1,flt=0.333333,dbl=0.333333,bool1=auto,bool2=true,bool3=false,dict1=,dict2=happy\=\\:-) | 
|  | Setting entry with key 'num' to value '0' | 
|  | Setting entry with key 'toggle' to value '1' | 
|  | Setting entry with key 'rational' to value '1/1' | 
|  | Setting entry with key 'string' to value 'default' | 
|  | Setting entry with key 'escape' to value '\=,' | 
|  | Setting entry with key 'flags' to value '0x00000001' | 
|  | Setting entry with key 'size' to value '200x300' | 
|  | Setting entry with key 'pix_fmt' to value '0bgr' | 
|  | Setting entry with key 'sample_fmt' to value 's16' | 
|  | Setting entry with key 'video_rate' to value '25/1' | 
|  | Setting entry with key 'duration' to value '0.001' | 
|  | Setting entry with key 'color' to value '0xffc0cbff' | 
|  | Setting entry with key 'cl' to value '0x137' | 
|  | Setting entry with key 'bin' to value '62696E00' | 
|  | Setting entry with key 'bin1' to value '' | 
|  | Setting entry with key 'bin2' to value '' | 
|  | Setting entry with key 'num64' to value '1' | 
|  | Setting entry with key 'flt' to value '0.333333' | 
|  | Setting entry with key 'dbl' to value '0.333333' | 
|  | Setting entry with key 'bool1' to value 'auto' | 
|  | Setting entry with key 'bool2' to value 'true' | 
|  | Setting entry with key 'bool3' to value 'false' | 
|  | Setting entry with key 'dict1' to value '' | 
|  | Setting entry with key 'dict2' to value 'happy=\:-)' | 
|  | num=0,toggle=1,rational=1/1,string=default,escape=\\\=\,,flags=0x00000001,size=200x300,pix_fmt=0bgr,sample_fmt=s16,video_rate=25/1,duration=0.001,color=0xffc0cbff,cl=0x137,bin=62696E00,bin1=,bin2=,num64=1,flt=0.333333,dbl=0.333333,bool1=auto,bool2=true,bool3=false,dict1=,dict2=happy\=\\:-) | 
|  |  | 
|  | Testing av_set_options_string() | 
|  | Setting options string '' | 
|  | OK    '' | 
|  | Setting options string ':' | 
|  | Missing key or no key/value separator found after key ':' | 
|  | Error ':' | 
|  | Setting options string '=' | 
|  | Missing key or no key/value separator found after key '' | 
|  | Error '=' | 
|  | Setting options string 'foo=:' | 
|  | Setting entry with key 'foo' to value '' | 
|  | Key 'foo' not found. | 
|  | Error 'foo=:' | 
|  | Setting options string ':=foo' | 
|  | Setting entry with key ':' to value 'foo' | 
|  | Key ':' not found. | 
|  | Error ':=foo' | 
|  | Setting options string '=foo' | 
|  | Missing key or no key/value separator found after key '' | 
|  | Error '=foo' | 
|  | Setting options string 'foo=' | 
|  | Setting entry with key 'foo' to value '' | 
|  | Key 'foo' not found. | 
|  | Error 'foo=' | 
|  | Setting options string 'foo' | 
|  | Missing key or no key/value separator found after key 'foo' | 
|  | Error 'foo' | 
|  | Setting options string 'foo=val' | 
|  | Setting entry with key 'foo' to value 'val' | 
|  | Key 'foo' not found. | 
|  | Error 'foo=val' | 
|  | Setting options string 'foo==val' | 
|  | Setting entry with key 'foo' to value '=val' | 
|  | Key 'foo' not found. | 
|  | Error 'foo==val' | 
|  | Setting options string 'toggle=:' | 
|  | Setting entry with key 'toggle' to value '' | 
|  | Undefined constant or missing '(' in '' | 
|  | Unable to parse option value "" | 
|  | Error 'toggle=:' | 
|  | Setting options string 'string=:' | 
|  | Setting entry with key 'string' to value '' | 
|  | OK    'string=:' | 
|  | Setting options string 'toggle=1 : foo' | 
|  | Setting entry with key 'toggle' to value '1' | 
|  | Missing key or no key/value separator found after key 'foo' | 
|  | Error 'toggle=1 : foo' | 
|  | Setting options string 'toggle=100' | 
|  | Setting entry with key 'toggle' to value '100' | 
|  | Value 100.000000 for parameter 'toggle' out of range [0 - 1] | 
|  | Error 'toggle=100' | 
|  | Setting options string 'toggle==1' | 
|  | Setting entry with key 'toggle' to value '=1' | 
|  | Undefined constant or missing '(' in '=1' | 
|  | Unable to parse option value "=1" | 
|  | Error 'toggle==1' | 
|  | Setting options string 'flags=+mu-lame : num=42: toggle=0' | 
|  | Setting entry with key 'flags' to value '+mu-lame' | 
|  | Setting entry with key 'num' to value '42' | 
|  | Setting entry with key 'toggle' to value '0' | 
|  | OK    'flags=+mu-lame : num=42: toggle=0' | 
|  | Setting options string 'num=42 : string=blahblah' | 
|  | Setting entry with key 'num' to value '42' | 
|  | Setting entry with key 'string' to value 'blahblah' | 
|  | OK    'num=42 : string=blahblah' | 
|  | Setting options string 'rational=0 : rational=1/2 : rational=1/-1' | 
|  | Setting entry with key 'rational' to value '0' | 
|  | Setting entry with key 'rational' to value '1/2' | 
|  | Setting entry with key 'rational' to value '1/-1' | 
|  | Value -1.000000 for parameter 'rational' out of range [0 - 10] | 
|  | Value -1.000000 for parameter 'rational' out of range [0 - 10] | 
|  | Error 'rational=0 : rational=1/2 : rational=1/-1' | 
|  | Setting options string 'rational=-1/0' | 
|  | Error 'rational=-1/0' | 
|  | Setting options string 'size=1024x768' | 
|  | Setting entry with key 'size' to value '1024x768' | 
|  | OK    'size=1024x768' | 
|  | Setting options string 'size=pal' | 
|  | Setting entry with key 'size' to value 'pal' | 
|  | OK    'size=pal' | 
|  | Setting options string 'size=bogus' | 
|  | Setting entry with key 'size' to value 'bogus' | 
|  | Unable to parse option value "bogus" as image size | 
|  | Error 'size=bogus' | 
|  | Setting options string 'pix_fmt=yuv420p' | 
|  | Setting entry with key 'pix_fmt' to value 'yuv420p' | 
|  | OK    'pix_fmt=yuv420p' | 
|  | Setting options string 'pix_fmt=2' | 
|  | Setting entry with key 'pix_fmt' to value '2' | 
|  | OK    'pix_fmt=2' | 
|  | Setting options string 'pix_fmt=bogus' | 
|  | Setting entry with key 'pix_fmt' to value 'bogus' | 
|  | Unable to parse option value "bogus" as pixel format | 
|  | Error 'pix_fmt=bogus' | 
|  | Setting options string 'sample_fmt=s16' | 
|  | Setting entry with key 'sample_fmt' to value 's16' | 
|  | OK    'sample_fmt=s16' | 
|  | Setting options string 'sample_fmt=2' | 
|  | Setting entry with key 'sample_fmt' to value '2' | 
|  | OK    'sample_fmt=2' | 
|  | Setting options string 'sample_fmt=bogus' | 
|  | Setting entry with key 'sample_fmt' to value 'bogus' | 
|  | Unable to parse option value "bogus" as sample format | 
|  | Error 'sample_fmt=bogus' | 
|  | Setting options string 'video_rate=pal' | 
|  | Setting entry with key 'video_rate' to value 'pal' | 
|  | OK    'video_rate=pal' | 
|  | Setting options string 'video_rate=25' | 
|  | Setting entry with key 'video_rate' to value '25' | 
|  | OK    'video_rate=25' | 
|  | Setting options string 'video_rate=30000/1001' | 
|  | Setting entry with key 'video_rate' to value '30000/1001' | 
|  | OK    'video_rate=30000/1001' | 
|  | Setting options string 'video_rate=30/1.001' | 
|  | Setting entry with key 'video_rate' to value '30/1.001' | 
|  | OK    'video_rate=30/1.001' | 
|  | Setting options string 'video_rate=bogus' | 
|  | Setting entry with key 'video_rate' to value 'bogus' | 
|  | Undefined constant or missing '(' in 'bogus' | 
|  | Unable to parse option value "bogus" as video rate | 
|  | Error 'video_rate=bogus' | 
|  | Setting options string 'duration=bogus' | 
|  | Setting entry with key 'duration' to value 'bogus' | 
|  | Unable to parse option value "bogus" as duration | 
|  | Error 'duration=bogus' | 
|  | Setting options string 'duration=123.45' | 
|  | Setting entry with key 'duration' to value '123.45' | 
|  | OK    'duration=123.45' | 
|  | Setting options string 'duration=1\:23\:45.67' | 
|  | Setting entry with key 'duration' to value '1:23:45.67' | 
|  | OK    'duration=1\:23\:45.67' | 
|  | Setting options string 'color=blue' | 
|  | Setting entry with key 'color' to value 'blue' | 
|  | OK    'color=blue' | 
|  | Setting options string 'color=0x223300' | 
|  | Setting entry with key 'color' to value '0x223300' | 
|  | OK    'color=0x223300' | 
|  | Setting options string 'color=0x42FF07AA' | 
|  | Setting entry with key 'color' to value '0x42FF07AA' | 
|  | OK    'color=0x42FF07AA' | 
|  | Setting options string 'cl=stereo+downmix' | 
|  | Setting entry with key 'cl' to value 'stereo+downmix' | 
|  | OK    'cl=stereo+downmix' | 
|  | Setting options string 'cl=foo' | 
|  | Setting entry with key 'cl' to value 'foo' | 
|  | Unable to parse option value "foo" as channel layout | 
|  | Error 'cl=foo' | 
|  | Setting options string 'bin=boguss' | 
|  | Setting entry with key 'bin' to value 'boguss' | 
|  | Error 'bin=boguss' | 
|  | Setting options string 'bin=111' | 
|  | Setting entry with key 'bin' to value '111' | 
|  | Error 'bin=111' | 
|  | Setting options string 'bin=ffff' | 
|  | Setting entry with key 'bin' to value 'ffff' | 
|  | OK    'bin=ffff' | 
|  | Setting options string 'num64=bogus' | 
|  | Setting entry with key 'num64' to value 'bogus' | 
|  | Undefined constant or missing '(' in 'bogus' | 
|  | Unable to parse option value "bogus" | 
|  | Error 'num64=bogus' | 
|  | Setting options string 'num64=44' | 
|  | Setting entry with key 'num64' to value '44' | 
|  | OK    'num64=44' | 
|  | Setting options string 'num64=44.4' | 
|  | Setting entry with key 'num64' to value '44.4' | 
|  | OK    'num64=44.4' | 
|  | Setting options string 'num64=-1' | 
|  | Setting entry with key 'num64' to value '-1' | 
|  | Value -1.000000 for parameter 'num64' out of range [0 - 100] | 
|  | Error 'num64=-1' | 
|  | Setting options string 'num64=101' | 
|  | Setting entry with key 'num64' to value '101' | 
|  | Value 101.000000 for parameter 'num64' out of range [0 - 100] | 
|  | Error 'num64=101' | 
|  | Setting options string 'flt=bogus' | 
|  | Setting entry with key 'flt' to value 'bogus' | 
|  | Undefined constant or missing '(' in 'bogus' | 
|  | Unable to parse option value "bogus" | 
|  | Error 'flt=bogus' | 
|  | Setting options string 'flt=2' | 
|  | Setting entry with key 'flt' to value '2' | 
|  | OK    'flt=2' | 
|  | Setting options string 'flt=2.2' | 
|  | Setting entry with key 'flt' to value '2.2' | 
|  | OK    'flt=2.2' | 
|  | Setting options string 'flt=-1' | 
|  | Setting entry with key 'flt' to value '-1' | 
|  | Value -1.000000 for parameter 'flt' out of range [0 - 100] | 
|  | Error 'flt=-1' | 
|  | Setting options string 'flt=101' | 
|  | Setting entry with key 'flt' to value '101' | 
|  | Value 101.000000 for parameter 'flt' out of range [0 - 100] | 
|  | Error 'flt=101' | 
|  | Setting options string 'dbl=bogus' | 
|  | Setting entry with key 'dbl' to value 'bogus' | 
|  | Undefined constant or missing '(' in 'bogus' | 
|  | Unable to parse option value "bogus" | 
|  | Error 'dbl=bogus' | 
|  | Setting options string 'dbl=2' | 
|  | Setting entry with key 'dbl' to value '2' | 
|  | OK    'dbl=2' | 
|  | Setting options string 'dbl=2.2' | 
|  | Setting entry with key 'dbl' to value '2.2' | 
|  | OK    'dbl=2.2' | 
|  | Setting options string 'dbl=-1' | 
|  | Setting entry with key 'dbl' to value '-1' | 
|  | Value -1.000000 for parameter 'dbl' out of range [0 - 100] | 
|  | Error 'dbl=-1' | 
|  | Setting options string 'dbl=101' | 
|  | Setting entry with key 'dbl' to value '101' | 
|  | Value 101.000000 for parameter 'dbl' out of range [0 - 100] | 
|  | Error 'dbl=101' | 
|  | Setting options string 'bool1=true' | 
|  | Setting entry with key 'bool1' to value 'true' | 
|  | OK    'bool1=true' | 
|  | Setting options string 'bool2=auto' | 
|  | Setting entry with key 'bool2' to value 'auto' | 
|  | OK    'bool2=auto' | 
|  | Setting options string 'dict1='happy=\:-):sad=\:-('' | 
|  | Setting entry with key 'dict1' to value 'happy=\:-):sad=\:-(' | 
|  | OK    'dict1='happy=\:-):sad=\:-('' | 
|  |  | 
|  | Testing av_opt_set_from_string() | 
|  | Setting options string '' | 
|  | OK    '' | 
|  | Setting options string '5' | 
|  | Setting 'num' to value '5' | 
|  | OK    '5' | 
|  | Setting options string '5:hello' | 
|  | Setting 'num' to value '5' | 
|  | Setting 'string' to value 'hello' | 
|  | OK    '5:hello' | 
|  | Setting options string '5:hello:size=pal' | 
|  | Setting 'num' to value '5' | 
|  | Setting 'string' to value 'hello' | 
|  | Setting 'size' to value 'pal' | 
|  | OK    '5:hello:size=pal' | 
|  | Setting options string '5:size=pal:hello' | 
|  | Setting 'num' to value '5' | 
|  | Setting 'size' to value 'pal' | 
|  | No option name near 'hello' | 
|  | Error '5:size=pal:hello' | 
|  | Setting options string ':' | 
|  | Setting 'num' to value '' | 
|  | Undefined constant or missing '(' in '' | 
|  | Unable to parse option value "" | 
|  | Error ':' | 
|  | Setting options string '=' | 
|  | Setting '' to value '' | 
|  | Option '' not found | 
|  | Error '=' | 
|  | Setting options string ' 5 : hello : size = pal ' | 
|  | Setting 'num' to value '5' | 
|  | Setting 'string' to value 'hello' | 
|  | Setting 'size' to value 'pal' | 
|  | OK    ' 5 : hello : size = pal ' | 
|  | Setting options string 'a_very_long_option_name_that_will_need_to_be_ellipsized_around_here=42' | 
|  | Setting 'a_very_long_option_name_that_will_need_to_be_ellipsized_around_here' to value '42' | 
|  | Option 'a_very_long_option_name_that_will_need_to_be_ellipsized_around_here' not found | 
|  | Error 'a_very_long_option_name_that_will_need_to_be_ellipsized_around_here=42' |