Changeset 6704

Show
Ignore:
Timestamp:
06/30/09 22:59:55 (14 months ago)
Author:
dbaelde
Message:

Treat missing metadata as empty metadata. This sounds more reasonable, so much
that I didn't make it optional using an "insert_missing" parameter as in some
other operators. Previously, it would cause prepending to be disabled on
tracks without metadata.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/liquidsoap/src/operators/prepend.ml

    r6527 r6704  
    4141            if AFrame.is_partial peek then 
    4242              AFrame.add_break buf (AFrame.position buf) 
    43             else begin 
    44               match AFrame.get_metadata peek peekpos with 
    45                 | Some m when 
    46                   Utils.hashtbl_get m "liq_prepend" <> Some "false" -> 
    47                     let prepend = 
    48                       Lang.to_source 
    49                         (Lang.apply f ["",Lang.metadata m]) 
    50                     in 
    51                       self#register prepend ; 
    52                       if not prepend#is_ready then begin 
    53                         self#log#f 3 
    54                           "Candidate to prepending not ready. Abort!" ; 
    55                         state <- `Buffer peek ; 
    56                         self#unregister prepend 
    57                       end else begin 
    58                         state <- `Prepend (prepend,peek) 
    59                       end ; 
    60                       self#get_frame buf 
    61                 | _ -> 
     43            else 
     44              let inhibit,lang_m = 
     45                match AFrame.get_metadata peek peekpos with 
     46                  | Some m -> 
     47                      (Utils.hashtbl_get m "liq_prepend" = Some "false"), 
     48                      Lang.metadata m 
     49                  | None -> false, Lang.list [] 
     50              in 
     51                if inhibit then begin 
     52                    self#log#f 4 "Prepending disabled from metadata (\"liq_prepend\"=\"false\")." ; 
    6253                    state <- `Buffer peek ; 
    6354                    self#get_frame buf 
    64             end 
     55                end else 
     56                  let prepend = Lang.to_source (Lang.apply f ["",lang_m]) in 
     57                    self#register prepend ; 
     58                    if not prepend#is_ready then begin 
     59                      self#log#f 3 
     60                        "Candidate to prepending not ready. Abort!" ; 
     61                      state <- `Buffer peek ; 
     62                      self#unregister prepend 
     63                    end else begin 
     64                      state <- `Prepend (prepend,peek) 
     65                    end ; 
     66                    self#get_frame buf 
    6567      | `Buffer peek -> 
    6668          let p = AFrame.position buf in