Changeset 7109

Show
Ignore:
Timestamp:
01/26/10 05:13:19 (7 months ago)
Author:
metamorph68
Message:

Set either quality or bitrate for mp3 encoder..

Location:
trunk/liquidsoap/src
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/liquidsoap/src/encoder/encoder.ml

    r7106 r7109  
    6767struct 
    6868 
     69  type bitrate_control = Quality of int | Bitrate of int 
     70 
    6971  type t = { 
    7072    stereo     : bool ; 
    71     quality    : int ; 
     73    bitrate    : bitrate_control ; 
    7274    samplerate : int ; 
    73     bitrate    : int ; 
    74   } 
     75  } 
     76 
     77  let string_of_bitrate_control x =  
     78    match x with 
     79      | Quality x -> Printf.sprintf "quality=%i" x 
     80      | Bitrate x -> Printf.sprintf "bitrate=%i" x 
    7581 
    7682  let to_string m = 
    77     Printf.sprintf "%%mp3(%s,quality=%d,samplerate=%d,bitrate=%d)" 
     83    Printf.sprintf "%%mp3(%s,%s,samplerate=%d)" 
    7884      (string_of_stereo m.stereo) 
    79       m.quality 
     85      (string_of_bitrate_control m.bitrate) 
    8086      m.samplerate 
    81       m.bitrate 
    8287 
    8388end 
  • trunk/liquidsoap/src/encoder/lame_encoder.ml

    r7105 r7109  
    2626open Encoder.MP3 
    2727 
    28 let create_encoder ~samplerate ~bitrate ~quality ~stereo = 
     28let create_encoder ~samplerate ~bitrate ~stereo = 
    2929  let enc = Lame.create_encoder () in 
    3030    (* Input settings *) 
     
    3333    (* Output settings *) 
    3434    Lame.set_mode enc (if stereo then Lame.Stereo else Lame.Mono) ; 
    35     Lame.set_quality enc quality ; 
     35    begin 
     36      match bitrate with 
     37        | Encoder.MP3.Quality quality -> 
     38             Lame.set_quality enc quality 
     39        | Encoder.MP3.Bitrate bitrate -> 
     40             Lame.set_brate enc bitrate 
     41    end;  
    3642    Lame.set_out_samplerate enc samplerate ; 
    37     Lame.set_brate enc bitrate ; 
    3843    Lame.init_params enc ; 
    3944    enc 
     
    4348  let e = create_encoder ~samplerate:mp3.samplerate  
    4449                         ~bitrate:mp3.bitrate  
    45                          ~quality:mp3.quality  
    4650                         ~stereo:mp3.stereo  
    4751  in 
  • trunk/liquidsoap/src/lang/lang_parser.mly

    r7106 r7109  
    120120          stereo = true ; 
    121121          samplerate = 44100 ; 
    122           bitrate = 128 ; 
    123           quality = 5 } 
     122          bitrate = Encoder.MP3.Bitrate 128 } 
    124123    in 
    125124    let mp3 = 
     
    132131                { f with Encoder.MP3.samplerate = i } 
    133132            | ("bitrate",{ term = Int i }) -> 
    134                 { f with Encoder.MP3.bitrate = i } 
     133                { f with Encoder.MP3.bitrate =  
     134                         Encoder.MP3.Bitrate i } 
    135135            | ("quality",{ term = Int q }) -> 
    136                 { f with Encoder.MP3.quality = q } 
     136                { f with Encoder.MP3.bitrate =  
     137                         Encoder.MP3.Quality q } 
    137138 
    138139            | ("",{ term = Var s }) when String.lowercase s = "mono" -> 
  • trunk/liquidsoap/src/outputs/icecast2.ml

    r7107 r7109  
    9595      match enc with 
    9696        | Encoder.MP3 m -> 
    97             { quality = Some (string_of_int m.Encoder.MP3.quality) ; 
    98               bitrate = Some m.Encoder.MP3.bitrate ; 
     97            let quality,bitrate =  
     98              match m.Encoder.MP3.bitrate with 
     99                | Encoder.MP3.Bitrate x -> None,(Some x) 
     100                | Encoder.MP3.Quality x -> (Some (string_of_int x)),None 
     101            in 
     102            { quality = quality ; 
     103              bitrate = bitrate ; 
    99104              samplerate = Some m.Encoder.MP3.samplerate ; 
    100105              channels = Some (if m.Encoder.MP3.stereo then 2 else 1)