{
   <several valgrind warnings as found with libjpeg 6b on Debian>
   Memcheck:Cond
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   fun:jpeg_finish_decompress
}

{
   <several valgrind warnings as found with libjpeg 6b on Debian>
   Memcheck:Cond
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   fun:jpeg_consume_input
   fun:jpeg_read_header
}

{
   <several valgrind warnings as found with libjpeg 6b on Debian>
   Memcheck:Cond
   fun:jpeg_fill_bit_buffer
   fun:jpeg_huff_decode
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   fun:jpeg_read_raw_data
}

{
   <several valgrind warnings as found with libjpeg 6b on Debian>
   Memcheck:Cond
   fun:jpeg_fill_bit_buffer
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   fun:jpeg_read_raw_data
}

{
   <several valgrind warnings as found with libjpeg 6b on Debian>
   Memcheck:Cond
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   fun:jpeg_consume_input
   fun:jpeg_read_header
}

{
   <several valgrind warnings as found with libjpeg 6b on Debian>
   Memcheck:Cond
   obj:/usr/lib/libjpeg.so.*
   fun:jpeg_finish_compress
}

{
   <several valgrind warnings as found with libjpeg 6b on Debian>
   Memcheck:Cond
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   fun:jpeg_finish_compress
}

{
   <several valgrind warnings as found with libjpeg 6b on Debian>
   Memcheck:Cond
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   fun:jpeg_finish_compress
}

{
   <several valgrind warnings as found with libjpeg 6b on Debian>
   Memcheck:Cond
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   fun:jpeg_write_raw_data
}

{
   <several valgrind warnings as found with libjpeg 6b on Debian>
   Memcheck:Cond
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   fun:jpeg_write_raw_data
}

{
   <several valgrind warnings as found with libjpeg 6b on Debian>
   Memcheck:Cond
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   fun:jpeg_write_raw_data
}

{
   <several valgrind warnings as found with libjpeg 6b on Debian>
   Memcheck:Cond
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   fun:jpeg_write_raw_data
}

{
   <several valgrind warnings as found with libjpeg 6b on Debian>
   Memcheck:Cond
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   fun:jinit_compress_master
   fun:jpeg_start_compress
}

{
   <several valgrind warnings as found with libjpeg 6b on Debian>
   Memcheck:Cond
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   obj:/usr/lib/libjpeg.so.*
   fun:jinit_compress_master
   fun:jpeg_start_compress
}

{
   <well known zlib bug>
   Memcheck:Cond
   fun:inflateReset2
   fun:inflateInit2_
   fun:png_create_read_struct_2
   fun:png_create_read_struct
}

{
   <apparent strtod bug when trying to parse "infinity" from "interleaved">
   Memcheck:Addr8
   fun:__GI___strncasecmp_l
   fun:____strtod_l_internal
   fun:gst_value_deserialize_double
}

## lame

{
   <lame Conditional jump or move depends on uninitialised values>
   Memcheck:Cond
   fun:L3psycho_anal_vbr
   fun:lame_encode_mp3_frame
   ...
   fun:lame_encode_flush
   fun:gst_lamemp3enc_sink_event
}

{
   <twolame Conditional jump or move depends on uninitialised values>
   Memcheck:Cond
   ...
   fun:psycho_3
   fun:encode_frame
}

